Remplissage cellule vide suite recherche 3 colonnes

Bonjour,

MatriculeNomPrenomStatutxyzxxyy

Je souhaite trouvé une solution (formule, macro...). Quand je rentre une ligne, que Matricule est vide que Nom Prenom sont remplis et que Statut est INTERIMAIRE comme valeur. Je voudrais que ça recherche dans les lignes existantes la première combinaison Nom, Prenom, Statut(INTERIMAIRE) et si cela en trouve une copier la valeur de la case Matricule, dans la case Matricule vide du départ. Et si rien de trouvé, me mettre NOW() dans la case Matricule vide de départ.

En espérant être claire et qu'une solution soit possible.

Je vous remercie pour toute l'aide que vous pourriez m'apporter.

Bonjour,

trouver les bonnes formules sans fichier d'exemple ne va pas être simple.

Bonjour Doux Rêveur,

Vous avez raison je vous joins un fichier.

10livre-3.xlsx (9.02 Ko)

Hello,

Une proposition. Une fois que les lignes sont ajoutées formule à étirer vers le bas

@+

5livre-3.xlsx (10.30 Ko)

Bonjour BAROUTE78,

Il y a de l'idée mais ça ne répond pas à ma problématique. Ce n'est pas la cellule A qui ce rempli mais la H, hors je veux que ce soit la A qui se remplisse. Comme dit si c'est plus facile pour vous cela peut ce faire avec une macro aussi peut importe la méthode

Bonjour à tous

3matricule.xlsm (16.74 Ko)

Bonjour 78chris,

Malheureusement je ne peux pas tester le fichier car je passe par Excel via Microsoft 365 en ligne en version gratuite, et soit les Macro ne fonctionne pas ou je suis une quiche et je ne sais pas les faire marcher en ligne.

Du coup je testerais Vendredi quand j'aurais accès à la version bureau.

Qu'appelles-tu "la case Matricule vide de départ", la cellule A1 ?

Et si plusieurs lignes correspondent aux critères, on choisit laquelle, celle qui a la date de début (colonne F) la plus récente ?

Doux Rêveur,

Oui et non. La case matricule de départ est la cellule en colonne A de la ligne que je remplis. Si y a plusieurs ligne avec les mêmes critères on prend juste la première ligne qu'il trouve.

Le but est:

Je rempli une ligne la 3 éme par exemple, mais comme le statut est INTERIMAIRE je laisse la cellule A vide est recherche dans la feuille si je trouve une ligne qui à déjà les même critère (nom, prenom et interimaire). si je trouve une ligne qui à les mêmes critères la 1ére par exemple, je prend sa valeur A pour la copier dans la cellule A vide de la ligne que j'ai rempli (la 3éme). Si il n'y a pas de ligne avec les mêmes critères alors la cellule A de la ligne que je viens de remplir (la 3éme) prend la valeur, =MAINTENANT(), en décimal.

Ok, on doit toujours chercher au-dessus de la cellule à remplir.

Si oui, tu peux tester cette matricielle en A5 ;

=SIERREUR(INDEX($A$2:$A4;GRANDE.VALEUR((($B$2:B4=B5)*($C$2:C4=C5)*(D$2:D4="INTERIMAIRE")*LIGNE(A$2:A4))-1;1));MAINTENANT())

Bien joué Doux Rêveur,

Mais j'ai 2 problèmes. La valeur de =NOW() s'inscrit automatiquement dans A à l'étirement de la formule, ce qui n'ai pas un problème en soit mais si je rentre un intérimaire qui n'existe pas ailleur la valeur de A ne change pas, ce qui créer un problème si je remplis plusieurs nouveaux intérimaires. Et une chose que je n'ai pas préciser il ne faut pas que la valeur de A mise par =NOW() change. Avec la formule donnée si je ferme et réouvre le document la valeur va changer si je ne dis pas connerie.

En faite le =NOW() c'est la façon que j'ai trouvé pour avoir un nombre unique donc si vous avez un autre moyen de pouvoir avoir un nombre ou nombre + lettre unique je suis preneur!

On peut par exemple mettre le n° précédent et faire +1 ;

=SIERREUR(INDEX($A$2:$A4;GRANDE.VALEUR((($B$2:B4=B5)*($C$2:C4=C5)*(D$2:D4="INTERIMAIRE")*LIGNE(A$2:A4))-1;1));A4+1)

Ou mettre le n° de ligne avec juste LIGNE() au lieu de A4+1.

Bonjour Doux Rêveur,

La formule que vous m'avais donnée ne fonctionne pas. Si dessous ce que cela donne.

image

Bonjour,

chez moi elle fonctionne. Vous avez mis quoi à la place de now() ?

Elle est bien sauvée en matriciel ?

Doux Rêveur,

J'ai mit la formule telle que vous l'avais écrite. Par contre j'en profite, le numéro de la ligne, j'y est pensé mais si je supprime une ligne plus haut cela ferai un décallage donc en faisant une nouvelle entrée cela risquerai de prendre un numéro déjà existant pour remplir la cellule A si vide et que les combinaisons B,C et D= Intérimaire n'existe pas ailleurs.

Il faut que la valeur de A soit unique et ne puisse pas se répété sauf dans le cas de doublons de combinaison B,C, D= Interimaire.

J'ai mit la formule telle que vous l'avais écrite.

Alors il devrait être mis 12 et pas 11 à gauche de toto (ça doit recopier le 12 qui est 2 lignes plus haut). Il faut bien la sauver en mode matriciel (Ctrl + Maj + Enter), y compris après chaque modification.

si je supprime une ligne plus haut cela ferai un décallage donc en faisant une nouvelle entrée cela risquerai de prendre un numéro déjà existant pour remplir la cellule A si vide et que les combinaisons B,C et D= Intérimaire n'existe pas ailleurs.

Dans ce cas on peut rajouter 1 non pas à la ligne précédente mais au chiffre le plus grand parmi ceux au-dessus, exemple pour A5 ;

=SIERREUR(INDEX($A$2:$A4;GRANDE.VALEUR((($B$2:B4=B5)*($C$2:C4=C5)*(D$2:D4="INTERIMAIRE")*LIGNE(A$2:A4))-1;1));GRANDE.VALEUR(A$2:A4;1)+1)

Doux Rêveur,

Je pense que ça viens du fait que j'utilise excel en ligne via microsoft 365 j'essaierai demain sur la version bureau. Mais le problème avec Ctrl + Maj + Entrée ça va être compliqué pour les personnes qui vont utiliser le fichier au quotidiens je pense.

Normalement on ne valide la formule qu'une fois puis on l'étire vers le bas. Donc au quotidien ça ne pose pas plus de souci qu'une non matricielle.

C'est seulement si on la modifie qu'on revalide par Ctrl + Maj + Enter, mais c'est assez rare qu'on modifie une formule qui fonctionne.

Rechercher des sujets similaires à "remplissage vide suite recherche colonnes"