Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

SOS...Code

5 réponses
Avatar
charlyp
bonsoir,

c'est encore moi!
désolé de vous donner du travail!! :(

comment faire pour mettre une 2 eme macro dans le code d' une feuille de
classeur, alors qu'il y en a déjà une que je veux conserver!

CharlyP

5 réponses

Avatar
garnote
Bonsoir,

Pas clair pour moi ! Pourrais-tu préciser ?
Si possible en collant ta maro ici-même et ...

Serge



"charlyp" a écrit dans le message de news: 46fc217d$0$5096$
bonsoir,

c'est encore moi!
désolé de vous donner du travail!! :(

comment faire pour mettre une 2 eme macro dans le code d' une feuille de classeur, alors qu'il y en a déjà une que je veux
conserver!

CharlyP



Avatar
Misange
Bonjour

Tu la mets en dessous ! il peut y avoir autant de macros que tu veux sur
une feuille du moment qu'elles ont des noms différents.
Pour les modules standards (non rattachés à une feuille particulière) il
est même recommandé de ne pas faire un module par macro dans la mesure
ou cela alourdit inutilement le classeur. Une bonne solution, regrouper
sur un même module les macros participant à un type d'action similaire,
histoire de s'y retrouver, et donner un nom significatif à ces modules

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

bonsoir,

c'est encore moi!
désolé de vous donner du travail!! :(

comment faire pour mettre une 2 eme macro dans le code d' une feuille de
classeur, alors qu'il y en a déjà une que je veux conserver!

CharlyP




Avatar
LSteph
Bonjour,
Il faut cibler les plages en fonction de la réaction que l'on souhaite
sur un évennement donné.
En résumé, un seul Worksheet_change(byval target as range) par exemple
Voir ci après ce code qui n'est d'aucune autre utilité que d'évoquer le
contexte
deux ensembles à cibler dont
- un ne contient qu'une seule cellule
(toujours définir quand même une intersection et envisager ainsi une
potentielle saisie dans plusieurs cellules)
- l'autre englobe une plage sur laquelle on veut cibler aussi l'action
envisagée en fonction de la ligne (ici par exemple).
Sans oublier, .enableevents ,d'activer ou désactiver les évennements si
l'on opère des changements.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect1 As Range, iSect2 As Range, c As Range
Set iSect1 = Intersect(Target, [a3])
Set iSect2 = Intersect(Target, [b3:g7])
If Not iSect1 Is Nothing Then MsgBox "a3 a été modifiée"
If Not iSect2 Is Nothing Then
Application.EnableEvents = False
For Each c In iSect2.Cells
Select Case c.Row
Case 3 To 4
[a2] = [a2] + 1
Case 6 To 7
[B2] = [B2] + 1
Case Else
With c.Interior
If .ColorIndex < 54 And .ColorIndex > 2 Then
.ColorIndex = .ColorIndex + 2
Else
.ColorIndex = 3
End If
End With
End Select
Next
Application.EnableEvents = True
End If
End Sub

'lSteph



bonsoir,

c'est encore moi!
désolé de vous donner du travail!! :(

comment faire pour mettre une 2 eme macro dans le code d' une feuille de
classeur, alors qu'il y en a déjà une que je veux conserver!

CharlyP




Avatar
charlyp
merci à tous (tes)
charlyp




"LSteph" a écrit dans le message de news:

Bonjour,
Il faut cibler les plages en fonction de la réaction que l'on souhaite sur
un évennement donné.
En résumé, un seul Worksheet_change(byval target as range) par exemple
Voir ci après ce code qui n'est d'aucune autre utilité que d'évoquer le
contexte
deux ensembles à cibler dont
- un ne contient qu'une seule cellule
(toujours définir quand même une intersection et envisager ainsi une
potentielle saisie dans plusieurs cellules)
- l'autre englobe une plage sur laquelle on veut cibler aussi l'action
envisagée en fonction de la ligne (ici par exemple).
Sans oublier, .enableevents ,d'activer ou désactiver les évennements si
l'on opère des changements.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim iSect1 As Range, iSect2 As Range, c As Range
Set iSect1 = Intersect(Target, [a3])
Set iSect2 = Intersect(Target, [b3:g7])
If Not iSect1 Is Nothing Then MsgBox "a3 a été modifiée"
If Not iSect2 Is Nothing Then
Application.EnableEvents = False
For Each c In iSect2.Cells
Select Case c.Row
Case 3 To 4
[a2] = [a2] + 1
Case 6 To 7
[B2] = [B2] + 1
Case Else
With c.Interior
If .ColorIndex < 54 And .ColorIndex > 2 Then
.ColorIndex = .ColorIndex + 2
Else
.ColorIndex = 3
End If
End With
End Select
Next
Application.EnableEvents = True
End If
End Sub

'lSteph



bonsoir,

c'est encore moi!
désolé de vous donner du travail!! :(

comment faire pour mettre une 2 eme macro dans le code d' une feuille de
classeur, alors qu'il y en a déjà une que je veux conserver!

CharlyP




Avatar
charlyp
bOnjour,
je répond avec du retard, je présente mes excuses.
Voici :
Private Sub Worksheet_Change(ByVal Target As Range)
'*** On vérifie qu'une seule cellule est modifiée
If Target.Count > 1 Then Exit Sub
'*** Vérification du numéro de colonne
If Target.Column = 11 Then
If UCase(Target.Value) = "OK" Then
Target(1, 2) = Date
ElseIf Target.Value = "" Then
Target(1, 2) = ""
End If
ElseIf Target.Column = 1 Then
If UCase(Target.Value) <> "" Then
Target(1, 2) = Date
Else
Target(1, 2) = ""
End If
ElseIf Target.Column = 14 Then
If UCase(Target.Value) <> "" Then
Target(1, 2) = Date
Else
Target(1, 2) = ""
End If

End If

If Target.Column = 3 And UCase(Target) = "P" Then
Application.EnableEvents = False
Target.Value = "PO"
Application.EnableEvents = True
End If
If Target.Column = 3 And UCase(Target) = "M" Then
Application.EnableEvents = False
Target.Value = "MU"
Application.EnableEvents = True

End If

If Target.Column = 3 And UCase(Target) = "C" Then
Application.EnableEvents = False
Target.Value = "CU"
Application.EnableEvents = True
End If
End Sub



c'est ce que j'ai dans une feuille et je souhaite mettre une autre macro en
plus
charlyp










"garnote" a écrit dans le message de news:

Bonsoir,

Pas clair pour moi ! Pourrais-tu préciser ?
Si possible en collant ta maro ici-même et ...

Serge



"charlyp" a écrit dans le
message de news: 46fc217d$0$5096$
bonsoir,

c'est encore moi!
désolé de vous donner du travail!! :(

comment faire pour mettre une 2 eme macro dans le code d' une feuille de
classeur, alors qu'il y en a déjà une que je veux conserver!

CharlyP