Copie de Feuille

Copie de Feuille - VB/VBA/VBS - Programmation

Marsh Posté le 02-05-2006 à 10:26:14    

Bonjour,
Je suis entrain de développer une petite appli sous vba excel (langage imposé).
Je cherche à faire très simplement une copie d'une feuille soit d'un classeur vers un autre soit dans le même classeur mais je n'y arrive pas...
J'ai recherché dans le forum et sur le net malheureusement les méthodes que j'ai trouvé ne fonctionnent pas...
Voila ce que j'essaye de faire marcher pour copier une feuille dans le même classeur :
 
Sheets("Outil 1" ).Copy , Sheets("Menu Principal" )
 
Et cela me renvoie :
 
Erreur d'exécution '1004' :
La méthode Copy de la classe Worksheet a échoué
 
La feuille "Outil 1 à pour CodeName : outil_1 et la feuille "Menu Principal" : menu_ppal
Par la suite la feuille outil_1 copiée aura un nom et un CodeName totalement différents. Je me sert juste de ces feuilles comme modèles pour les remplir ensuite avec une base de données.
 
Si vous pouviez m'aider ce serait vraiment sympa!
 
Bon Dev'!

Reply

Marsh Posté le 02-05-2006 à 10:26:14   

Reply

Marsh Posté le 02-05-2006 à 13:20:47    

Akhesa a écrit :

Bonjour,
Je suis entrain de développer une petite appli sous vba excel (langage imposé).
Je cherche à faire très simplement une copie d'une feuille soit d'un classeur vers un autre soit dans le même classeur mais je n'y arrive pas...
J'ai recherché dans le forum et sur le net malheureusement les méthodes que j'ai trouvé ne fonctionnent pas...
Voila ce que j'essaye de faire marcher pour copier une feuille dans le même classeur :
 
Sheets("Outil 1" ).Copy , Sheets("Menu Principal" )
 
Et cela me renvoie :
 
Erreur d'exécution '1004' :
La méthode Copy de la classe Worksheet a échoué
 
La feuille "Outil 1 à pour CodeName : outil_1 et la feuille "Menu Principal" : menu_ppal
Par la suite la feuille outil_1 copiée aura un nom et un CodeName totalement différents. Je me sert juste de ces feuilles comme modèles pour les remplir ensuite avec une base de données.
 
Si vous pouviez m'aider ce serait vraiment sympa!
 
Bon Dev'!


 
Le plus simple pour ce genre de manip, c'est d'utiliser l'enregistreur de macro et de voir ce que lui fait. Si tu utilises cette fonction, le code généré est du style :
 
    Sheets("Outil 1" ).Select
    Sheets("Outil 1" ).Copy

Reply

Marsh Posté le 02-05-2006 à 13:26:51    

ça marche merci, toutefois c'est surprenant qu'il n'y ai pas moyen de copier une page sans la sélectionner... (en bref il y a donc un flash à l'écran...)
Merci toutefois pour la réponse!!!
*+@+*
Bon Dev'

Reply

Marsh Posté le 02-05-2006 à 15:03:44    

Bonjour Akhesa
Bonjour à tous
 
Pour ne pas avoir de "flash" visible à l'écran, écris ceci dans les premières lignes sinon la première dans la macro :
 
Application.ScreenUpdating=False
 
Et tout est caché,et beaucoup plus rapide
 
Cordialement

Reply

Marsh Posté le 02-05-2006 à 15:56:57    

Merci beaucoup!
C'est vrai que ça accélère grandement les traitements!
A bientôt!
Bon Dev'

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed