generer un compteur de modification dans un classeur
1 réponse
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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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