C
cafrine
Guest
macro excel 2002 >> excel 97
Bonsoir à tous
J'ai cette macro qui fonctionne très bien sur excel 2002 mais pas sur 97.
le problème se situe au niveau de l'affichage des couleurs dans les celulles.
Si quelqu'un pouvait me l'adapter.. ca serait super.
A moins qu'il y ait une case à cocher dans excel 97...
merci.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Plage As Range, Noms As Range, CelNom As Range, Celcouleur As Range
Set References = Range("Situation") 'situation est définit dans Excel via menu/insertion/nom/définir
On Error Resume Next 'Permet d'arreter la macro sans message en d'erreur
If Sh.Name = ("1 quadri 2004") Then 'Mois correspond à la feuille "Mois" dans le classeur
Set Plage = Range("D434,H4:H32,L4:L34,P433") 'Plage dans la feuille Mois du classeur
ElseIf Sh.Name = ("2 quadri 2004") Then 'Mois correspond à la feuille "Mois" dans le classeur
Set Plage = Range("D434,H4:H33,L4:L34,P434") 'Plage dans la feuille Mois du classeur
ElseIf Sh.Name = ("3 quadri 2004") Then 'Mois correspond à la feuille "Mois" dans le classeur
Set Plage = Range("D433,H4:H34,L4:L33,P434") 'Plage dans la feuille Mois du classeur
ElseIf Sh.Name = ("1 quadri 2005") Then 'Mois correspond à la feuille "Mois" dans le classeur
Set Plage = Range("D434,H4:H31,L4:L34,P433") 'Plage dans la feuille Mois du classeur
ElseIf Sh.Name = ("2 quadri 2005") Then 'Mois correspond à la feuille "Mois" dans le classeur
Set Plage = Range("D434,H4:H33,L4:L34,P434") 'Plage dans la feuille Mois du classeur
ElseIf Sh.Name = ("3 quadri 2005") Then 'Mois correspond à la feuille "Mois" dans le classeur
Set Plage = Range("D433,H4:H34,L4:L33,P434") 'Plage dans la feuille Mois du classeur
Else: Exit Sub 'permet de sortir de la macro si la feuille active n'est pas la feuille Mois
End If
If Not Intersect(Target, Plage) Is Nothing Then
For Each CelNom In Intersect(Target, Plage)
For Each Celcouleur In References
If CelNom = Celcouleur Then
CelNom.Interior.ColorIndex = Celcouleur.Interior.ColorIndex
CelNom.Font.ColorIndex = Celcouleur.Font.ColorIndex
Exit For
End If
Next Celcouleur
Next CelNom
End If
End Sub
Bonsoir à tous
J'ai cette macro qui fonctionne très bien sur excel 2002 mais pas sur 97.
le problème se situe au niveau de l'affichage des couleurs dans les celulles.
Si quelqu'un pouvait me l'adapter.. ca serait super.
A moins qu'il y ait une case à cocher dans excel 97...
merci.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Plage As Range, Noms As Range, CelNom As Range, Celcouleur As Range
Set References = Range("Situation") 'situation est définit dans Excel via menu/insertion/nom/définir
On Error Resume Next 'Permet d'arreter la macro sans message en d'erreur
If Sh.Name = ("1 quadri 2004") Then 'Mois correspond à la feuille "Mois" dans le classeur
Set Plage = Range("D434,H4:H32,L4:L34,P433") 'Plage dans la feuille Mois du classeur
ElseIf Sh.Name = ("2 quadri 2004") Then 'Mois correspond à la feuille "Mois" dans le classeur
Set Plage = Range("D434,H4:H33,L4:L34,P434") 'Plage dans la feuille Mois du classeur
ElseIf Sh.Name = ("3 quadri 2004") Then 'Mois correspond à la feuille "Mois" dans le classeur
Set Plage = Range("D433,H4:H34,L4:L33,P434") 'Plage dans la feuille Mois du classeur
ElseIf Sh.Name = ("1 quadri 2005") Then 'Mois correspond à la feuille "Mois" dans le classeur
Set Plage = Range("D434,H4:H31,L4:L34,P433") 'Plage dans la feuille Mois du classeur
ElseIf Sh.Name = ("2 quadri 2005") Then 'Mois correspond à la feuille "Mois" dans le classeur
Set Plage = Range("D434,H4:H33,L4:L34,P434") 'Plage dans la feuille Mois du classeur
ElseIf Sh.Name = ("3 quadri 2005") Then 'Mois correspond à la feuille "Mois" dans le classeur
Set Plage = Range("D433,H4:H34,L4:L33,P434") 'Plage dans la feuille Mois du classeur
Else: Exit Sub 'permet de sortir de la macro si la feuille active n'est pas la feuille Mois
End If
If Not Intersect(Target, Plage) Is Nothing Then
For Each CelNom In Intersect(Target, Plage)
For Each Celcouleur In References
If CelNom = Celcouleur Then
CelNom.Interior.ColorIndex = Celcouleur.Interior.ColorIndex
CelNom.Font.ColorIndex = Celcouleur.Font.ColorIndex
Exit For
End If
Next Celcouleur
Next CelNom
End If
End Sub