Affectation macro
Résolu
45maxi33
Messages postés
6
Statut
Membre
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour le Forum;
J'ai une question à laquelle je n'ai pas trouvé réponse malgrés de nombreuses recherches, peut-être pourriez vous m'aider?
J'ai un fichier excel 2003 avec 4 onglets, dans ce fichier une macro me copie l'un des onglets et m'enregistre ce dernier dans un dossier avec un nom propre.
Le problème : Dans cette onglet se trouve une image à laquelle j'ai affecter une macro qui fonctionne dans le fichier d'origine, mais cette macro ne fonctionne plus aprés le copiage de l'onglet. Pourtant la macro est située dans l'onglet ...
Message d'erreur "400" ...
Voila, vous remerciant d'avance du coup de main.
A plus.
J'ai une question à laquelle je n'ai pas trouvé réponse malgrés de nombreuses recherches, peut-être pourriez vous m'aider?
J'ai un fichier excel 2003 avec 4 onglets, dans ce fichier une macro me copie l'un des onglets et m'enregistre ce dernier dans un dossier avec un nom propre.
Le problème : Dans cette onglet se trouve une image à laquelle j'ai affecter une macro qui fonctionne dans le fichier d'origine, mais cette macro ne fonctionne plus aprés le copiage de l'onglet. Pourtant la macro est située dans l'onglet ...
Message d'erreur "400" ...
Voila, vous remerciant d'avance du coup de main.
A plus.
Configuration: Windows XP Internet Explorer 6.0
9 réponses
-
c'est normal le fichier contenant la photo a été copié avec un lien vers une macro qui n'existe pas.
seul le nom de la macro a suivi.
il faut que tu rajoutes manuellement le code associé à cette photo.
c'est le plus simple.
ensuite tout rentrera dans l'ordre. -
Salut Bidouileu;
Merci pour ta réponse
Mais j'aimerai justement garder ce lien entre ma macro et cette "photo" (qui n'est pas vraiment une photo, mais plutot une image), afin de ne pas devoir à chaque fois réaffecter ma macro.
Tu as une idée? -
une astuce serait d'exporter ton module
puis de l'importer dans le nouveau fichier.
le faire en automatique? je ne l'ai jamais fait et je ne sais pas si c'est faisable.
A+ -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Salut,
Il est possible de manipuler l'éditeur de macro par une macro. J'ai lu ça sur ce site : https://silkyroad.developpez.com/VBA/VisualBasicEditor/
Voici un exemple de code qui constitue une bonne piste pour toit : Créer un nouveau module, le renommer et y insérer une macro :
!!! attention, important : Nécéssite d'activer la référence "Visual basic For Application Extensibility 5.3" !!!!
[Dans l'éditeur VBA : Outils/références cocher Microsoft Visual Basic For Application Extensibility 5.3]
Code (trouvé dans la source citée plus haut) : [Je précise que ce code ne fonctionne pas à mon taf, mais c'est peut être juste un souci de version d'Excel]
Sub creationModule() 'Nécéssite d'activer la référence '"Visual basic For Application Extensibility 5.3" ' Dim Wb As Workbook Dim VBComp As VBComponent Dim X As Integer 'Définit le classeur cible Set Wb = Workbooks("Classeur1.xls") 'Ajoute un module standard dans le classeur Set VBComp = Wb.VBProject.VBComponents.Add(1) 'Renomme le module VBComp.Name = "NouveauModule" 'Ajoute une macro dans le module With VBComp.CodeModule X = .CountOfLines .InsertLines X + 1, "Sub laMacro()" .InsertLines X + 2, "Range(""A1"").Value = ""Coucou""" .InsertLines X + 3, "End Sub" End With End Sub -
Je l'avais lu aussi ; )
mais je ne l'ai pas testé alors je n'ai rien dit. -
Lut Bidouilleu,
Je l'ai testé et il m'indique :
"erreur d'exécution 1004" "L'accès au programme par Visual Basic n'est pas fiable"
sur la ligne :Set VBComp = Wb.VBProject.VBComponents.Add(1)
Je vais me renseigner car il n'y a pas de raison que ce code ne fonctionne pas étant donné la qualité du programmeur...
EDIT : Bon ça fonctionne sous 2003. Pour que cela tourne il faut :
1- avoir coché l'option (dans l'éditeur Visual Basic : Outils/Références) Microsoft Visual Basic for applications Extensibility 5.3
2- Dans la sécurité des macros (Excel : Outils/Options onglet sécurité, cliquer sur "sécurité des macros") onglet "Editeurs approuvés", cocher l'option : "faire confiance aux projets visual basic"
Après ne reste qu'à adapter le code en remplaçant la procédure. Cela reste effectivement fort accessible.-
Salut pijaku,
C'est très bien! je ne doutais pas des qualités de SilkyRoad ni des tiennes d'ailleurs, mais du comportement
avec les liens, où avec les bibliothèques.
pour un module "simple" je comprends bien qu'il n'y aura pas de problème.
De toutes manières, toi tu connais la musique .... ; ) je me fais pas de soucis.
A+
R
-
-
Merci beaucoup.
Je vais regarder tout ça à tête reposée.
Je vous tiendrais au courant.
Bonne journée et encore merci. -
Bonjour tous,
Une solution qui serait, à mon sens, plus simple ce serait de rendre la macro valable sans objet spécifique, par exemple mettre..
ActiveSheet au lieu de Sheets("LeNom"), idem pour les autres sélection nommées.
Et ensuite soit copier la macros dans le classeur Perso, soit dans les macros complémentaires.
A+