PatCatNat’s, site de Patrice MOREL
Vous êtes ici : Accueil » Inform@tic » Excel ou Calc » Bogues code VBA

Bogues code VBA

D 10 septembre 2009     H 10:56     A Patrice MOREL    


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

4 janvier – Incrémentation de lignes avec un classeur lié.

3 août 2017 – Nom de fichier dans une cellule

14 mars 2012 – Date par défaut

14 décembre 2011 – Divers petits trucs

17 octobre 2011 – Préparer sa liste de diffusion par mail