Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA copier/coller des feuilles vers d'autres classeurs

DuckDaffy

XLDnaute Nouveau
Bonjour à tous,

Je rencontre un soucis avec mon code VBA et j'ai besoin de vos lumières
Je souhaite, à l'aide d'un commandbutton qui est dans le classeur A ouvrir plusieurs fichiers excel (se trouvant dans le dossier "Test"), copier la feuille nommé "Form TT" (présente dans tous les fichiers excel du dossier "Test") et les coller dans le classeur "Recensement formation".
Classeur A et le fichier Recensement formation sont dans le même dossier

Voici le code que j'ai :

Private Sub CommandButton2_Click()

Dim wkbSource As Workbook
Dim wkbDest As Workbook
Dim shtToCopy As Worksheet
Dim myPath As String, myfile As String


Set wkbDest = Workbooks.Open("S:\Situations\Budget 2016\Construction\Recensement formation.xlsm")

myfile = "Recensement formation.xlsm"


ChDir "S:\Situations\Budget 2016\Construction\test"
monfichier = Dir("*.*")
While monfichier <> ""
Workbooks.Open monfichier
monfichier = Dir()
Workbooks.Open ("S:\Situations\Budget 2016\Construction\Recensement formation.xlsm")
myfile = Dir()


Workbooks(monfichier).Sheets("Form TT").Copy _
after:=Workbooks(myfile).Sheets("Feuil2") 'Copie-colle le fichier

Workbooks(monfichier).Close


Wend

End Sub

J'ai comme erreur : l'indice n'appartient pas à la selection à ce niveau :

Workbooks(monfichier).Sheets("Form TT").Copy _
after:=Workbooks(myfile).Sheets("Feuil2") 'Copie-colle le fichier

Quand je laisse mon curseur sur "myfile" il m'indique myfile = ""... je suppose que le problème est ici..

Pouvez-vous m'aider, je m'arrache les cheveux dessus

Merci
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : VBA copier/coller des feuilles vers d'autres classeurs

Bonjour,

essaye peut être comme suit :
Code:
Private Sub CommandButton2_Click()
 Dim wkbSource As Workbook
 Dim wkbDest As Workbook
 Dim shtToCopy As Worksheet
 Dim myPath As String, monfichier As String
Set wkbDest = Workbooks.Open("S:\Situations\Budget 2016\Construction\Recensement formation.xlsm")
ChDir "S:\Situations\Budget 2016\Construction\test"
 monfichier = Dir("*.*")
 While monfichier <> ""
    Workbooks.Open monfichier
    Workbooks(monfichier).Sheets("Form TT").Copy after:=wkbDest.Sheets("Feuil2")
    Workbooks(monfichier).Close
    monfichier = Dir
Wend
End Sub

bon après midi
@+
 

DuckDaffy

XLDnaute Nouveau
Re : VBA copier/coller des feuilles vers d'autres classeurs

Merci pour ton retour Pierrot93,

J'ai mis à jour le code mais une erreur m'apparait : Excel ne peut pas accéder à 'Budget 2016'. Le document est peut être en lecture seule ou chiffré.

Erreur à ce niveau :
Workbooks.Open monfichier

En laissant le curseur sur "monfichier", il m'affiche : monfichier = "Budget 2016 - Raccourci.Ink"

Le dossier Budget 2016 n'a pas bougé de place, et aucun autre fichier n'est ouvert au moment de lancer la macro...
As-tu une idée ?

Merci d'avance
 

DuckDaffy

XLDnaute Nouveau
Re : VBA copier/coller des feuilles vers d'autres classeurs

Incroyable, je viens de relancer la macro, plus de soucis avec de .Ink...dont je ne connaissais absolument pas l'existence.

Ca marche très bien, merci beaucoup Pierrot !
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…