Copier feuille d'un classeur à un autre
Plum
-
Plum -
Plum -
Hello hello,
Donc depuis ce matin je cherche simplement à copier coller la première feuille, d'un classeur que je viens d'ouvrir, vers une feuille précise de mon classeur de départ. (Je précise, je débute en VBA)
Malgré pas mal de recherche sur internet, j'ai toujours la même erreur que je n'arrive pas à comprendre.
Donc voilà le vilain code qui veut pas coopérer :
Je suis donc à la recherche d'une âme charitable qui pourrait m'expliquer ce qui ne va pas.
Merci beaucoup d'avance pour votre aide :)
Donc depuis ce matin je cherche simplement à copier coller la première feuille, d'un classeur que je viens d'ouvrir, vers une feuille précise de mon classeur de départ. (Je précise, je débute en VBA)
Malgré pas mal de recherche sur internet, j'ai toujours la même erreur que je n'arrive pas à comprendre.
Donc voilà le vilain code qui veut pas coopérer :
Sub RecupDonnees()
Dim FichierContact As Variant
MsgBox "Sélectionner le fichier contact"
FichierContact = Application.GetOpenFilename("Tous les fichiers (*.*),*.*")
If FichierContact = False Then Exit Sub
ThisWorkbook.Worksheets("CONTACT").Cells.ClearContents
'Efface le contenu des feuilles qui vont recevoir les données
Set Contact = Application.Workbooks.Open(Filename = FichierContact)
'A partir de là ça veut plus :(
'A priori c'est la ligne là qui pose problème
Contact.Worksheets("Feuil1").Cells.Copy
ThisWorkbook.Worksheets("CONTACT").Range ("A1")
FichierContact.Close False
End Sub
Je suis donc à la recherche d'une âme charitable qui pourrait m'expliquer ce qui ne va pas.
Merci beaucoup d'avance pour votre aide :)
A voir également:
- Copier feuille d'un classeur à un autre
- Copier un disque dur sur un autre - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Comment copier une vidéo youtube - Guide
- Retrouver un copier-coller android - Guide
- Super copier - Télécharger - Gestion de fichiers
1 réponse
Bonjour Plum, bonjour le forum,
Essaie comme ça :
Essaie comme ça :
Sub RecupDonnees()
Dim CC As Workbook 'déclare la variable CC (Classeur Cible)
Dim FichierContact As Variant
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Set CC = ThisWorkbook 'définit le classeur cible CC
MsgBox "Sélectionner le fichier contact"
FichierContact = Application.GetOpenFilename("Tous les fichiers (*.*),*.*")
If FichierContact = False Then Exit Sub
Set CS = ActiveWorkbook 'définit le classeur source
CC.Worksheets("CONTACT").Cells.ClearContents
CS.Worksheets("Feuil1").Cells.Copy CC.Worksheets("CONTACT").Range("A1")
CS.Close False
End Sub
Du coup le problème de mon code c'est que je n'ai pas clairement identifié mes classeurs en fait ?
Maintenant quand je relance, j'ai droit à une "erreur d'exécution "9" : L'indice n'appartient pas à la sélection" xD
Et plus précisément, l'erreur se met sur la ligne :
CS.Worksheets("Feuil1").Cells.Copy CC.Worksheets("CONTACT").Range("A1")J'ai fini par trouver une solution, du coup je la poste au cas où ça pourrait servir à quelqu'un.
Dans tous les cas, merci beaucoup pour ton aide :D
Sub RecupDonneesContact() Dim CC As Workbook '= Classeur Cible Dim CS As Workbook '= Classeur Source Set CC = ThisWorkbook 'définit le classeur cible CC Reponse = MsgBox("Sélectionner le fichier contact à traiter", vbOKCancel) If Reponse = vbOK Then FichierContact = Application.GetOpenFilename("Tous les fichiers (*.*),*.*") If FichierContact = False Then Exit Sub Workbooks.Open (FichierContact) 'Ouvre le fichier choisi par l'utilisateur Else Exit Sub End If Set CS = ActiveWorkbook 'définit le classeur source CS comme FichierContact '-- Copie de la feuille du fichier contact CC.Worksheets("CONTACT").Cells.ClearContents 'vide la feuille CONTACT CS.Worksheets(1).Cells.Copy CC.Worksheets("CONTACT").Range("A1") 'Copie le contenu de la feuille 1 du fichier choisi dans le classeur de base CS.Close False 'Ferme le fichier ouvert End Sub