Macro recherche conditionnée

Bonsoir les amis, je travaille actuellement sur un mini projet de gestion de données.J'ai un problème, en fait je veux faire une macro qui permet de :- rechercher dans une colonne donnée les cellules qui commencent par une lettre spécifique et qui permet aussi de retourner la valeur correspondante à cette cellule dans une autre colonne.

Voilà j'attends votre aide.

Merci d'avance

Bonjour et

Une question : l'élément recherché est-il bien unique dans la colonne ?

Cordialement,

bonjour.

en fait le critère de recherche est de retourner les cellules qui comment par la lettre U

EX: U34-37 (union de deux fils) mais les numéros de fils changent et la lettre U est unique

Bonjour à tous,

Un filtre élaboré ferait très bien l'affaire, envoie ta feuille (quelques lignes suffisent)

Amicalement

Claude.

Bon voici un extrait de la feuille.

je vais reexpliquer les amis. Cette macro je veux qu'elle parcoure la colonne I et qu'elle retiendra les cellules qui comment par la lettre U et puis qu'elle renvoie la valeur correspondante à cette cellule qui se trouve dans la colonne H

Exemple: pour cet extrait le résultat doit etre:

colonne H

12103589

12103589

15368842

12103589

15368842

15368842

15368842

15368842

15368842

15368842

15368842

15368842

12103589

15368842

Cordialement

sorry les amis . la macro doit parcourir la colonne J et non I

Bonjour,

à défaut de macro, une solution par formule matricielle :

En feuil2, en A1 :

=SI(LIGNE()>NB.SI(Feuil1!$J$1:$J$100;"U*");"";INDEX(Feuil1!$H$1:$H$100;PETITE.VALEUR(SI(GAUCHE(Feuil1!$J$1:$J$100)="U";(GAUCHE(Feuil1!$J$1:$J$100)="U")*LIGNE(Feuil1!$A$1:$A$100));LIGNE())))

Formule matricielle à valider par CTRL + MAJ + ENTREE

Plage de cellules à adapter

Je te laisse tester

bonjour thido. je l'ai testé mais il renvoie juste le nombre de cellules qui est 14

re,

Comme précisé dans mon message précédent, il s'agit d'une formule matricielle.

Il faut donc valider cette formule par les touches CTRL + MAJ +ENTREE

Ensuite, recopier vers le bas

Réessaye, ça fonctionne

@+

ça marche bien.mais quand j l'ai adapté à ma plage de cellule complet ça donne pas le résultat complet.

voici le code

=SI(LIGNE()>NB.SI(FILS!$J$3:$J$400;"U*");"";INDEX(FILS!$H$3:$H$400;PETITE.VALEUR(SI(GAUCHE(FILS!$J$3:$J$400)="U";(GAUCHE(FILS!$J$3:$J$400)="U")*LIGNE(FILS!$A$3:$A$400));LIGNE())))

et voici la feuille

https://www.excel-pratique.com/~files/doc2/xcApMClasseur2.xls

Merci pour votre aide thibo

pour le nom de la feuille c'est FILS mais pour l'envoyer je l'ai copier dans une nouvelle feuille sans que je la renomme

re,

Une toute petite correction :

dans ...INDEX(FILS!$H$3:$H$400...

remplace le 3 par 1

Et tout doit alors rentrer dans l'ordre

@+

super thibo t'es vraiment puissant.

J'ai une demande svp, peux tu m'expliquer comment fonctionne votre formule?

J'ai essayer de la comprendre mais

Cordialement

Bonjour,

Une tentative d'explication :

=SI(LIGNE()>NB.SI(FILS!$J$3:$J$400;"U*");"";

Cette partie permet d'éviter l'apparition d'un message d'erreur à la fin de la liste

PETITE.VALEUR(SI(GAUCHE(FILS!$J$3:$J$400)="U";(GAUCHE(FILS!$J$3:$J$400)="U")*LIGNE(FILS!$A$3:$A$400))

Cette partie reourne une matrice des numéros de lignes Excel répondent à la condtion (commence par U). Cette formule retournant le n° de ligne Excel (et non pas de la base), c'est la raison pur laquelle il faut commencer la recherche à la ligne 1 dans INDEX

INDEX(FILS!$H$1:$H$400;...............................;LIGNE())))

Exploite la matrice des n° de lignes (Excel) à définis avec la formule PETITE.VALEUR(......)

@+

Bonjour,

Merci bien thibo pour ton aide

@bientôt

Rechercher des sujets similaires à "macro recherche conditionnee"