Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 code VBA incorrecte

claude.bonato0

XLDnaute Nouveau
Bonjour

J'ait un probléme de code vba qui fonctionnait avec excel 2007 seul 2 paragraphes fonctionnes il on tous le meme code seul le n° de paragraphe change
je ne comprend pas
merci à vous tous
VB:
 If Graph = 3 Then 'graph écart boule interprété
            Sheets("Feuil3").ChartObjects(1).Chart.Export fichier, "gif"
            Me.Image3.Picture = LoadPicture("c:tempgraphique.gif")
            Sheets("Feuil1").Select
        End If
 
Dernière édition:

Etoto

XLDnaute Barbatruc
Bonjour,

En tant qu'ami je te conseille d'enlever les majuscules de ton poste tout de suite, cela risque d'énerver certains membres et ils risquent même de ne pas de te répondre, ce forum et une aide bénévole, donc si quelqu'un ne respecte pas la charte (et même si il l'a respecte) il n'ont pas l'obligation d'aider. Alors enlève les majuscules de ton poste c'est déconseillé par la charte.
 

Lolote83

XLDnaute Barbatruc
Bonjour à tous,
Même en ayant changé "la casse" du texte de demande, celle-ci n'est pas ou peu exploitable en l'état.
Fourni un fichier exemple sans données confidentielle sinon, comme le dis à juste titre ETOTO (que je salue au passage), tu ne trouveras pas de réponse.
Un fichier joint avec des explications claires est plus souvent propice à une solution.
@+ Lolote83
 

claude.bonato0

XLDnaute Nouveau
Bonjour je viens de joindre le fichier en question
a l'ouverture du fichier quand je clic Visu Ecart n° message d'erreur 481
je ne parviens pas a résoudre mon problème
y a t'il une personne qui pourrait m' aider merci a vous
 

claude.bonato0

XLDnaute Nouveau
Bonjour
je vous joint le fichier en question
Sub AffichageDesGraph(Graph)
Dim i%

For i = 1 To 6
If Graph = i Then
UserForm1.Controls("image" & i).Visible = True
Const fichier = "c:tempgraphique.gif"
If Graph = 1 Then 'graph nombre sortie boule
Sheets("Feuil4").ChartObjects(1).Chart.Export fichier, "gif"
Me.Image1.Picture = LoadPicture("c:tempgraphique.gif")
Sheets("Feuil1").Select
End If
If Graph = 2 Then 'graph nombre sortie étoile
Sheets("Feuil4").ChartObjects(2).Chart.Export fichier, "gif"
Me.Image2.Picture = LoadPicture("c:tempgraphique.gif")
Sheets("Feuil1").Select
End If



If Graph = 3 Then 'graph écart boule interprété
Sheets("Feuil3").ChartObjects(1).Chart.Export fichier, "gif"
Me.Image3.Picture = LoadPicture("c:tempgraphique.gif")
Sheets("Feuil1").Select
End If
If Graph = 4 Then 'graph écart étoile interprété
Sheets("Feuil3").ChartObjects(2).Chart.Export fichier, "gif"
Me.Image4.Picture = LoadPicture("c:tempgraphique.gif")
Sheets("Feuil1").Select
End If
If Graph = 5 Then 'graph écart réel boule
Sheets("Feuil3").ChartObjects(3).Chart.Export fichier, "gif"

Me.Image5.Picture = LoadPicture("c:tempgraphique.gif")
Sheets("Feuil1").Select
End If
If Graph = 6 Then 'graph écart réel étoile
Sheets("Feuil3").ChartObjects(4).Chart.Export fichier, "gif"
Me.Image6.Picture = LoadPicture("c:tempgraphique.gif")
Sheets("Feuil1").Select
End If
ElseIf Graph <> i Then
UserForm1.Controls("image" & i).Visible = False
End If
Next i
End Sub
 

Etoto

XLDnaute Barbatruc
Heu, la tu nous as joint que le code, mais comme dit @Yeahou dans le post #6, le chemin n'est pas dans le bon format.
 

claude.bonato0

XLDnaute Nouveau
Bonjour je vous joint le fichier complet
 

Etoto

XLDnaute Barbatruc
Je suis pas bon en VBA mais j'applique les conseils de @Yeahou. Voici le code :

Mais il faut nous montrer le fichier où est stocké le code.

VB:
Sub AffichageDesGraph(Graph)
Dim i%

For i = 1 To 6
If Graph = i Then
UserForm1.Controls("image" & i).Visible = True
Const fichier = "c:tempgraphique.gif"
If Graph = 1 Then 'graph nombre sortie boule
Sheets("Feuil4").ChartObjects(1).Chart.Export fichier, "gif"
Me.Image1.Picture = LoadPicture("c:\temp\graphique.gif")
Sheets("Feuil1").Select
End If
If Graph = 2 Then 'graph nombre sortie étoile
Sheets("Feuil4").ChartObjects(2).Chart.Export fichier, "gif"
Me.Image2.Picture = LoadPicture("c:\temp\graphique.gif")
Sheets("Feuil1").Select
End If



If Graph = 3 Then 'graph écart boule interprété
Sheets("Feuil3").ChartObjects(1).Chart.Export fichier, "gif"
Me.Image3.Picture = LoadPicture("c:\temp\graphique.gif")
Sheets("Feuil1").Select
End If
If Graph = 4 Then 'graph écart étoile interprété
Sheets("Feuil3").ChartObjects(2).Chart.Export fichier, "gif"
Me.Image4.Picture = LoadPicture("c:\temp\graphique.gif")
Sheets("Feuil1").Select
End If
If Graph = 5 Then 'graph écart réel boule
Sheets("Feuil3").ChartObjects(3).Chart.Export fichier, "gif"

Me.Image5.Picture = LoadPicture("c:\temp\graphique.gif")
Sheets("Feuil1").Select
End If
If Graph = 6 Then 'graph écart réel étoile
Sheets("Feuil3").ChartObjects(4).Chart.Export fichier, "gif"
Me.Image6.Picture = LoadPicture("c:\temp\graphique.gif")
Sheets("Feuil1").Select
End If
ElseIf Graph <> i Then
UserForm1.Controls("image" & i).Visible = False
End If
Next i
End Sub
 

patricktoulon

XLDnaute Barbatruc
re
bonjour
j'aurais fait un truc dans le genre perso
VB:
Function exportGraph(x As Long)
    Dim fichier$
    fichier = ThisWorkbook.Path
    Select Case x
    Case 1, 2: fichier = fichier & "\chart" & x & ".gif"
        Sheets("Feuil4").ChartObjects(x).Chart.Export fichier, "gif"

    Case 3, 4, 5, 6: fichier = fichier & "\chart" & x - 2 & ".gif"
        Sheets("Feuil3").ChartObjects(x - 2).Chart.Export fichier, "gif"
    End Select
    Do: Loop While Dir(fichier) = ""
    exportGraph = fichier
End Function


Sub AffichageDesGraph()
    Dim i%, fichier$
    For i = 1 To 6
        fichier = exportGraph(i)
        With UserForm1.Controls("image" & i)
            .Visible = True
            .Picture = LoadPicture(fichier)
            Sheets("Feuil1").Select
        End With
        Kill fichier
    Next i
End Sub
bien sur je peux pas tester et optimiser vu que tu persiste a n'envoyer que le code et non le fichier xl
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Claude, le fil,

Bonjour je vous joint le fichier complet

y'a un progrès ! tu as su mettre ton code VBA entre balises de code !

mais le code VBA d'un Classeur Excel n'est pas le fichier de ce classeur Excel !

fichier = FILE en anglais ! il se trouve sur le disque dur de ton PC.​

un code VBA, c'est les instructions d'un programme, et ce programme est dans un des modules du classeur Excel si le fichier a l'extension .xlsm ou .xls.

soan
 

Etoto

XLDnaute Barbatruc
Vives les fichiers !!
 

Discussions similaires

Réponses
5
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…