Affectation macro
Résolu
45maxi33
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
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.
A voir également:
- Affectation macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
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.
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?
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+
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]
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
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 :
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.
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
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.
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+
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+