Bonjour à tous,
J'ai une nouvelle fois besoin des spécialistes Excel.
Je bute sur la fonction find en vba, je vous explique mon problème.
Dans le fichier joint extremement simplifié, j'ai 2 onglets (Onglet 1 = Report avec 1 bouton pour activer la macro "Find" / Onglet 2 = feuille masquée Listes => base de référence)
Dans 1 cellule de la colonne A de "Report", si je saisis MTW5 tout fonctionne car cette valeur est présente dans la colonne B de la feuille "Listes".
Mais dans 1 cellule de la colonne A de "Report", si je saisis MTW5 A ou MTW5A ou MTW5 (A), j'ai le message d'erreur pour me signaler que cette donnée n'existe pas dans la colonne B de la feuille "Listes".
Cependant je ne devrais pas avoir de message car j'ai utilisé LookIn:=xlValues, LookAt:=xlPart dans le Find.
Les plages sont des plages dynamiques
Voici le code de ma macro où je ne vois pas mon erreur ( typage variables....) et je vous joins le fichier exemple en PJ.
Quelle est mon erreur ?
Et merci pour votre aide.
	
	
	
	
	
		
	
		
			
		
		
	
				
			J'ai une nouvelle fois besoin des spécialistes Excel.
Je bute sur la fonction find en vba, je vous explique mon problème.
Dans le fichier joint extremement simplifié, j'ai 2 onglets (Onglet 1 = Report avec 1 bouton pour activer la macro "Find" / Onglet 2 = feuille masquée Listes => base de référence)
Dans 1 cellule de la colonne A de "Report", si je saisis MTW5 tout fonctionne car cette valeur est présente dans la colonne B de la feuille "Listes".
Mais dans 1 cellule de la colonne A de "Report", si je saisis MTW5 A ou MTW5A ou MTW5 (A), j'ai le message d'erreur pour me signaler que cette donnée n'existe pas dans la colonne B de la feuille "Listes".
Cependant je ne devrais pas avoir de message car j'ai utilisé LookIn:=xlValues, LookAt:=xlPart dans le Find.
Les plages sont des plages dynamiques
Voici le code de ma macro où je ne vois pas mon erreur ( typage variables....) et je vous joins le fichier exemple en PJ.
Quelle est mon erreur ?
Et merci pour votre aide.
		VB:
	
	
	Option Explicit
Dim ws As Worksheet
Dim dernLignVC As Integer
Dim lastRow As Integer
Dim celTemoinBatch As Range
Dim valeurTemoinBatch As String
Dim temoinBatch As Range
Dim valTemoinBatch As Double
Dim maPlage As Range
Sub chercherVerifier()
    Set ws = Sheets("Report")
    Sheets("Listes").Visible = xlSheetVisible
    Sheets("Listes").Unprotect
    dernLignVC = Sheets("Listes").Range("B65536").End(xlUp).Row
    lastRow = ws.Range("A65536").End(xlUp).Row
    Set maPlage = Sheets("Listes").Range("B2:B" & dernLignVC)
                
    For Each celTemoinBatch In ws.Range("A2:A" & lastRow)
        valeurTemoinBatch = celTemoinBatch
        Set temoinBatch = maPlage.Cells.Find(What:=valeurTemoinBatch, LookIn:=xlValues, LookAt:=xlPart)
        If temoinBatch Is Nothing Then
            MsgBox "Attention ce témoin n'est pas présent " & valeurTemoinBatch & " sur la feuille 'Listes' cachée. Vérifier vos données.", vbOKOnly + vbInformation, "Erreur témoin"
            Sheets("Listes").Protect
            Sheets("Listes").Visible = xlSheetHidden
            ws.Select
            celTemoinBatch.Select
            Set temoinBatch = Nothing
            Set ws = Nothing
            Set maPlage = Nothing
            End
        End If
                      
        valTemoinBatch = celTemoinBatch.Offset(, 1).Value
                      
        Select Case valTemoinBatch
            Case temoinBatch.Offset(, 3) To temoinBatch.Offset(, 2)
            Case Else
                celTemoinBatch.Offset(, 3) = "1"
        End Select
    Next celTemoinBatch
    
    Set maPlage = Nothing
    Set temoinBatch = Nothing
    Set ws = Nothing
    Sheets("Listes").Protect
    Sheets("Listes").Visible = xlSheetHidden
End Sub