SOS...Code

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
garnote
Le #4856691
Bonsoir,

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

Serge



"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



Misange
Le #4856541
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




LSteph
Le #4856491
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 .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




charlyp
Le #4853031
merci à tous (tes)
charlyp




"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 .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




charlyp
Le #4852641
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"
Bonsoir,

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

Serge



"charlyp" 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







Publicité
Poster une réponse
Anonyme