Macro qui s'execute quand on change une cellule [Résolu]

Signaler
Messages postés
40
Date d'inscription
vendredi 16 janvier 2009
Statut
Membre
Dernière intervention
29 octobre 2009
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonsoir, j'ai une macro qui s'execute sur 3 feuille. Elle commence en feuille 1 puis la 2 et termine sur la 3. Je veux après avoir executer la macro a partir d'un bouton de la feuille 1 pouvoir la relancer en changeant une valeur de la cellule B4 de la feuille 3. J'ai suivi ce code mais ça ne marche pas...

Private Sub Worksheet_Change(ByVal Target As Range) 
If Target.Address = Range("B4").Address Then
Call Macro1
End If   
End Sub

Cordialement

3 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$4" Then
         Call Macro1
    End If
End Sub

ou bien

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(False, False) = "B4" Then
        Call Macro1
    End If
End Sub
Messages postés
266
Date d'inscription
mardi 7 septembre 2004
Statut
Membre
Dernière intervention
30 avril 2009

tu as tous les élements pour y arriver!!!!

ce que je ferais c'est qu'au début de la marco j'irai mettre en mémoire la valeur des trois cellules qui vont changer

val1 = feuil1.range("Xx").value

val2 = feuil2.range("Xx").value

val3 = feuil3.range("Xx").value

sur feuille 2

Private Sub Worksheet_Change(ByVal Target As Range) 

if val2 = valeur_cible_de_lancement then

call sub_suivante

endif

End Sub

Y'a pas de raison que cela ne fonctionne pas

--------------------------------------------------
Toujours + de VB et d'API => APi @ le Loupe
http://apialaloupe.free.fr
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
clair que c'est bête d'allourdir le jeu avec

Target.Address = Range("B4").Address

alors que l'adresse, par définition, tu l'as...