Bogues code VBA
10 septembre 2009 10:56
Il y a des trucs que je ne m’explique pas et pourtant après modif çà marche...
Mes images (feu tricolore) ne s’affichent pas dans l’odre voulu (premier plan) :
L’exemple suivant est :
- mettre en premier plan le feu rouge si les cellules « F6 » et « K6 » sont inférieures à 100%
- mettre en premier plan le feu orange si les cellules « F6 » ou « K6 » sont inférieures à 100%
- mettre en premier plan le feu vert si les cellules « F6 » et « K6 » sont supérieures à 100%
Le code qui ne fonctionne pas alors que tout semble correct :
Private Sub Workbook_Open()
If Range("F6") < 1 And Range("K6") < 1 Then
ActiveSheet.Shapes("Picture 9").ZOrder msoBringToFront 'Rouge
ElseIf Range("F6") < 1 And Range("K6") >= 1 Then
ActiveSheet.Shapes("Picture 10").ZOrder msoBringToFront 'Orange
ElseIf Range("F6") >= 1 And Range("K6") < 1 Then
ActiveSheet.Shapes("Picture 10").ZOrder msoBringToFront 'Orange
ElseIf Range("F6") >= 1 And Range("K6") >= 1 Then
ActiveSheet.Shapes("Picture 6").ZOrder msoBringToFront 'Vert
End If
End Sub
Il faut simplement sauter une ligne en début de code et une en fin de code :
Private Sub Workbook_Open()
If Range("F6") < 1 And Range("K6") < 1 Then
ActiveSheet.Shapes("Picture 9").ZOrder msoBringToFront 'Rouge
ElseIf Range("F6") < 1 And Range("K6") >= 1 Then
ActiveSheet.Shapes("Picture 10").ZOrder msoBringToFront 'Orange
ElseIf Range("F6") >= 1 And Range("K6") < 1 Then
ActiveSheet.Shapes("Picture 10").ZOrder msoBringToFront 'Orange
ElseIf Range("F6") >= 1 And Range("K6") >= 1 Then
ActiveSheet.Shapes("Picture 6").ZOrder msoBringToFront 'Vert
End If
End Sub
Pour moi cela restera un bogue tant que je n’aurais pas d’explication logique !...
Dans la même rubrique
17 janvier – Bogue en RechercheV avec des parenthèses
12 mai 2021 – Un lien entre les cellules
12 novembre 2019 – Formatages divers
4 janvier 2018 – Incrémentation de lignes avec un classeur lié.
3 août 2017 – Nom de fichier dans une cellule