Macro recherche tableau

Bonjour

J'ai un tableau qui se rempli automatiquement à l'aide d'une macro qui va chercher des informations dans la feuille 2 (Voir pièce jointe).

Cependant j'aimerais que cette macro puisse comparer une partie de texte dans une cellule, et non sa totalité. Par exemple, si la cellule contient "123456789", j'aimerais qu'elle détecte si la cellule contient "1234". Je ne sais pas si je suis clair

Pourriez-vous m'aider ?

Merci

Up ?

Gibou a écrit :

Cependant j'aimerais que cette macro puisse comparer une partie de texte dans une cellule, et non sa totalité. Par exemple, si la cellule contient "123456789", j'aimerais qu'elle détecte si la cellule contient "1234". Je ne sais pas si je suis clair

Utilise like... mais où se trouve cette partie de texte 1234 à rechercher ?

Merci de ta réponse

Il s'agissait d'un exemple mal choisi. Je recommence.

Dans la feuille Tableau, la colonne A comporte des valeurs que je souhaite comparer avec celles présentes dans le tableau dans la feuille Comparatif. La macro teste le contenu des cellules de la colonne A de la feuille Tableau puis renvoie le nom du composant dans la colonne B.

Cependant la macro teste la totalité du contenu de la cellule. Et je ne sais pas comment faire pour qu'elle teste uniquement une partie du contenu textuel de la cellule.

Je n'ai pas de connaissance en macros VBA. Pourrais-tu m'expliquer s'il te plaît ?

Merci

Up ?

Help ?

Gibou a écrit :

Cependant la macro teste la totalité du contenu de la cellule. Et je ne sais pas comment faire pour qu'elle teste uniquement une partie du contenu textuel de la cellule.

Oui mais quelle partie ? 1, 2, 3 caractères, les premiers, les derniers etc. ?

Ce que je demandais déjà ici :

Steelson a écrit :
Gibou a écrit :

Cependant j'aimerais que cette macro puisse comparer une partie de texte dans une cellule, et non sa totalité. Par exemple, si la cellule contient "123456789", j'aimerais qu'elle détecte si la cellule contient "1234". Je ne sais pas si je suis clair

Utilise like... mais où se trouve cette partie de texte 1234 à rechercher ?

Merci de ta réponse

Eh bien justement, j'aimerais que la cellule compare quelques chiffres (référencés dans l'onglet n°2) à la totalité du contenu de la cellule de la colonne A, onglet n°1.

Help ?

Gibou a écrit :

la cellule compare quelques chiffres (référencés dans l'onglet n°2)

Gibou,

désolé, j'en suis toujours à la même question ... lesquels ? quels chiffres ?

Peux-tu mettre un exemple pratique ...

Dans le tableau de l'onglet "Comparatif" se trouvent les références de produits qui sont comparées aux cellules de la colonne A (Numéro de série) de l'onglet "Tableau", grâce à la macro.

Actuellement, la macro compare la totalité du contenu des cellules. J'aimerais lui demander de trouver les références qui comportent les 3 chiffres (voir pièce jointe) et j'aimerais qu'elle reporte le nom du composant correspondant dans la colonne "Nom du composant" de l'onglet "Tableau".

Exemple :

  • L'onglet "Comparatif" contient les 3 chiffres "111" à comparer avec les contenus des cellules de la colonne A de l'onglet "Tableau".
  • Si la macro trouve ces 3 chiffres parmi les contenus des cellules de la colonne "Numéro de série" de l'onglet "Tableau", alors le nom du composant est reporté dans la colonne "Nom du composant".

Je ne sais pas si je suis clair ...

OK je vais prendre les chiffres entre chaque tiret, soit le premier, soit tous les groupes et en faire une comparaison.

Merci à toi, j'attends ton retour

Up ?

Impatient ! je t'avais envoyé un MP ...

Désolé, je ne savais pas qu'il existait des messages privés

Je pense, mais je peux me tromper, que par expérience de gestion, seuls les 3 premiers chiffres sont significatifs du type de composant.

Donc ici un essai :

Sub RecherchePartielle()
Dim NbLg As Long, I As Long, J As Long, Cel As Range

    NbLg = Range("A" & Rows.Count).End(xlUp).Row      ' Nombre de ligne à traiter
    Range("B2:B" & NbLg).ClearContents                ' On efface la zone résultat
    For J = 2 To NbLg                                 ' Pour chaque numéro de série

        For Each Cel In Sheets("Comparatif").Range("A1").CurrentRegion
            If Split(Range("A" & J) & "-", "-")(0) = Split(Cel.Value & "-", "-")(0) Then
                Range("B" & J) = Sheets("Comparatif").Cells(1, Cel.Column)
            End If
        Next Cel

    Next J

End Sub
Rechercher des sujets similaires à "macro recherche tableau"