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

generer un compteur de modification dans un classeur

1 réponse
Avatar
mitmit117
Bonjour,

Je me remets à vous pour une aide concernant une macro :

- je pose dans un premier temps mon problème :
Je dois créer dans un classeur Excel un suivie de modification de date. (Nombre de changements de dates de livraison). Et dans un second temps, incrémenter des couleurs lors de ce changement. (Vert pour 1 changement de date, jaune pour 2,3 changements et enfin rouge pour plus de 3 changements). Je me pencherai sur ce second problème plus tard.

J'ai réussi à faire un code qui correspond à mes attentes, mais je n'arrive pas à le faire fonctionner sur toutes les feuilles présentes dans le classeur (nombre de feuilles susceptible de changer régulièrement).

Voici ce code :

' *************************
' * code du compteur*
' *************************

Sub Worksheet_Change(ByVal Target As Range)
ir = Target.Row
If Target.Column = 8 And ir > 1 Then 'colonne 8 (date de livraison prévue)
compteur = Cells(ir, 12).Value 'colonne 12 (colonne de résultat)
compteur = compteur + 1 'incrémentation +1 a chaque modification
Cells(ir, 12).Value = compteur
End If
End Sub


Donc ce code marche si je le mets dans une feuille. J'ai tenté ensuite de l'incrémenter sur toutes les autres feuilles avec ce code mis dans "thisworkbook" :

' *******************
' * code du compteur*
' *******************
Sub compteur3()

Dim ws As Worksheet
For Each ws In Worksheets 'application pour toutes les feuilles

If ws.Name Like "feuil##" Then
ws.Activate

ir = Target.Row
If Target.Column = 8 And ir > 1 Then 'colonne 8 (date de livraison prévue)
compteur = Cells(ir, 12).Value 'colonne 12 (colonne de résultat)
compteur = compteur + 1 'incrémentation +1 a chaque modification
Cells(ir, 12).Value = compteur
End If
End If

Next ws

End Sub


Mais le code tourne en boucle et ne marche pas.

Pouvez vous m'indiquer une solution et/ou rectification de ce code pour que celui-ci marche.




Amicalement


Mitmit

1 réponse

Avatar
mitmit117
mitmit117 a écrit le 23/05/2011 à 16h34 :
Bonjour,

Je me remets à vous pour une aide concernant une macro :

- je pose dans un premier temps mon problème :
Je dois créer dans un classeur Excel un suivie de
modification de date. (Nombre de changements de dates de livraison). Et dans un
second temps, incrémenter des couleurs lors de ce changement. (Vert pour
1 changement de date, jaune pour 2,3 changements et enfin rouge pour plus de 3
changements). Je me pencherai sur ce second problème plus tard.

J'ai réussi à faire un code qui correspond à mes attentes,
mais je n'arrive pas à le faire fonctionner sur toutes les feuilles
présentes dans le classeur (nombre de feuilles susceptible de changer
régulièrement).

Voici ce code :

' *************************
' * code du compteur*
' *************************

Sub Worksheet_Change(ByVal Target As Range)
ir = Target.Row
If Target.Column = 8 And ir > 1 Then 'colonne 8 (date de livraison
prévue)
compteur = Cells(ir, 12).Value 'colonne 12 (colonne de
résultat)
compteur = compteur + 1 'incrémentation +1
a chaque modification
Cells(ir, 12).Value = compteur
End If
End Sub


Donc ce code marche si je le mets dans une feuille. J'ai tenté ensuite
de l'incrémenter sur toutes les autres feuilles avec ce code mis dans
"thisworkbook" :

' *******************
' * code du compteur*
' *******************
Sub compteur3()

Dim ws As Worksheet
For Each ws In Worksheets 'application pour toutes
les feuilles

If ws.Name Like "feuil##" Then
ws.Activate

ir = Target.Row
If Target.Column = 8 And ir > 1 Then 'colonne 8 (date
de livraison prévue)
compteur = Cells(ir, 12).Value 'colonne 12
(colonne de résultat)
compteur = compteur + 1
'incrémentation +1 a chaque modification
Cells(ir, 12).Value = compteur
End If
End If

Next ws

End Sub


Mais le code tourne en boucle et ne marche pas.

Pouvez vous m'indiquer une solution et/ou rectification de ce code pour que
celui-ci marche.




Amicalement


Mitmit


Probléme résolue !

Simplement mettre ce code dans "thisworkbook" :

' *******************
' * code du compteur*
' *******************
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 'Code pour suivie de modification du classeur

ir = Target.Row
If Target.Column = 8 And ir > 1 Then 'colonne 8 (date de livraison prévue)

compteur = Cells(ir, 12).Value 'colonne 12 (colonne de résultat)
compteur = compteur + 1 'incrémentation +1 a chaque modification
Cells(ir, 12).Value = compteur
End If
End Sub




bien à vous

Mitmit