Re : Non rafraîchissement de l'écran non fonctionnel.
Re,
Application.ScreenUpdating = False est utile quand il y a beaucoup de Shapes à traiter.
Par ailleurs pourquoi colorer des Shapes déjà colorées ?
Je verrais bien quelque chose de ce genre avec la propriété Transparency :
Code:
Private Sub Workbook_Open()
Dim s As Shape
Application.ScreenUpdating = False
For Each s In Feuil1.Shapes 'CodeName de la feuille
s.OnAction = "Feuil1.Click_France"
s.Fill.Transparency = 1
Next
End Sub
Code:
Sub Click_France()
With Shapes.Range(Array("Alpes Maritimes", "Var", "Bouches Du Rhone", "Alpes de Haute Provence", "Hautes Alpes", "Drome", "Isere")).Fill
.Transparency = IIf(.Transparency, 0, 1)
End With
End Sub
Re : Non rafraîchissement de l'écran non fonctionnel.
Re,
La macro étant assez rapide on peut traiter toutes les Shapes :
Code:
Sub Click_France()
Dim s As Shape
Application.ScreenUpdating = False
For Each s In Shapes
If s.Fill.ForeColor.RGB Then _
s.Fill.Transparency = IIf(s.Fill.Transparency, 0, 1)
Next
End Sub
Re : Non rafraîchissement de l'écran non fonctionnel.
Re Calvus,
Il est donc clair que sur Excel 2007 l'utilisation de Application.ScreenUpdating provoque le saut d'écran.
En fait on peut carrément supprimer cette instruction :
Code:
Sub Click_France()
Dim s As Shape
For Each s In Shapes
If s.Fill.ForeColor.RGB Then _
s.Fill.Transparency = IIf(s.Fill.Transparency, 0, 1)
Next
End Sub