Bonjour,
Avant toutes choses merci à tout ceux qui m'aideront à trouver la solution!
J'ai un code: assez long ici dessous qui fonctionne très bien. Sauf que quand la fobction Find. ne trouve pas la valeur dans la plage de données j'ai une erreur qui plante tout. Je suis obligé d'exécuter une autre macro (Application.EnableEvents = True) pour réinitialiser le truc. Alors que je voudrais juste un "Then Exit sub" si la fonction ne trouve pas la valeur.
J'ai essayé un If not Iserror(Find.blabla) then
Mais ca ne fonctionne pas..
Merci pour vos idées et vos solutions.
A bientôt!
Avant toutes choses merci à tout ceux qui m'aideront à trouver la solution!
J'ai un code: assez long ici dessous qui fonctionne très bien. Sauf que quand la fobction Find. ne trouve pas la valeur dans la plage de données j'ai une erreur qui plante tout. Je suis obligé d'exécuter une autre macro (Application.EnableEvents = True) pour réinitialiser le truc. Alors que je voudrais juste un "Then Exit sub" si la fonction ne trouve pas la valeur.
J'ai essayé un If not Iserror(Find.blabla) then
Mais ca ne fonctionne pas..
Merci pour vos idées et vos solutions.
A bientôt!
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim i As Long
Dim j As Long
Dim y As Long
j = Target.Column
i = Target.Row
If j = 4 Then GoTo Client 'Condition colonne 4
If j = 7 Then GoTo Commune
Client:
If i >= 11 And i <= 1010 Then 'Condition de la ligne 11 à 1010
If Cells(i, 4).Value <> Cells(i, 43).Value Then 'Si la valeur est différente à la valeur d'une cellule morte
If Not IsError(Application.VLookup(Cells(i, 4).Value, Worksheets("Client").Range("A2:E100000"), 2, False)) Then
Cells(i, 5).Value = Application.VLookup(Cells(i, 4).Value, Worksheets("Client").Range("A2:E100000"), 2, False) 'Ecrire dans les 3 cellules situé à gauche de la Target une recherche V
Cells(i, 6).Value = ""
End If
End If
End If
Cells(i, 43).Value = Cells(i, 4).Value
'Recopier la nouvelle valeur dans la cellule morte
GoTo Fin
Commune:
If Cells(i, 6) = "" Then
If i >= 11 And i <= 1010 Then
If Cells(i, 7).Value <> Cells(i, 44).Value Then 'Si la valeur est différente à la valeur d'une cellule morte
Worksheets("Province").Activate
Worksheets("Province").Range("C3:Z200").Select
'LISEZ A PARTIR D ICI----------------------------------------------------------------------------
If Not IsError(Worksheets("Province").Range("C3:Z200").Find(What:=Cells(i, 7).Value, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Address) Then
myCell = Worksheets("Province").Range("C3:Z200").Find(What:=Cells(i, 7).Value, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Address
Ligne = Range(myCell).Row
'---------------------------------------------------------------------------------------------------
Cells(i, 6).Value = Worksheets("Province").Cells(Ligne, 2).Value
Worksheets("Province").Range("A2").Select
Worksheets("Liste").Activate
End If
End If
End If
End If
Cells(i, 44).Value = Cells(i, 7).Value
'Recopier la nouvelle valeur dans la cellule morte
GoTo Fin
Fin:
Application.EnableEvents = True
End Sub