Déclenchement macro liée à saisie. Plusieurs cellules dans même onglet.

R2O2 Messages postés 2 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 18 mai 2009 - 15 mai 2009 à 09:55
R2O2 Messages postés 2 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 18 mai 2009 - 18 mai 2009 à 12:21
Bonjour,
J’ai besoin de lier une macro à un changement de contenu de cellule.


J’ai enregistré la macro ci-dessous dans l’onglet où se trouve la cellule :



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 








Private Sub Worksheet_Change(ByVal Target As Range)







Set i = Intersect(Range("c16"), Range(Target.Address))







If Not i Is Nothing Then







Range("c16").Copy







Range("e16:ac16").PasteSpecial Paste:=xlPasteValues







Application.CutCopyMode = False







Range("a1").Select







End If







End Sub







Cela fonctionne parfaitement, sauf que j’ai besoin de réaliser cette procédure pour plusieurs cellules dans la même feuille. Comment faire car si je change le titre cela ne fonctionne plus ?






r2o2

2 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
15 mai 2009 à 10:17
"onglet" => "feuille"

tu n'as rien a faire, cette macro sera appelée quelle que soit la cellule de ta feuille qui change.

il est cependant possible de cibler l'action, en testant l'adresse de la cellule concernée...

If Target.Range.Address = "$B$5" Then
...
Else
...
End If
0
R2O2 Messages postés 2 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 18 mai 2009
18 mai 2009 à 12:21
Bonjour,

Merci pour le coup de main.

J'ai finalement opté pour la solution ci-dessous étant donné que je souhaitais copier des champs différent correspondant à des modifications de cellules différentes

Private Sub Worksheet_Change(ByVal Target As Range)
Set i = Intersect(Range("a1"), Range(Target.Address))
If Not i Is Nothing Then
Range("a1").Copy
Range("c1:g1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Range("a1").Select
End If
Set i = Intersect(Range("a3"), Range(Target.Address))
If Not i Is Nothing Then
Range("a3").Copy
Range("c3:g3").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Range("a1").Select
End If
End Sub

r2o2
0
Rejoignez-nous