Macro 2007 ne fonctionnant pas sur excel 2010 - Userform.Label

fredvolle

XLDnaute Nouveau
Bonjour

J'ai développé un outil de cartographie, j'ai une base sur mon poste (en excel 2007), et je génére des fichiers par zone de ma base.
Ces outils marchent sur mon poste et ceux de mes collègues, tous sur excel 2007.

Par contre, quand j'envoie à une collègue en province, qui est sur excel 2010, elle a ce message d'erreur quand elle clique sur bouton qui génère un user.form :

"Erreur d'exécution 481 : image incorrecte",
et la macro plante à cet endroit : UserForm1.Label_Depot.Caption = Nom_depot

J'ai essayé de trouver une raison sur différents forums, mais en vain...
Je sèche un peu... je suppose évidemment qu'il y a un problème de compatibilité mais je ne vois pas où...

Pourriez vous m'aider ?

Je ne peux malheureusement pas envoyer mon fichier il est trop lourd.

Merci d'avance pour votre aide !!
 

fredvolle

XLDnaute Nouveau
Re : Macro 2007 ne fonctionnant pas sur excel 2010 - Userform.Label

Je suis désolé, mais je n'ai pas été assez clair :

- mes collègues qui sont sur 2007 ont le même réseau mais pas accès à mon répertoire, donc cela ne vient pas du fait qu'ils n'ont pas accès aux images

D'ailleurs, dans ma macro, quand elle plante, ce n'est pas une image qu'elle affiche, mais du texte dans le user.form

J'ai fait une capture d'écran : ce qui plante là, c'est "Bassens DPA"

Carto.jpg

Encore merci pour ton aide !!
 

fredvolle

XLDnaute Nouveau
Re : Macro 2007 ne fonctionnant pas sur excel 2010 - Userform.Label

J'ai réussi à réduire la taille de mon fichier pour que je puisse le mettre à disposition.

J'ai retiré la carte derrière.

Il ne marche toujours pas chez ma collègue sur excel 2010...

Il faut donc appuyer sur le rond vert : la macro plante sur son poste, pas sur le mien..

Merci encore !!!
 

Pièces jointes

  • Ressource FOD ALVEA TEST.xlsm
    229.3 KB · Affichages: 107

camarchepas

XLDnaute Barbatruc
Re : Macro 2007 ne fonctionnant pas sur excel 2010 - Userform.Label

Bonjour ,
@ Staple : Bonjour

Si l'on ajoute un load userform1 , l'on tombe directement sur la vraie erreur


Lors du chargement userform1 , tu charges "temp.gif", mais c'est un fichier qui n'est pas disponible pour le chemin défini.

D'ou l'erreur , il faudrait simplement lui faire copier ce fichier Gif dans le bon répertoire et cela devrait aller beaucoup Mieux
 

Staple1600

XLDnaute Barbatruc
Re : Macro 2007 ne fonctionnant pas sur excel 2010 - Userform.Label

Bonsoir à tous

Merci camarchepas d'avoir pris le relais

Donc finalement, j'étais dans le vrai ;)
Car si ton classeur utilise par exemple des images stockées sur ton réseau, ton collègue en province n'y ayant pas accès , le code VBA plantera.

fredvolle
Merci d'avoir pris le temps de joindre un fichier exemple ;)
Question:
L'image temp.gif (comme son nom l'indique) n'est pas une image statique?
C'est l'iamge de la carte de France, et cette image évolue constamment, non ?
Ce qui fait que tu ne pas directement la stocké dans l'userform.
Par contre si c'est toujours la même image , alors la solution c'est de stocker l'image dans l'userform.
 
Dernière édition:

fredvolle

XLDnaute Nouveau
Re : Macro 2007 ne fonctionnant pas sur excel 2010 - Userform.Label

Bonjour
Merci pour votre aide...
En fait l'image se trouve dans le fichier lui-même, (si vous regardez sur la droite) tout simplement... je n'ai pas fait compliqué et elle se met à jour en fonction du point sélectionné, donc elle est dynamique dans le userform, c'est pour cela que je ne l'ai pas stocké

