Insertion image selon critère
Bonjour,
J'ai réalisé le code suivant afin que selon le critère de la 3ème colonne, un feu s'affiche dans la colonne 5 de la ligne :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| Private Sub Worksheet_Activate()
'Déclaration des variables
Dim objFeuille As Worksheet, objPict As Picture, img As Object
Dim Fichier As String
Dim positionX As String
Dim positionY As String
Dim Datejour, Ligne, essai
'Déclaration des objets
Set objFeuille = ActiveSheet
'Suppression des images existantes
For Each img In Worksheets("Portables de Prêts").Shapes
img.Delete
Next
'Prêts moins 3 semaines
Range("A3").Select
Ligne = 3
Do While Not IsEmpty(ActiveCell)
Ligne = Ligne + 1
Selection.Offset(1, 0).Select
'Définition de la position et de l'image en fonction de la valeur
If Worksheets("Portables de Prêts").Cells(Ligne, 3).Value = "EN REPARATION" Or Worksheets("Portables de Prêts").Cells(Ligne, 3).Value = "INDISPONIBLE" Then
Fichier = "F:\Boulot\feu_rouge.png"
'If Ligne = 5 Then
' positionX = "E5"
' positionY = "E5"
' GoTo 1
'Else
positionX = "E" & Ligne
positionY = "E" & Ligne
'End If
ElseIf Worksheets("Portables de Prêts").Cells(Ligne, 3).Value = "DISPONIBLE" Then
Fichier = "F:\Boulot\feu_vert.png"
positionX = "E" & Ligne
positionY = "E" & Ligne
End If
'Position de l'objet
Set objPict = objFeuille.Pictures.Insert(Fichier)
With objPict
.Left = Range(positionX).Left
.Top = Range(positionY).Top
End With
Loop
'Prêts de 3 mois à 12 mois
Range("A15").Select
Ligne = 15
Do While Not IsEmpty(ActiveCell)
Ligne = Ligne + 1
Selection.Offset(1, 0).Select
'Définition de la position et de l'image en fonction de la valeur
If Worksheets("Portables de Prêts").Cells(Ligne, 3).Value = "EN REPARATION" Or Worksheets("Portables de Prêts").Cells(Ligne, 3).Value = "INDISPONIBLE" Then
Fichier = "F:\Boulot\feu_rouge.png"
positionX = "E" & Ligne
positionY = "E" & Ligne
ElseIf Worksheets("Portables de Prêts").Cells(Ligne, 3).Value = "DISPONIBLE" Then
Fichier = "F:\Boulot\feu_vert.png"
positionX = "E" & Ligne
positionY = "E" & Ligne
End If
'Position de l'objet
Set objPict = objFeuille.Pictures.Insert(Fichier)
With objPict
.Left = Range(positionX).Left
.Top = Range(positionY).Top
End With
Loop
End Sub |
J'ai un problème à la ligne 5, l'image s'affiche dans la colonne 5 mais à la ligne 4. Il n'y a qu'à cette ligne que cela se produit, les autres fonctionnent correctement. En débogage, on s'aperçoit que positionX est resté à "E4".
Est-ce quelqu'un voit ce qui ne fonctionne pas correctement ? Ce qui est bizarre, c'est que je n'ai pas ce problème aux autres lignes. J'ai essayé de forcer lorsqu'il est à cette ligne mais il reste sur E4.
Merci d'avance pour votre aide.