Macro avec utilisation du .Find pour afficher resultats en commentaire

  • Initiateur de la discussion Initiateur de la discussion Delux
  • 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 !

Delux

XLDnaute Occasionnel
Bonjour a tous,

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

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

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

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
@+
 
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)
 
- 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

Réponses
3
Affichages
665
Réponses
3
Affichages
971
  • Question Question
XL 2019 Code VBA
Réponses
12
Affichages
791
Réponses
1
Affichages
686
Réponses
1
Affichages
1 K
Réponses
7
Affichages
1 K
Retour