Aide pour completer et corriger macro

Bonjour,

j ai commencer a faire une macro mais n etant pas super doue elle ne fonctionne pas

je cherche donc une personne pouvant m aider a la corriger

le but de cette macro serait de cacher ou d afficher des figures en function d un resltat dans un tableau

j ai un tableau dans une feuille 30 ou l on peut voir differente ligne dans la colonne D : 3 possibilite qui sont 0.5 , 1 ou 2.5.

et sur une feuille 31 j ai des chemin trace avec des fleches soit qui decende (Down) soit qui monte (Up)

j aimerais que en function du nombre ces fleches s effacent ou apparaissent.

Quans = 0.5 que les fleches Up apparaissent et quand = 2.5 que les fleches Down apparraissent.

voila ma macro :

Sub COMP()

Dim I As Single

Dim a As Single

Dim Sh As Single

Dim titre As String

For I = 1 To 45

Set Sh = Sheet3.Shapes("Up " & I)

Select Case Sheet31.[D1].Offset(I + 1).Value

If [D] = 0.5 Then ActiveSheet.Shapes("Up ").Visible = True

If [D] >= 1 Then ActiveSheet.Shapes("Up ").Visible = False

End Select

Sh.Line.ForeColor.SchemeColor = a

Sh.Visible = (a <> 0)

End If

Next I

End Sub

merci aux courageux .

a+

Bonjour,

Oui, quelques problèmes dans ta syntaxe.

Tu déclares Sh de type Single et tu lui affectes un objet.

Revoir déclaration : As Object ou As Shape

Tu utilises des conditions If dans une instruction Select Case sans définir de Case.

Si tu n'as que 3 valeurs possibles, sous Select Case :

Case 0.5

Tu mets le résultat à obtenir dans ce cas, puis en dessous:

Case 1, 2.5 [oubien Case Is >= 1]

Et résultat dans ce cas.

Pas de If nécessaire.

Ta variable a n'ayant pas été initialisée dans la procédure, elle ne peut que renvoyer 0 (donc couleur du trait...?)

Si pour une couleur, c'est une donnée de type Long (mais ça n'a pas d'incidence...)

Il reste que tu est dans une boucle qui défile des formes à partir du numéro d'index. Donc tu dois agir sur la forme concernée selon le I auquel tu est rendu. Donc : Shapes(I)

Shapes("Up ") va probablement déclencher une erreur si ce n'est pas le nom d'une forme de la feuille !

Il te manque peut-être une condition pour tester si "Up" ou "Down". C'est peut-être sur ce point qu'un If dans les Case du Select Case devrait intervenir pour savoir si "Up" ou "Down".

Cordialement

Ferrand

tout d abord merci, avec vos conseeil je les retravailler mais elle ne fonctionne toujours pas

la voici :

Sub COMP()

Dim I As Single

Dim ShUp As Shape

Dim SHDowm As Shape

Dim titre As String

For I = 1 To 45

Set ShUp = Sheet3.Shapes("Up " & I)

Set ShDown = Sheet3.Shapes("Down " & I)

Select Case Sheet31.[D1].Offset(I + 1).Value

Case Is = 0.5: ShUp.Visible = True And ShDown.Visible = False

Case Is >= 1: ShUp.Visible = False And ShDown.Visible = False

Case Is >= 2.5: ShUp.Visible = False And ShDown.Visible = True

End Select

Next I

End Sub

merci de l aide que vous pourrez m apporter

Il faut mettre un fichier pour qu'on y regarde de plus près.

voice ci join un bout du dossier

5pour-envoyer.xlsm (67.84 Ko)

Je ne comprends pas. Il y en a une floppée avant le dernier !

Calque toi sur les précédents. Il te faut définir a (la couleur) dans chaque cas, et ensuite ceux qui sont colorés sont visibles, les autres non.

Cordialement

Ferrand

Bonjour

Bonjour MFerrand

Tu as une forme à renommer (Up Arrow 33 ---> Up 33)

A tester

Sub COMP()
Dim Ligne As Long

  With Sheet31
    For Ligne = 3 To 47
      Select Case .Range("D" & Ligne)
        Case 0.5
          Sheet3.Shapes("Up " & Ligne - 2).Visible = True
          Sheet3.Shapes("Down " & Ligne - 2).Visible = False
        Case 2.5
          Sheet3.Shapes("Up " & Ligne - 2).Visible = False
          Sheet3.Shapes("Down " & Ligne - 2).Visible = True
        Case 1
          Sheet3.Shapes("Up " & Ligne - 2).Visible = False
          Sheet3.Shapes("Down " & Ligne - 2).Visible = False
      End Select
    Next Ligne
  End With
End Sub

merci beacoup de votre aide,

je viens de la copier a mon classeur complet et cela fonctionne superbement bien

merci beaucoup et bonne semaine.

Salut Banzai

nono, Bonne continuation.

Rechercher des sujets similaires à "aide completer corriger macro"