Private Sub Workbook_Open() + macro complémentaire

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

djfeel

XLDnaute Nouveau
Bonjour,

J'ai un problème que j'ai rencontré en voulant créer une barre de commande pour une macro complémentaire.
Je voulais créer une barre avec des images importées et pas de faceID.
Pour créer un logo a partir d'une image, il faut insérer une image dans une feuille, puis la copier dans le presse papier et la collé dans ma commandbar.

Cela fonctionne parfaitement sauf lorsque j'utilise ma macro en tant que macro complémentaire.

Ma macro qui exécute le code pour créer ma commandbar se trouve dans une sub Workbook_open.

Le problème: lorsque ma macro complémentaire se charge à l'ouverture d'excel, au moment où ma macro complémentaire va vouloir insérer une image dans la feuille :
ActiveSheet.Pictures.Insert(...
La feuille n'existe pas encore...


J'ai alors une erreur d'exécution '91' : "Variable objet ou variable de bloc with non définie".

Cette erreur peut facilement se reproduire avec le code suivant :
Private Sub Workbook_Open()
MsgBox (ActiveSheet.Name)
End Sub
On demande dans cette exemple d'afficher le nom d'une feuille qui n'existe pas encore!!

Pourriez-vous me dire comme contourner ce problème s'il vous plait?!
J'ai fait pas mal de recherches mais je n'ai rien trouvé pour le moment!

Merci d'avance pour le temps passé à lire mon message ainsi que pour votre aide.

Cordialement,

Philippe
 
Re : Private Sub Workbook_Open() + macro complémentaire

Salut DjFeel et bienvenue sur ce forum 😉

As-tu essayé :
Code:
Private Sub Workbook_Open()
Application.Workbooks.Add
[I]ActiveSheet.Pictures.Insert(...[/I]
End Sub

A+
 
Re : Private Sub Workbook_Open() + macro complémentaire

Bonjour,

Dans une macro complémentaire aucune feuille n'est activée. Mais tu as toujours une feuille avec un nom. As-tu essayer avec son nom ou son codename:

Code:
Feuil1[I].Pictures.Insert(...[/I]
Ou
Code:
[I]sheets("Feuil1").Pictures.Insert(...[/I]

Dans tes posts, si tu pouvait utilier la balise
Code:
 pour entourer tes codes cela serait plus facile à lire. Merci
 Bienvenue chez XLD
A+
 
Re : Private Sub Workbook_Open() + macro complémentaire

Bonjour et merci de votre aide.

Tout d'abord excusez moi de ne pas avoir mis mon code entre balise...

J'ai essayé vos 2 solutions mais j'ai toujours le même problème.
Je pense que le problème vient du fait qu'on appelle la feuille alors qu'elle n'est pas encore créée.
Comment contourner ce problème?
Existe-t-il un moyen pour exécuter un programme que lorsqu'une feuille est créée?

J'ai essayé le code suivant placé dans l'onglet feuil de ma macro :
Code:
Private Sub Worksheet_Activate()
MsgBox (ActiveSheet.Name)
End Sub

mais cela ne fonctionne pas non plus...


Merci de votre aide

Cordialement,

Philippe
 
Re : Private Sub Workbook_Open() + macro complémentaire

Bonjour le djfeel,
Re Ges 😉,

comme te le dis Hasco, dans une macro complémentaire se trouve toujours une feuille donc pourquoi vouloir en créer une autre?
Il suffit de l'identifier comme les exemples montrés.
 
Re : Private Sub Workbook_Open() + macro complémentaire

Bonsoir,

Je viens de faire ce que vous me conseillez :
J'ai testé les 3 codes suivant dans ThisWorkBook :

Code:
Private Sub Workbook_Open()
Sheets("Sheet1").Pictures.Insert ("C:\ (...) .bmp")
End Sub

Code:
Private Sub Workbook_Open()
sheet1.Pictures.Insert ("C:\ (...) .bmp")
End Sub

Code:
Private Sub Workbook_Open()
Worksheet.Sheet1.Select
End Sub

A chaque fois lorsque j'ouvre un fichier Excel, j'ai le message d'erreur suivant :
erreur d'exécution '13' : Incompatibilité de type

Si comme vous me l'avez dit il y a tjrs une feuille dans une macro complémentaire, comment ce fait-il que j'ai un message d'erreur?

Merci d'avance pour vos éclaircissements!

Cordialement,

Philippe
 
Re : Private Sub Workbook_Open() + macro complémentaire

Re,

erreur d'exécution '13' : Incompatibilité de type

Ce genre d'erreur n'a rien à voir avec la présence d'une feuille ou non. Il s'agit d'une erreur de type. Mais sans voir le code exacte(le fichier) c'est difficile de t'aider. As-tu essayer de déboguer ou de faire un débogage pas-à-pas?

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
41
Affichages
888
Réponses
6
Affichages
431
Réponses
4
Affichages
439
Retour