Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1543 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Macro pour créer un classeur contenant une macro

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] Macro pour créer un classeur contenant une macro

n°1462290
titeuf2209​66
Posté le 22-10-2006 à 01:26:37  profilanswer
 

Bonjour,
 
Je souhaiterais, à partir d'une feuille A, créer un nouveau classeur B, contenant une macro "BDC" de la feuille A...
 
Est-ce clair et possible ?
 
Merci par avance pour votre aide...je ne suis pas un spécialiste de VBA
 
A+
 
Olivier M


Message édité par titeuf220966 le 22-10-2006 à 13:58:10
mood
Publicité
Posté le 22-10-2006 à 01:26:37  profilanswer
 

n°1462317
galopin01
Posté le 22-10-2006 à 09:49:52  profilanswer
 

Bonjour,
Clic droit sur l'onglet :
Déplacer ou Copier + Cocher  Créer une copie
 
A+

n°1462324
titeuf2209​66
Posté le 22-10-2006 à 10:07:49  profilanswer
 

Merci pour ta réponse, mais ma question était incomplète.... ;-)
 
Je souhaiterais, à partir d'une macro de la feuille A, créer une nouvelle feuille B, contenant une macro "BDC" de la feuille A...  
 
 
Merci par avance

n°1462329
galopin01
Posté le 22-10-2006 à 10:26:24  profilanswer
 

Bonjour,
Nombreuses réponses possible selon l'endroit ou tu veux mettre ta copie, (en premier, en dernier, après ou avant la feuille A...)
Utilise l'enregisteur de macro !
 
Une possibilité :

Code :
  1. Sub Test()
  2. Sheets("A" ).Copy Before:=Sheets(1)
  3. ActiveSheet.Name = "B"
  4. End Sub


A+

n°1462331
titeuf2209​66
Posté le 22-10-2006 à 10:37:31  profilanswer
 

Ca avance.. ;).. Merci...
 
Je me suis vraiment mal exprimé dans ma demande...  ;)  
 
SI je souhaite déplacer la feuille A dans un nouveau classeur et en récupérant un module macro qui s'appelle BDC...
 
C'est la seule étape qui me manque pour boucler mon boulot.... ;)  
 
Merci par avance

n°1462348
seniorpapo​u
Posté le 22-10-2006 à 11:04:21  profilanswer
 

Bonjour,
http://forum.hardware.fr/hardwaref [...] 7257-1.htm
j'ai cru voir un rapport avec ton problème.
me trompe-je?
Cordialement

n°1462356
titeuf2209​66
Posté le 22-10-2006 à 11:14:06  profilanswer
 


 
Bonjour,
Non tu ne te trompes pas, mais j'ai des problèmes pour mettre cette macro en service...
J'ai une erreur avec cette ligne
 
With ThisWorkbook.VBProject.VBComponents("Module2" ).CodeModule
 
dans le module suivant :
 
Dim NewM As Object, NewCode As String
' Stockage du code du module "exporter" du classeur maitre
With ThisWorkbook.VBProject.VBComponents("Module2" ).CodeModule
NewCode = .Lines(1, .CountOfLines)
End With
 
Merci par avance pour votre coup de main.... ;)

n°1462408
seniorpapo​u
Posté le 22-10-2006 à 13:37:39  profilanswer
 

Bonjour,
 
rien à voir avec ton PB mais
l'instruction
Newcode = .Lines(1, .CountOfLines)
est considèrée comme Virus potentiel par Antivirus ORANGE et je ne peux pas sauvegarder le.xls de test. Je vais voir si quelqu'un a une solution.
 pour ton PB j'ai testé le module et il fonctionne, il serait bon que tu mettes ici l'ensemble de ta séquence si c'est possible.
Cordialement.
 
Je vais voir comment contourner l'excès de sécurité de mon antivirus.
 
 

n°1462413
titeuf2209​66
Posté le 22-10-2006 à 13:51:00  profilanswer
 

seniorpapou a écrit :

Bonjour,
 
rien à voir avec ton PB mais
l'instruction
Newcode = .Lines(1, .CountOfLines)
est considèrée comme Virus potentiel par Antivirus ORANGE et je ne peux pas sauvegarder le.xls de test. Je vais voir si quelqu'un a une solution.
 pour ton PB j'ai testé le module et il fonctionne, il serait bon que tu mettes ici l'ensemble de ta séquence si c'est possible.
Cordialement.
 
Je vais voir comment contourner l'excès de sécurité de mon antivirus.


 
Dans un classeur, j'ai plusieurs feuilles dont une qui s'appelle Maquette_Transfert
Pour créer un nouveau classeur, j'utilise ce code... qui répond à mon attente.
 
