Declenchement de macro

  • Initiateur de la discussion Initiateur de la discussion Emma
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

Emma

Guest
Bonjour,

Quelqu 'un pourrait-il me dire comment executer une macro lorsque le contenu d'une cellule est modifié.
Merci
A+
 
Bonjour le forum
Bonjour Emma

Ceci peut être ?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox 'Bonjour, je suis la cellule ' & Target.Address & 'Il est' & Time()
End Sub
Chaque changement de valeur de cellules fera apparaître le MsgBox.
Il est bien évident que le MsgBox sera remplacé par ta macro appelée. 😉
 
Re le forum
Re bonjour Emma

Donc, si la valeur de la Cell A1 est changée :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range('A1')) Is Nothing Then
MsgBox 'Bonjour, je suis la cellule ' & Target.Address & 'nous sommes le' & Date
End If
End Sub
😉
 
Re le forum
Re bonjour Emma

Donc, si la valeur de la Cell A1 est changée :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range('A1')) Is Nothing Then
MsgBox 'Bonjour, je suis la cellule ' & Target.Address & 'nous sommes le' & Date
End If
End Sub
😉
 
Bonjour Emma, Eric

Pour le cas de la détection du changement sur une seule cellule, l'Intersect méthode est un peu disproportionnée Eric

On peut simplement faire ceci
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) = 'A1' Then
    MsgBox 'Bonjour, je suis la cellule ' & Target.Address(False, False) & ' nous sommes le ' &
Date
End If
End Sub

NB le Target.Address(False, False) est pour avoir l'adresse cellule sans la valeur Absolue '$', sinon par défaut il faudrait écrire :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = '$A$1' Then
    MsgBox 'Bonjour, je suis la cellule ' & Target.Address & ' nous sommes le ' &
Date
End If
End Sub

Pour la méthode Intersect, c'est plutôt, par exemple si on cherche à détecter tout changement de cellule sur une plage (Ici toute la Colonne 'A')
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range('A:A')) Is Nothing Then
    MsgBox 'Bonjour, je suis la cellule ' & Target.Address & ' nous sommes le ' &
Date
End If
End Sub


Bon Aprèm
@+Thierry
 
Re le forum
Re bonjour Emma, bonjour Thierry

  :whistle: Thierry, Oki c'est noté.





Tu sais pertinemment que pour ma part, utilisateur occasionnel de VBA le principal est que cela fonctionne.







Par ailleurs, je suis militaire et aime donc employer l'artillerie lourde.....LOL
 
bonjour,
dsl je resortir ce post ^^
qui doit très bien marcher mais je crois qu'il ne fonctionne pas lorsque les cellules qui changes sont issues d'un TCD?et comme j'essyae de faire pour qu'une macro se déclenche suite à la selection d'une liste box d'un TCD ....
merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Réponses
0
Affichages
133
D
  • Question Question
Réponses
5
Affichages
246
Didierpasdoué
D
Réponses
3
Affichages
307
Réponses
7
Affichages
339
Réponses
1
Affichages
159
Retour