Chercher le contenu d'une cellule dans une colonne et renvoyer la cellule trouvée

  • Initiateur de la discussion Initiateur de la discussion meluao
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

meluao

XLDnaute Nouveau
Bonjour,

j'ai déjà eu plein de réponses à mes questions sur ce forum, mais là je suis un peu bloqué.

Voilà, dans une colonne A j'ai des noms de produits, et dans une colonne B les noms des fichiers photos correspondants.
Les noms de fichiers photos contiennent généralement les noms des produits, mais avec du déchet (chiffres, lettres supplémentaires, extension .jpeg... etc).

Mon but : rechercher dans la colonne A les cellules qui contiennent du texte de la colonne B (les noms des produits) et renvoyer en face de chaque produit sa photo correspondante.
En pièce jointe, le fichier qui pose problème.

Si quelqu'un a une idée ce serait génial !

Merci d'avance.
 

Pièces jointes

Re : Chercher le contenu d'une cellule dans une colonne et renvoyer la cellule trouvé

Bonjour Meluao, bonjour le forum,

Peut-être comme ça :
Code:
Sub Macro2()
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim r As Range 'déclare la variable r (Recherche)

With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
    dl = .Cells(Application.Rows.Count, 2).End(xlUp).Row 'définit la dernière ligne éditée de la colonne B
    Set pl = .Range("B1:B" & dl) 'définit la plage pl
    For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
        Set r = .Columns(1).Find(cel.Value, , xlValues, xlPart) 'définit la recherche r
        'si il existe au moins une occurrence, place cette première occurrence dans la colonne C
        If Not r Is Nothing Then cel.Offset(0, 1).Value = r.Value
    Next cel 'prochaine cellule de la boucle
End With 'fin de la prise en compte de l'onglet "Feuil1"
End Sub
 
Re : Chercher le contenu d'une cellule dans une colonne et renvoyer la cellule trouvé

Bonjour Robert,

alors merci pour ta réponse, malheureusement je touche pas une canette en macro.
C'est peut être l'occasion de m'y mettre d'ailleurs.

Tu peux m'en dire un peu plus ? Qu'est ce que je fais de ce code ?

Merci !
 
Re : Chercher le contenu d'une cellule dans une colonne et renvoyer la cellule trouvé

Bonjour Meluao, bonjour le forum,

Tu peux m'en dire un peu plus ? Qu'est ce que je fais de ce code ?

Moi une fois, j'ai pris du code je l'ai coupé fin, fin, fin, fin avec une lame de rasoir et je me le suis mis dans le nez... Ça m'a rien fait non plus !

Plus sérieusement, ton fichier modifié ci-dessous... Mais si tu ne comprends pas la macro ça n'a pas grand intérêt....


 

Pièces jointes

Re : Chercher le contenu d'une cellule dans une colonne et renvoyer la cellule trouvé

Bonjour meluao, Bonjour Robert, N'ajoute rien au fil, juste pour prévenir Robert que meluao est joueur, les colonnes du fichiers sont inversées par rapport à la question... Les produits en colonne B et non A et inversement 🙂) Cordialement
 
Re : Chercher le contenu d'une cellule dans une colonne et renvoyer la cellule trouvé

Re, Pour être moins sarcastique et plus constructif, une proposition, plus complexe, mais qui trouve plus de correspondances... Cordialement
 

Pièces jointes

Re : Chercher le contenu d'une cellule dans une colonne et renvoyer la cellule trouvé

Bonjour Robert et Efgé,

juste pour dire "merci encore".
J'ai eu une fois de plus besoin de vos fichiers aujourd'hui et ils sont vraiment d'une remarquable efficacité !

Bonne journée.
À bientôt.
 
Re : Chercher le contenu d'une cellule dans une colonne et renvoyer la cellule trouvé

Bonjour à tous,
vos commentaires m'ont donné du baume au <3...mais pour les macros, j'ai un peu de mal...
J'ai une feuille1 avec plusieurs colonnes (dans l'exemple: Colonne 2à5 - Mes produits) et plusieurs lignes (dans l'exemple: Ligne 3 à 27 - Les types).
Dans chaque "colonne produit", j'ai une plage délimitée (Ligne 3à27) de cellules de couleurs (Rouge, Vert clair, Vert foncé, Blanc) qui contiennent du texte.

Dans une feuille2, j'ai une colonne qui me permet de choisir une produit (ici: BISCUIT) que je choisis dans un menu déroulant...

🙂 Mon rêve...ce serait qu'à partir de mon choix produit (fait dans le menu déroulant), la Macro aille me chercher dans la feuille 1, les cellules vertes uniquement et me les recopie avec leur contenu texte...

Est-ce que quelqu'un pourrait réaliser ce grand rêve ;-)
merci d'avance
 

Pièces jointes

Re : Chercher le contenu d'une cellule dans une colonne et renvoyer la cellule trouvé

Bonsoir Elo et bienvenu(e), bonsoir le forum,

Tu n'as pas précisé où tu voulais coller ? J'ai pensé que ça devait être dans la ligne de la cellule éditée. Sinon, tu adapteras le code de la macro événementielle Change ci-dessous :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim col As Byte 'déclare la variable col (COLonne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)

'si le changement a lieu sur une autre colonne que la colonne 1 (=A) ou dans la ligne 1, sort de la procédure
If Target.Column <> 1 Or Target.Row = 1 Then Exit Sub
With Sheets("Feuille1") 'prend en compte l'onglet "Feuille1"
    col = .Rows(1).Find(Target.Value, , xlValues, xlWhole).Column 'définit la colonne col
    Set pl = .Range(.Cells(3, col), .Cells(27, col)) 'définit la plage pl
    For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
        'condition : si le fond de la cellule est vert clair ou vert foncé
        If cel.Interior.ColorIndex = 43 Or cel.Interior.ColorIndex = 10 Then
            Set dest = Cells(Target.Row, Application.Columns.Count).End(xlToLeft).Offset(0, 1) 'définit la cellule de destination (à adapter car tu n'as pas préciser)
            cel.Copy dest 'copy la cellule cel et la colle dans dest
        End If 'fin de la condition
    Next cel 'prochaine cellule de la boucle
End With 'fin de la prise en en compte de l'onglet "Feuille1"
End Sub
 
Re : Chercher le contenu d'une cellule dans une colonne et renvoyer la cellule trouvé

merci Robert pour ton aide précieuse...en fait ce que si tu regardes sur ma feuille 2, je dis où j'aimerais voir se coller mes cellules vertes (les unes à la suite des autres dans la colonne).
Pour insérer ma macro, je l'insère en aillant la feuille1 active? la feuille2 ou peu importe?
Merci d'avance
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour