Excel 2003 macro
abyssus
Messages postés
29
Date d'inscription
Statut
Membre
Dernière intervention
-
abyssus Messages postés 29 Date d'inscription Statut Membre Dernière intervention -
abyssus Messages postés 29 Date d'inscription Statut Membre Dernière intervention -
bjr,
ma question : j'ai 5 cellules sur une feuille excel. comment faire pour qu'en changeant le contenu d'une des 5 cellules les 4 autres soient mises à jour automatiquement svp ? j'ai utilisé une macro avec <Private Sub Worksheet_Change(ByVal Target As Range)> mais ça ne marche que pour 3 cellules.
merci
ma question : j'ai 5 cellules sur une feuille excel. comment faire pour qu'en changeant le contenu d'une des 5 cellules les 4 autres soient mises à jour automatiquement svp ? j'ai utilisé une macro avec <Private Sub Worksheet_Change(ByVal Target As Range)> mais ça ne marche que pour 3 cellules.
merci
A voir également:
- Excel 2003 macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
3 réponses
Bonjour,
Si ça marche pour trois, pourquoi ça ne marchait pas pour quatre ?.. ;))
Il faudrait que tu nous donnes le code.
m@rina
Si ça marche pour trois, pourquoi ça ne marchait pas pour quatre ?.. ;))
Il faudrait que tu nous donnes le code.
m@rina
Rebonjour,
Je t'ai écrit une autre macro, plus légère. Les imbrications de IF ne servent à rien.
Pour plus de facilité, j'ai utilisé les cellules A1, B1 et C1. A toi de modifier par les tiennes. Tu peux utiliser autant de cellules que tu veux.
m@rina
Je t'ai écrit une autre macro, plus légère. Les imbrications de IF ne servent à rien.
Pour plus de facilité, j'ai utilisé les cellules A1, B1 et C1. A toi de modifier par les tiennes. Tu peux utiliser autant de cellules que tu veux.
Private Sub Worksheet_Change(ByVal Target As Range) x = Range("A1").Value y = Range("B1").Value z = Range("C1").Value If x = y And y = z Then Exit Sub If Target.Address = "$A$1" Then Range("B1", "C1") = x If Target.Address = "$B$1" Then Range("A1", "C1") = y If Target.Address = "$C$1" Then Range("A1", "B1") = z End Sub
m@rina
En fait, il me semble que la ligne
If x = y And y = z Then Exit Sub
ne sert à rien
puisque, automatiquement, les cellules changent en fonction d'une qui est modifiée... Donc, elles seront forcément identiques...
A moins que tu ne m'aies pas tout dit ! ;)
m@rina
If x = y And y = z Then Exit Sub
ne sert à rien
puisque, automatiquement, les cellules changent en fonction d'une qui est modifiée... Donc, elles seront forcément identiques...
A moins que tu ne m'aies pas tout dit ! ;)
m@rina
parce que sans cette condition, le pgm tourne indéfiniment !!!!
et justement j'ai essayé ton pgm avec 4 cells et ça ne marche pas parce que Range() ne prend que 2 arguments : If Target.Address = "$A$1" Then Range("B1", "C1") = x
si je fais Union(Range(), Range(),...), ça sélection une plage et non des cellules !!!
et justement j'ai essayé ton pgm avec 4 cells et ça ne marche pas parce que Range() ne prend que 2 arguments : If Target.Address = "$A$1" Then Range("B1", "C1") = x
si je fais Union(Range(), Range(),...), ça sélection une plage et non des cellules !!!
excuses-moi, je pose le pb autrement :
comment mettre à jour des cellules d'une colonne "ok/nok" en fonction des col_A et col_C ?
càd si je mets "ok" sur la cellule à droite de nom2, la macro cherche toutes les cellules "nom2" et mets ok sur les cellules correspondantes, comme sur l'exemple ci-dessous.
merci pour ta réponse
col_A ok/nok col_C ok/nok
nom1 nom2 ok
nom2 ok nom5
nom3 nom2 ok
nom4 nom3
nom4 nom4
comment mettre à jour des cellules d'une colonne "ok/nok" en fonction des col_A et col_C ?
càd si je mets "ok" sur la cellule à droite de nom2, la macro cherche toutes les cellules "nom2" et mets ok sur les cellules correspondantes, comme sur l'exemple ci-dessous.
merci pour ta réponse
col_A ok/nok col_C ok/nok
nom1 nom2 ok
nom2 ok nom5
nom3 nom2 ok
nom4 nom3
nom4 nom4
merci d'avance
Private Sub Worksheet_Change(ByVal Target As Range)
x = Range("O4").Value
y = Range("V3").Value
z = Range("V32").Value
If x = y And y = z Then Exit Sub
If Target.Address = "$O$4" Then
Range("V3") = Target
Range("V32") = Target
ElseIf Target.Address = "$V$3" Then
Range("O4") = Target
Range("V32") = Target
ElseIf Target.Address = "$V$32" Then
Range("O4") = Target
Range("V3") = Target
End If