'cette macro se lance automatiquement quand il y a une modif sur la feuille
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
If Target.Column = 7 And Len(Target.Value) > 0 Then 'si la modif est dans la colonne 7 (G) et que la cellule n'est pas vide
If Len(Range("C" & Target.Row).Value) = 0 Then 'si la colonne C est vide=message
MsgBox ("Veuillez saisir un Objet")
Target.Value = ""
Exit Sub 'on sort de la macro
End If
If Len(Range("E" & Target.Row).Value) = 0 Then 'si il n'y a pas de montant
MsgBox ("Veuillez saisir un Montant")
Target.Value = ""
Exit Sub 'on sort de la macro
End If
Sheets(Target.Value).Activate 'on active la feuille correspondante à la saisie (colonne G)
'on recherche dans la colonne B l'objet
Set c = ActiveSheet.Columns(2).Find(Range("C" & Target.Row).Value, LookAt:=xlWhole)
'on met dans la cellule de la colonne D le montant '(c.row est la ligne trouvée)
ActiveSheet.Range("D" & c.Row).Value = Sheets("COMPTA").Range("E" & Target.Row).Value
End If
End Sub