Bonsoir à tous,
Je sollicite votre aide. Mimimathy m’a déjà aidé mais le sujet est clôturé.
Sur le fichier joint, je voudrais avoir:
lorsque la colonne I de l’onglet Données est vide, les colonnes J, K, N sont automatiquement vides aussi au lieu de kes effacer manuellement.
Merci à vous,
Cordialement,
Bonjour,
Il faut juste rajouter à la condition IF si la cellule est vide
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Ws As Worksheet, lig%
Set Ws = Sheets("sources") ' Attribution de la variable Ws le nom de la feuille sources
On Error Resume Next 'si le code produit n'existe pas,n'affiche pas d'erreur
If Not Application.Intersect(Target, Range("I:I")) Is Nothing Then 'Sur Chgt dans une cellule colonne I
lig = Target.Row '--> Ligne de la cellule en modification
If Target.Value <> "" Then 'Si la cellule n'est pas vide
'Réplication de RECHERCHEV()
Cells(Target.Row, "J") = Application.WorksheetFunction.VLookup(Target.Value, Ws.Range("A:C"), 2, False)
Cells(Target.Row, "K") = Application.WorksheetFunction.VLookup(Target.Value, Ws.Range("A:C"), 3, False)
Cells(Target.Row, "N") = Cells(Target.Row, "K")
Else 'Sinon je vide les colonnes J K & N
Range("J" & lig) = ""
Range("K" & lig) = ""
Range("N" & lig) = ""
End If
End If
End Sub
Bonjour, ça marche mais le soicis c’est que le vba ne fonctionne pas si je fais une copie ou une copie valeur. Le code ne fonctionne que si on saisie une à une les données dans la colonne I.
Merci