Sheets("Maquette_Transfert" ).select
Sheets("Maquette_Transfert" ).copy
 
Dans le classeur initial, j'ai un module de macro qui s'appelle Module2 et que j'aimerais bien transférer dans le nouveau classeur.
 
Un grand merci pour le temps que tu passes sur mon problême... ;)

n°1462448
seniorpapo​u
Posté le 22-10-2006 à 14:53:35  profilanswer
 

RE bonjour,
est-ce que ceci fonctionne? en remplaçant les noms des sheets et du module
 
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 22/10/2006 par PAPOU
'
 
Dim NewM As Object, NewCode As String
' Stockage du code du module "exporter" du classeur maitre
With ThisWorkbook.VBProject.VBComponents("module1" ).CodeModule
NewCode = .Lines(1, .CountOfLines)
End With
 
    Sheets("maq" ).Select
    Sheets("maq" ).Copy
     
' Ajout d'un module au CLASSEUR ACTIF
Set NewM = ActiveWorkbook.VBProject.VBComponents.Add(1)
With ActiveWorkbook.VBProject.VBComponents(NewM.Name).CodeModule
' Le DeleteLines sert à éviter éviter d'avoir 2 fois Option Explicit
' si la déclaration explicite est cochée dans les préférences
'sans effet si l'option n'est pas cochée
.DeleteLines 1, .CountOfLines
.AddFromString NewCode
End With
 
     
End Sub
 
 
Cordialement

mood
Publicité
Posté le 22-10-2006 à 14:53:35  profilanswer
 

n°1462457
titeuf2209​66
Posté le 22-10-2006 à 15:14:20  profilanswer
 

seniorpapou a écrit :


With ThisWorkbook.VBProject.VBComponents("module1" ).CodeModule


 
 
J'ai remplacé "module1" par "Commande" le nom de mon module.  
Il me met la ligne en jaune avec comme message "Erreur 1004 - L'accès par programme au projet VB n'est pas fiable"
 
Du coup, je n'ai pas pu tester les lignes suivantes.
Pas de soucis, le module est bien nommé de la sorte et est bien présent dans le fichier.
 
Qu'en penses-tu ?  
 
Merci par avance...


Message édité par titeuf220966 le 22-10-2006 à 15:15:17
n°1462461
seniorpapo​u
Posté le 22-10-2006 à 15:34:29  profilanswer
 

Dans excel:
outils->macro->sécurité  onglet sources fiables  cocher les deux cases
Cordialement

n°1462474
titeuf2209​66
Posté le 22-10-2006 à 16:08:58  profilanswer
 

seniorpapou a écrit :

Dans excel:
outils->macro->sécurité  onglet sources fiables  cocher les deux cases
Cordialement


 
YYEEESSSSSSSSS ! ! ! ! !  !!  Ca marche....
Un grand merci pour ta colaboration et ta patience....
 
Encore un petit point... ce fichier va être amené à être mis en place de façon autonome par des utilisateurs.
Peut-on modifier par une macro cette sécurité ?
 J'ai tenté en automatique, çà n'a pas l'air de fonctionner....
Enfin s'il n'y a que çà, ce ne sera pas bien grave...une petite notice et le tour sera joué...
 
Merci encore, et vraiment très sympa de ta part, d'avoir passer du temps sur mon cas... ;)  
A+
Olivier


Message édité par titeuf220966 le 22-10-2006 à 16:10:05
n°1462478
seniorpapo​u
Posté le 22-10-2006 à 16:37:45  profilanswer
 

Jamais vu pour ma part.
Bonne soirée Olivier

n°1462518
titeuf2209​66
Posté le 22-10-2006 à 18:22:52  profilanswer
 

seniorpapou a écrit :

Jamais vu pour ma part.
Bonne soirée Olivier


 
Pas grave, c'est un détail...  ;)  
 
Bonne soirée et merci.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Macro pour créer un classeur contenant une macro

 

Sujets relatifs
[HTML]Créer un template[EXCEL + VBA ] Mise en forme conditionnelle
[VBA]Utiliser une lettre dans une boucle For[VBA] utiliser la valeur affichée d'une cellule
ca veut rien dire (req VBA)[Excel/VBA] Manipulation de tableaux à 2 dimensions
Question toute simple sur les arrays en VBA / ExcelTrapper un msg d'erreur dans VBA
[resolu] Créer base de données sur hebergement.comCopie automatique d'une macro prééxistante à la création d'un fichier
Plus de sujets relatifs à : [VBA] Macro pour créer un classeur contenant une macro


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR