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

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

  • Exemple Excel.xlsx
    10.6 KB · Affichages: 90
  • Exemple Excel.xlsx
    10.6 KB · Affichages: 98
  • Exemple Excel.xlsx
    10.6 KB · Affichages: 92

Robert

XLDnaute Barbatruc
Repose en paix
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
 

meluao

XLDnaute Nouveau
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 !
 

Robert

XLDnaute Barbatruc
Repose en paix
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

  • Meluao_v01.xls
    45 KB · Affichages: 163

Efgé

XLDnaute Barbatruc
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
 

Efgé

XLDnaute Barbatruc
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

  • Meluao_v02.xls
    32.5 KB · Affichages: 56

meluao

XLDnaute Nouveau
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.
 

Elo75

XLDnaute Nouveau
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

  • Elo1.xlsm
    34 KB · Affichages: 60

Robert

XLDnaute Barbatruc
Repose en paix
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
 

Elo75

XLDnaute Nouveau
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

  • Elo2_.xlsm
    12.7 KB · Affichages: 58

Discussions similaires

Statistiques des forums

Discussions
312 276
Messages
2 086 711
Membres
103 377
dernier inscrit
fredy45