Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/10/2011, 12h01   #1
Invité de passage
 
Homme
Étudiant
Inscription : octobre 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Conseil

Informations forums :
Inscription : octobre 2011
Messages : 4
Points : 0
Points : 0
Par défaut Copie automtique macro vers un nouveau classeur

Bonjour,

Je m'appelle Charles, après avoir passé des heures entières sur ce forum il me reste quelques interrogations. Voila pourquoi je suis nouveau parmi vous. je vous remercie pour votre acceuil et pour votre aide future dans ce forum qui me semble très actif.


j'ai crée un userfom qui me permet de créer un nouveau classeur à partir du document initial et en cliquant sur le bouton valider du userform.

- Mon classeur initial s'appelle "AFI essai macro V3"
- Le classeur créé est nommé en fonction des informations rentrées dans le userfom (Nom1 et Nom2), ce qui nous donne dans le code :
ActiveWorkbook.SaveAs "Synthèse Financière" & " " & Nom2 & " " & Nom1

- Ensuite, je copie les onglets du classeur initial vers le classeur crée


Voici ma problématique:

Ces onglets possèdent des macro en version userform et module. Le problème est que je n'arrive pas à copier ni le code d'un userform, ni celui d'un module vers le nouveau document.

Pour résumer, ma question est : Comment copier les macros des onglets sur un classeur nouvellement crée?

- Quand je lance la macro, un troisième classeur excel se crée en plus du classeur appelé "Synthèse Financière" & " " & Nom2 & " " & Nom1
- Ce troisième classeur contient bien contient bien ma macro du userfom. Je souhaiterais cependant que ce troisième classeur ne soit pas crée et que la macro soit directement copiée dans mon classeur "Synthèse Financière" & " " & Nom2 & " " & Nom1.


Voici la macro:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'activation du bouton valider'
Private Sub CommandButton_valider_Click()
 
'on cree et on renomme un nouveau classeur'
'création de l'objet excel'
Dim Nom1 As String
Dim Nom2 As String
 
Nom1 = TextBox_nom_de_la_societe
Nom2 = TextBox_nature_de_l_operation
 
 
 
'copie onglets'
Worksheets(Array(" Données initiales", " Liasse", "Contrôles liasses", "Retraitement", "Actif", "Passif", "Compte de résultat", "BFR", "Flux", "Ratios", "Synthèse")).Copy


'nomination du nouveau dossier'
ActiveWorkbook.SaveAs "Synthèse Financière" & " " & Nom2 & " " & Nom1

C'est ici que ca bug
'essai copie un userform'

Code :
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub CommandButton1_Click()
Workbooks("AFI essai macro V3.xlsm").VBProject.VBComponents("Userform1").Expo rt "frmtoto"
Sheets(1).Copy
ActiveWorkbook.VBProject.VBComponents.Import "frmtoto"
'fermer le userform'
Unload UserForm_creation_synthese
 
'message enregistrement nouveau dossier'
Call MsgBox("Veuillez enregistrer ce dossier nouvellement crée", , "Nouvelle synthèse créée")
 
 
End Sub
Je vous remercie
ch.devaux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 12h37   #2
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Bonjour,

Pourquoi tu ne base pas le tronc principal de ton nouveau classeur dur l'ouverture d'un modèle ?

cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 12h54   #3
Invité de passage
 
Homme
Étudiant
Inscription : octobre 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Conseil

Informations forums :
Inscription : octobre 2011
Messages : 4
Points : 0
Points : 0
Je souhaite que le nouveau document soit créé après entrée des données initiales par l'utilisateur, je passe donc par un userform, ce nest peut etre pas la solution optimale
ch.devaux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 13h18   #4
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Bonjour,

si ton action se résume à créer un nouveau classeur identique à un autre (avec macros etc..) mais dont le nom sera lui créé selon les données entrées dans un USF, à mon sens la bonne solution est de créer un modèle (en .xlt ou .xltm) et de se servir d'un USF pour enregistre le classeur généré par l'appel au modèle sous le nom voulu à l'endroit voulu

cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 14h04   #5
Invité de passage
 
Homme
Étudiant
Inscription : octobre 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Conseil

Informations forums :
Inscription : octobre 2011
Messages : 4
Points : 0
Points : 0
Je vous remercie pour votre réponse,
Je vais approfondir le sujet.

J'ai réenregistré mon document initial en .xtlm.
Lorsque que je crée mon nouveau document via le userform, la macro ne suit toujours pas.

Je vais approfondir le sujet.

Charles
ch.devaux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 16h38   #6
Invité de passage
 
Homme
Étudiant
Inscription : octobre 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Conseil

Informations forums :
Inscription : octobre 2011
Messages : 4
Points : 0
Points : 0
c'est bon j'ai trouvé

jai remplacer mon ajout par ce code est ca marche

Code :
1
2
3
Workbooks("AFI essai macro V4.xlsm").VBProject.VBComponents.Item("UserForm_ajouter_année").Export "essai"
 
ActiveWorkbook.VBProject.VBComponents.Import "essai"
ch.devaux est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h36.


 
 
 
 
Partenaires

Hébergement Web