copier macro

  • Initiateur de la discussion micky
  • Date de début
M

micky

Guest
BONJOUR,

j'ai recopié une macro évenementielle d'un génie d'ici qui marche bien :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E4")) Is Nothing Then: Exit Sub
If Target = "mm" Then
Range("D8:D9") = 8
Else
Range("D8:D9") = 45
End If

End Sub

Dans ma lancée, j'ai voulu en créer une autre en-dessous avec d'autres cellules de la même feuille:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E4")) Is Nothing Then: Exit Sub
If Target = "mm" Then
Range("D8:D9") = 8
Else
Range("D8:D9") = 45
End If

End Sub
________________________________________________
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("q4")) Is Nothing Then: Exit Sub
If Target = "mm" Then
Range("p8:p9") = 8
Else
Range("p8:p9") = 45
End If

End Sub


mais excel me dit qu'il y a "erreur de compilation, nom ambigû détecté worksheet_change"
qqun peut-il me donner la soluc, mercii
 
S

salim

Guest
Bonjour micky et le Forum

A mon avis micky c'est normal tu peux pas mettre deux fois le même événement sur la même feuille, si tu veux selectionner la cellule E4 et Q4 uniquement essaie ce code.

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E4,q4")) Is Nothing Then: Exit Sub
If Target = "mm" Then
Range("D8:D9") = 8
Else
Range("D8:D9") = 45
End If
End Sub
.

@+ Salim
 
S

salim

Guest
Re micky et el Forum

J'avais pas vu P8:p9 alors tu peux essayer ce code qui devrait fonctionner les cellules changes simultanément.

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E4,q4")) Is Nothing Then: Exit Sub
If Target = "mm" Then
Range("D8:D9") = 8: Range("p8:p9") = 8
Else
Range("D8:D9") = 45: Range("p8:p9") = 45
End If
End Sub


@+ Salim
 
M

micky

Guest
merci salim mais je veux que E4 n'est une action QUE sur d8 et d9 et que q4 n'est une action QUE sur p8 et p9 or ce que tu m'as envoyé qd je change e4, ça a aussi une incidence sur p8 et p9 et qd je change q4 ça a aussi une incidence sur d8 et d9...mercii
 
@

@Christophe@

Guest
Bonjour,

Tous simplement comme cela:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$Q$4" Then Exit Sub
If Target = "mm" Then
Range("p8:p9") = 8
Else
Range("p8:p9") = 45
End If

If Target.Address <> "$E$4" Then Exit Sub
If Target = "mm" Then
Range("D8:D9") = 8
Else
Range("D8:D9") = 45
End If
End Sub


Bonne soirée

@Christophe@
 
@

@Christophe@

Guest
Re,

Voici le code qui marche:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$Q$4" Then
If Target = "mm" Then
Range("P8:p9") = 8
Else
Range("P8:p9") = 45
End If
End If

If Target.Address = "$E$4" Then
If Target = "mm" Then
Range("D8:D9") = 8
Else
Range("D8:D9") = 45
End If
End If
End Sub


Bonne soirée

@Christophe@
 

Discussions similaires

Réponses
1
Affichages
249

Statistiques des forums

Discussions
312 338
Messages
2 087 398
Membres
103 537
dernier inscrit
alisafred974