En tombant sur un autre post, j'ai trouvé quelqu'un qui avait le même problème que moi (https://www.excel-downloads.com/threads/image-dun-graphique-dans-userform.210681/)
ça vient de ce bout de programme :

Set LeGraph = Worksheets("France").ChartObjects(2).Chart
NomImage = ThisWorkbook.Path & Application.PathSeparator & "temp.gif"
LeGraph.Export Filename:=NomImage, FilterName:="GIF"
UserForm1.Image1.Picture = LoadPicture(NomImage)

Donc si j'ai compris, il faut que je lui donne le chemin du fichier ? C'est bien ça ?
Par contre pourquoi cela marche sur 2007 et pas 2010, il y a une explication ?
 

Staple1600

XLDnaute Barbatruc
Re : Macro 2007 ne fonctionnant pas sur excel 2010 - Userform.Label

Bonsoir à tous


Il ne s'agit pas d'une question de version (j'ai testé le fichier exemple sur Excel 2013) et j'ai le même message d'erreur.
J'ai donc modifié ainsi
Code VBA:
Private Sub UserForm_initialize()
Dim NomImage$, LeGraph As Chart
Set LeGraph = Worksheets("France").ChartObjects("Graphique 172").Chart
NomImage = ThisWorkbook.Path & Application.PathSeparator & "temp.gif"
LeGraph.Export Filename:=NomImage, FilterName:="GIF"
UserForm1.Image1.Picture = LoadPicture(NomImage)

Set LeGraph = Worksheets("France").ChartObjects("Graphique 173").Chart
NomImage = ThisWorkbook.Path & Application.PathSeparator & "temp.gif"
LeGraph.Export Filename:=NomImage, FilterName:="GIF"
UserForm1.Image_graphique.Picture = LoadPicture(NomImage)
End Sub




Et là, l'userform charge bien les graphiques dans l'userform (et plus de message d'erreur)
Ensuite j'ai fermé Excel puis réouvert
J'ai remis le code initial (c'est à dire 1 et 2 à la place des noms des graphiques)
et là miracle cela fonctionne désormais sans erreur.

EDITION: Par contre si je retélécharge ton fichier exemple et que je charge l'userform sans changer le code j'ai de nouveau le message d'erreur ????
 
Dernière édition:

fredvolle

XLDnaute Nouveau
Re : Macro 2007 ne fonctionnant pas sur excel 2010 - Userform.Label

Bonjour à tous !
La proposition de Staple 1600 ne fonctionne pas non plus sur excel 2010... mais ça marche sur 2007...

Mais j'ai trouvé une solution, enfin, un informaticien de chez ma collègue a trouvé la solution : il faut rajouter un bout de code dans la macro :

Private Sub UserForm_initialize()
Set LeGraph = Worksheets("France").ChartObjects(2).Chart
Worksheets("France").ChartObjects(2).Activate
NomImage = ThisWorkbook.Path & Application.PathSeparator & "temp.gif"
LeGraph.Export Filename:=NomImage, FilterName:="GIF"
UserForm1.Image1.Picture = LoadPicture(NomImage)

Set LeGraph = Worksheets("France").ChartObjects(1).Chart
Worksheets("France").ChartObjects(1).Activate
NomImage = ThisWorkbook.Path & Application.PathSeparator & "temp.gif"
LeGraph.Export Filename:=NomImage, FilterName:="GIF"
UserForm1.Image_graphique.Picture = LoadPicture(NomImage)

End Sub

En activant le graphique, la macro fonctionne... il n'explique par contre pas trop la raison de la différence entre 2007 et 2010...

Merci à tous pour votre aide ! Mon problème est résolu !!
 

Discussions similaires

Statistiques des forums

Discussions
314 645
Messages
2 111 536
Membres
111 185
dernier inscrit
Laurent.