Recopie d'un classeur A vers un classeur B

  • Initiateur de la discussion Initiateur de la discussion AlainGrenoble
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

AlainGrenoble

Guest
Bonjour à tous ,

Je souhaiterai programmer en VBA pour excel le code suivant mais je n'y arrive pas.

Je suis sur un classeur A qui contient 12 feuilles (une par mois), j'affiche une boite de dialogue qui demande de saisir le nom d'un fichier , par exemple B.
A partir de ce nom je teste l'existance du fichier dans un repertoire donnée , s'il n'existe pas , je le crée. Jusque la pas de problème , cela deviens plus difficile lorsque je veux executer la sequense suivante :

Pour chacune des 12 feuilles présente dans le classeur A je souhaite
recopier les cellules("A3😛5") du classeur A vers le classeur B en concervant la mise en page de la feuille initiale. Ce qui devrait me céer 12 nouvelles feuilles formatées sur le classeur B.

Si quelqu'un peut m'aider , merci..
 
Re : Recopie d'un classeur A vers un classeur B

Bonjour Alain, bonjour le forum.

Voici un petit bout de code fait grâce à l'enregistreur de macro...

Code:
Sub test()
'
'
'

'
Application.ScreenUpdating = False

    'On copie le contenu de la feuille1 du classeur1
    Sheets("Feuil1").Select
    Range("A3:P5").Select
    Selection.Copy
    Windows("Classeur2.xls").Activate
    'On colle le tout sur la feuille 1
    Sheets("Feuil1").Select
    Range("A3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
        
    ' Opération à répéter...
    'On retourne sur le classeur 1
    Windows("Classeur1.xls").Activate
    Sheets("Feuil2").Select
    Range("A3:P5").Select
    Selection.Copy
    Windows("Classeur2.xls").Activate
    'On colle le tout sur la feuille 2...ou feuille 3, 4 .....12
    Sheets("Feuil2").Select
    Range("A3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    'fin de l'opération
    
    Range("A3").Select
    
Application.ScreenUpdating = True

End Sub

Dis nous ci cela te conviens.

++
 
Re : Recopie d'un classeur A vers un classeur B

Bonjour AlainGrenoble, Thomlau 🙂,
Une autre solution :
Code:
Sheets("Feuil2").Copy Before:=Workbooks("Test2.xls").Sheets(4)
Où Feuil2 est la feuille de ton classeur actif à copier et Test2.xls le classeur receveur, 4 la position de la feuille que tu copies.
Ce que tu peux résumer en boucle sur 12 mois avec un For I = 1 to 12 ... Next I
Ensuite, comme tu sembles souhaiter ne conserver que les cellules A3 à P5, il te suffit d'utiliser un .clear pour les lignes 1 et 2, 6 et ultérieures, ainsi que les colonnnes Q et ultérieures.
Bon WE 😎
 
Re : Recopie d'un classeur A vers un classeur B

Merci d'avoir repondu à ma demande , je vais essayer . J'avais trouvé sur le forum le code suivant
With Application
.DisplayAlerts = False
ActiveWorkbook.Worksheets(Array("Janvier", "Fevrier", "Mars")).Copy
ActiveWorkbook.SaveCopyAs NOMFICH
ActiveWorkbook.Close False
.DisplayAlerts = True
End With
Il me permet de recopier des feuilles entières mais pas des parties de feuilles.
Je vais essayer votre code , en vous remerciant encore.
 
Re : Recopie d'un classeur A vers un classeur B

Une petite question , Je suis sur le classeur1 , feuille1 , je viens de créer le classeur2 par

Fichier = Dir(NOMFICH)
If Fichier = "" Then
Workbooks.Add
ActiveWorkbook.SaveAs NOMFICH
Else
MsgBox "Le Fichier " & NOMFICH & " Existe deja !!!"
GoTo Fin
End If

Faut-il que je jouvre et réactive classeur1 , feuille 1 et classeur2 avant d'executer votre code test . Merci.
 
Re : Recopie d'un classeur A vers un classeur B

Re 🙂,
Logiquement, que ce soit avec mon code ou celui de Thomlau, comme il n'y a pas de méthode Fichier.Open, il faut forcément que les fichiers soient ouverts. Dans les 2 cas, la procédure est dans le 1er classeur, et c'est lui qui doit être activé.
Bon WE 😎
 
Re : Recopie d'un classeur A vers un classeur B

J'ai essayé ce code en rajoutant l'expression suivante

Windows("Classeur1.xls").Activate
pour activer le classeur 1
, mais j'ai une erreur d'exécution avec le message suivant L'indice n'appartient pas à la selection .
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

T
  • Résolu(e)
Microsoft 365 pb effacement macro
Réponses
8
Affichages
795
Themax
T
Retour