Macro avec utilisation du .Find pour afficher resultats en commentaire

Delux

XLDnaute Occasionnel
Bonjour a tous,

Je viens encore une fois reclamer votre aide, mes connaissances en VBA ayant leur limite :eek:.

Je souhaite, par la methode du .Find, obtenir les resultats de la recherche dans un commentaire.

En fait, si ma condition d'analyse de la cellule est fausse, alors je veux faire un find est obtenir la liste des resultats dans un commentaire de cellule.

Voici le code que j'ai commence.

Code:
Sub find_something()

Dim mySource As Range
Dim myCible As Range
Dim Cel As Range
Dim dl As Integer
Dim dc As Byte
Dim FirstFound As String

Application.ScreenUpdating = False

dl = Sheet1.Range("A65489").End(xlUp).Row
dc = Sheet1.Range("A3").End(xlToRight).Column

Set myCible = Sheet1.Range(Cells(4, 1), Cells(dl, dc))
Set mySource = Sheet1.Range("A4:A11")

mySource.Interior.ColorIndex = 0
myCible.ClearComments

For Each Cel In mySource
    If Not IsEmpty(Cel.Value) And InStr(Cel.Value, "-") > 0 Then
    
    Donnees = Split(Cel.Value, "-")
    Set R = Sheet2.Range("C2:C1100").Find(Donnees(0))
        
        If Not R Is Nothing Then
            FirstFound = R.Address
            Do
                If IsError(Application.VLookup(Donnees(0) _
                & Sheet1.Range("B" & Cel.Row).Value & Sheet1.Range("A1"), _
                Sheet2.Range("A2:F1100"), 1, 0)) Then
                    
                    VLcName = R.Offset(0, 1).Value
                    VLdst = R.Offset(0, 2).Value
                    
                    Cel.Interior.ColorIndex = 3 'Rouge
                    Cel.Offset(0, 1).AddComment Text:="Correct Class Name : " & Chr(10) & _
                    VLcName & "for " & VLdst 'Com with Correct Class Name and Correct DST Template
                    Cel.Offset(0, 1).Comment.Shape.TextFrame.AutoSize = True
                    
                    Set R = Sheet2.Range("C2:C1100").FindNext(R)
                End If
            Loop While R.Address <> FirstFound
                    
        Else
            Cel.Interior.ColorIndex = 0
        End If
    End If
Next Cel

End Sub

Je vous joins egalement un petit fichier exemple.

Il faut savoir que mon fichier original comporte beaucoup plus de donnees dans les deux feuilles, et que dans la feuille de base de donnees, il peut y avoir de nombreux doublons (a conserver malheureusement).
C'est pour cela que le Vlookup ne peut pas fonctionner correctement.

Si vous avez des suggestions a mon probleme, je serais plus que ravi.

En vous remerciant par avance,

Cordialement,

Delux
 

Pièces jointes

  • TEST (2).xlsm
    23 KB · Affichages: 49
  • TEST (2).xlsm
    23 KB · Affichages: 48
  • TEST (2).xlsm
    23 KB · Affichages: 50

pierrejean

XLDnaute Barbatruc
Re : Macro avec utilisation du .Find pour afficher resultats en commentaire

Bonjour Delux

Vois si cela te convient
 

Pièces jointes

  • TEST (2).xlsm
    24.6 KB · Affichages: 51
  • TEST (2).xlsm
    24.6 KB · Affichages: 57
  • TEST (2).xlsm
    24.6 KB · Affichages: 59

Delux

XLDnaute Occasionnel
Re : Macro avec utilisation du .Find pour afficher resultats en commentaire

Bonjour Pierrejean,

Je ne comprends pas pourquoi mais la methode .Find me cherche tout ce qui contient la recherche de "Donnees(0)".
Exemple:
si j'ai AAH-159012 et que Donnees(0) = AAH, alors il me sort en resultat tout ce qui contient AAH => AAH et AAHH.

Est-ce qu'il existe une solution pour remedier a cela?

Merci d'avance

Cordialement,

Delux
 

Pièces jointes

  • TEST (2).xlsm
    26.4 KB · Affichages: 42
  • TEST (2).xlsm
    26.4 KB · Affichages: 52
  • TEST (2).xlsm
    26.4 KB · Affichages: 52

Pierrot93

XLDnaute Barbatruc
Re : Macro avec utilisation du .Find pour afficher resultats en commentaire

Bonjour à tous,

pas tout suivi, mais regarde peut être du coté de l'argument "lookat" de la méthode "find", ci-dessous extrait de l'aide vba :
LookAt Argument de type Variant facultatif. Il peut s'agir de l'une des constantesXlLookAt suivantes : xlWhole ou xlPart.

bonne journée
@+
 

pierrejean

XLDnaute Barbatruc
Re : Macro avec utilisation du .Find pour afficher resultats en commentaire

Re

Salut Pierrot
@ Delux

Lorsqu'ils ne sont pas spécifiés les arguments de find sont ceux qui ont été les derniers utilisés soit par VbA soit par la la boite Recherche
Pour ma part je les spécifie toujours

Code:
Set R = Sheet2.Range("C2:C1100").Find(Donnees(0), LookIn:=xlValues, lookat:=xlWhole)
 

Discussions similaires

Réponses
12
Affichages
533

Statistiques des forums

Discussions
311 723
Messages
2 081 932
Membres
101 844
dernier inscrit
pktla