[VBA] Macro lancée quand A3 change de valeur
ZaNet
-
Anne -
Anne -
Bonjour,
J'ai un problème avec le lancement d'une macro Excel.
Je declenche une macro lorsque la valeur d'une cellule change. Ici il s'agit de la cellule A3
Ca ressembleà ca :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$3" Then
Cells(2, 1) = "la cellule A3 a changé"
Macro1
End If
End Sub
Quand j'écris dans la cellule A3, ca fonctionne bien.
Par contre, quand je fais un copier coller de plusique cellules (A3 en faisant partie), la marco ne se declenche pas.
Elle se declenche quand je double clique dans la cellule, comme pour lui dire "eh oh ! la valeur a changé !
Comment faire pour lui dire que la cellule a changé par ce copier coller ?
Question bonus : quel est le code permettant de dire qu'une valeur dans une plage de cellule a changé ?
comment changer le target.address pour qu'il prenne une plage de cellules ?
Merci pour votre aide
J'ai un problème avec le lancement d'une macro Excel.
Je declenche une macro lorsque la valeur d'une cellule change. Ici il s'agit de la cellule A3
Ca ressembleà ca :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$3" Then
Cells(2, 1) = "la cellule A3 a changé"
Macro1
End If
End Sub
Quand j'écris dans la cellule A3, ca fonctionne bien.
Par contre, quand je fais un copier coller de plusique cellules (A3 en faisant partie), la marco ne se declenche pas.
Elle se declenche quand je double clique dans la cellule, comme pour lui dire "eh oh ! la valeur a changé !
Comment faire pour lui dire que la cellule a changé par ce copier coller ?
Question bonus : quel est le code permettant de dire qu'une valeur dans une plage de cellule a changé ?
comment changer le target.address pour qu'il prenne une plage de cellules ?
Merci pour votre aide
A voir également:
- [VBA] Macro lancée quand A3 change de valeur
- Change dns - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Change qwerty to azerty - Guide
7 réponses
Bonjour,
voir avec..
'Seule obligation, mettre la formule =A3 dans une cellule "perdue"
A+
voir avec..
'Seule obligation, mettre la formule =A3 dans une cellule "perdue"
Dim MemoCell As String
Private Sub Worksheet_Calculate()
If Cells(3, 1) <> MemoCell Then
Cells(2, 1) = "la cellule A3 = " & Cells(3, 1).Value
MemoCell = Cells(3, 1)
'Code....
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$3" And Cells(3, 1) <> MemoCell Then
Cells(2, 1) = "la cellule A3 = " & Cells(3, 1).Value
MemoCell = Cells(3, 1)
'Code....
End If
End Sub
A+
Bonjour,
Hum oui, mais depuis 2008 ..
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Hum oui, mais depuis 2008 ..
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A3:BV3")) Is Nothing Then
Target.Offset(-1) = "Celule " & Target.Address & " changée"
' envoyer le code ou la macro....
End If
End Sub
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Bonjour,
Je relance la discussion.
Le code ci-dessous fonctionne correctement pour une cellule.
En A3 j'entre une valeur.
En A2 la même valeur s'affiche.
(pour que cela fonctionne j'ai ajouté que A4=a3 comme indiqué par l'auteur du code)
D'ailleurs, merci à l'auteur.
Dim MemoCell As String
Private Sub Worksheet_Calculate()
If Cells(3, 1) <> MemoCell Then
Cells(2, 1) = "la cellule A3 = " & Cells(3, 1).Value
MemoCell = Cells(3, 1)
'Code....
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$3" And Cells(3, 1) <> MemoCell Then
Cells(2, 1) = "la cellule A3 = " & Cells(3, 1).Value
MemoCell = Cells(3, 1)
'Code....
End If
End Sub
Ma question est :
comment faire pour que les valeurs des cellules de A3 à BV3 s'affichent de la même manière de A2 à BV2 ?
Merci pour vos conseils avisés
Herr Hic
PS : Désolé si j'ai raté une discussion qui relèverait de ma demande.
Configuration: Windows XP / Firefox 15.0.1
Je relance la discussion.
Le code ci-dessous fonctionne correctement pour une cellule.
En A3 j'entre une valeur.
En A2 la même valeur s'affiche.
(pour que cela fonctionne j'ai ajouté que A4=a3 comme indiqué par l'auteur du code)
D'ailleurs, merci à l'auteur.
Dim MemoCell As String
Private Sub Worksheet_Calculate()
If Cells(3, 1) <> MemoCell Then
Cells(2, 1) = "la cellule A3 = " & Cells(3, 1).Value
MemoCell = Cells(3, 1)
'Code....
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$3" And Cells(3, 1) <> MemoCell Then
Cells(2, 1) = "la cellule A3 = " & Cells(3, 1).Value
MemoCell = Cells(3, 1)
'Code....
End If
End Sub
Ma question est :
comment faire pour que les valeurs des cellules de A3 à BV3 s'affichent de la même manière de A2 à BV2 ?
Merci pour vos conseils avisés
Herr Hic
PS : Désolé si j'ai raté une discussion qui relèverait de ma demande.
Configuration: Windows XP / Firefox 15.0.1
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir,
J'utilise le code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("j11:BV11")) Is Nothing Then
Target.Offset(-9) = Target.Value
End If
End Sub
Si en j11 j'entre une valeur (J11=2 par exemple), cette même valeur est renvoyée automatiquement en J2 : parfait.
Par contre, si je remplace les valeurs de la ligne 11 par des formules se répétant de J11 à BV11 (J11 =SOMME.SI($E$24:$E$2015;$I11;J$24:J$2015), lorsque que le résultat de la formule change je ne parviens pas à renvoyer le résultat en J2
Là, j'aurais besoin d'un coup de pouce une nouvelle fois..
Merci d'avance
Herr Hic
J'utilise le code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("j11:BV11")) Is Nothing Then
Target.Offset(-9) = Target.Value
End If
End Sub
Si en j11 j'entre une valeur (J11=2 par exemple), cette même valeur est renvoyée automatiquement en J2 : parfait.
Par contre, si je remplace les valeurs de la ligne 11 par des formules se répétant de J11 à BV11 (J11 =SOMME.SI($E$24:$E$2015;$I11;J$24:J$2015), lorsque que le résultat de la formule change je ne parviens pas à renvoyer le résultat en J2
Là, j'aurais besoin d'un coup de pouce une nouvelle fois..
Merci d'avance
Herr Hic
Supprime le code précédant et remplace par..
A placer au même endroit.
Private Sub Worksheet_Calculate()
Dim Col As Integer
For Col = 10 To 77
Cells(2, Col) = Cells(11, Col).Value
Next Col
End Sub
A placer au même endroit.
Je débute, mais à chaque fois que je veux copier ce code sous VBA, la macro ne s'enregistre pas
Je procède de la manière suivante:
Je nomme ma macro puis je clique sur créer
Visual Basic s'ouvre en indiquant:
Sub Macro23()
End Sub
Je copie
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$M$6" Then
Macro7
End If
entre Sub Macro23() et End Sub
Et ça marche pas
Je procède de la manière suivante:
Je nomme ma macro puis je clique sur créer
Visual Basic s'ouvre en indiquant:
Sub Macro23()
End Sub
Je copie
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$M$6" Then
Macro7
End If
entre Sub Macro23() et End Sub
Et ça marche pas