Importer données Excel vers autre fichier Excel

actaris51

XLDnaute Occasionnel
Bonjour,
Je souhaiterai savoir si il était possible, par une macro d'importer automatiquement des données dans un fichier Excel depuis un autre fichier Excel.
Par exemple,
J'ai un fichier "source.xls" contenant différentes colonnes avec des données.
J'aimerai importer toutes ces colonnes dans l'onglet "database" de mon fichier "destinataire.xls"
Est-ce possible ?
Merci
 

mromain

XLDnaute Barbatruc
Re : Importer données Excel vers autre fichier Excel

bonjour actaris51,

voici un essai (à adapter) :
Code:
Sub test()
Dim classeurSource As Workbook, classeurDestination As Workbook

'ouvrir le classeur source (en lecture seule)
Set classeurSource = Application.Workbooks.Open("C:\source.xls", , True)
'définir le classeur destination
Set classeurDestination = ThisWorkbook

'copier les données de la "Feuil1" du classeur source vers la "Feuil1" du classeur destination
classeurSource.Sheets("Feuil1").Cells.Copy classeurDestination.Sheets("Feuil1").Range("A1")

'fermer le classeur source
classeurSource.Close False

End Sub

a+
 

actaris51

XLDnaute Occasionnel
Re : Importer données Excel vers autre fichier Excel

Ca n'a pas l'air de marcher.
L'ouverture du fichier source marche bien, seulement lors de la phase de copie, le message d'erreur suivant apparait :
L'indice n'appartient pas a la séléction.
Tu as une idée d'où vient le probleme ?
Merci
Je t'ai mis les fichiers en piece jointe
 

Pièces jointes

  • source.xls
    23 KB · Affichages: 2 208
  • destination.xls
    21 KB · Affichages: 1 851
  • source.xls
    23 KB · Affichages: 2 468
  • destination.xls
    21 KB · Affichages: 2 150
  • source.xls
    23 KB · Affichages: 2 504
  • destination.xls
    21 KB · Affichages: 2 207

mromain

XLDnaute Barbatruc
Re : Importer données Excel vers autre fichier Excel

re bonjour,

as-tu vérifié le nom des feuilles dans la ligne
Code:
classeurSource.Sheets("[B]Feuil1[/B]").Cells.Copy classeurDestination.Sheets("[B]Feuil1[/B]").Range("A1")

a+
 

actaris51

XLDnaute Occasionnel
Re : Importer données Excel vers autre fichier Excel

Exact c'était bien ca...
Merci en tout cas
Sinon j'ai une autre question, est il possible, quand on lance la macro, qu'une fenetre apparaisse où on puisse choisir manuellement le fichier source (comme si on cliquait sur ouvrir un fichier en fait) ?
Merci
 

Etienne2323

XLDnaute Impliqué
Re : Importer données Excel vers autre fichier Excel

Salut actaris51,
tu peux toujours essayer quelque chose comme ceci :

Code:
Sub test()

Dim Fichier_Travail as String

If Not Application.Dialogs(xlDialogOpen).Show Then Exit Sub 'On ouvre la fenêtre Windows pour choisir le fichier

Fichier_Travail  = ActiveWorkbook.Name 'Met dans une variable le nom du fichier

End Sub

ou encore un exemple ici avec un petit msgbox qui dit si tu as bien choisi un fichier ou pas.

Tu dois ajouter ceci dans le haut de ton module :
Code:
Const CHEMIN= "C:\Documents and Settings\Ton dossier\" 'Le path pour l'ouverture des fichiers Excel

Pour le code suivant :

Code:
Sub test2()

Dim Fichier_Travail As String, Fichier As String
Dim Msg, Style, Title, Help, Ctxt, Response, MyString

ChDrive CHEMIN
ChDir CHEMIN
    
'Set une variable qui va contenir le nom et le chemin du fichier à ouvrir.
Fichier = Application.GetOpenFilename(", *xlWindows", 0, "Sélectionner le ficher de rendements souhaité") 'On ouvre la fenêtre et conserve le nom du fichier choisi dans une variable
    
'Test si un fichier a été sélectionné
If Fichier = "Faux" Then
    Msg = "Aucun fichier sélectionné. SVP, veuillez recommencer !"    ' Définit le message.
    Style = vbOKOnly    ' Définit les boutons.
    Title = "Abandon de la procédure !"    ' Définit le titre.
    ' Affiche le message.
    Response = MsgBox(Msg, Style, Title)
    Exit Sub 'Sort de la macro puisqu'aucun fichier n'a été sélectionné
Else 'Sinon, on ouvre le fichier sélectionné
      Workbooks.OpenText Filename:=Fichier
    Fichier_Travail = ActiveWorkbook.Name 'On donne à une variable le nom de ce fichier qu'on vient d'ouvrir.
End If

End Sub

Tu n'as qu'à adapter mes noms de variable à celles de mromain pour faire fonctionner le tout.

En espérant que ça puisse te donner un coup de main. Bonne fin de journée !

Cordialement,

Étienne
 
Dernière édition:

guigui76

XLDnaute Occasionnel
Re : Importer données Excel vers autre fichier Excel

Bonsoir,
Excusez-moi de vous déranger mais avez vous reussi cette macro?
Je n'arrive pas à l'adapter.
Si vous avez la possibilité de m'envoyer le fichier.

Je vous remercie.
Cordialement
 

link93

XLDnaute Occasionnel
Re : Importer données Excel vers autre fichier Excel

Bonjour,

Je serai prenneur aussi si quelqu'un pouvais les joindrent.

J'ai essayé le premier code mais on m'affiche l'erreur 400 ?

Merci d'avance
 
Dernière édition:

calimero75

XLDnaute Nouveau
Re : Importer données Excel vers autre fichier Excel

Bonjour a tous,

Merci pour ces astuces :)
Le 1er code m'intéresse mais j'aimerai savoir comment cibler uniquement certaine cellules de mon classeur source et ne pas copier les reste comment modifier cette fonction :

classeurSource.Sheets("Feuil1").Cells.Copy classeurDestination.Sheets("Feuil1").Range("A1")

J’ai testé plein de truc comme : classeurSource.Sheets("1'!$E$5").Cells.Copy classeurDestination.Sheets("1").Range("E5") mais j’ai l’erreur (l’indice n’appartient pas à la selection)

Quelqu'un peut-il m'aider ?
 

calimero75

XLDnaute Nouveau
Re : Importer données Excel vers autre fichier Excel

Non en faite j'ai trouvé, pour ceux que sa intéresse, suffit de rajouter "Range("cellule")"

ex : classeurSource.Sheets("Feuil1").range("ta cellule ou ton groupe").Cells.Copy classeurDestination.Sheets("Feuil1").Range("ta cellule ou ton groupe")


:D
 

kakemphaton

XLDnaute Junior
Re : Importer données Excel vers autre fichier Excel

Bonjour,

Je viens de réutiliser cette macro, elle marche très bien, sauf que, lorsque je l'applique, Excel me remplace le contenu de ma feuille de destination, au lieu de mettre les données à la suite.

Code:
Sub Macro1()
    Dim a As Variant, Nom As String

    Nom = ActiveWorkbook.Name
    ChDrive "C:"    ' Choix du lecteur
    ChDir "C:\"    'Choix du répertoire
    a = Application.GetOpenFilename("fichier excel (*.xlsx), *.xlsx", _
                                    , "Sélection de vos fichiers excel", , True)

    Select Case TypeName(a)
    Case Is = "Boolean"
        Exit Sub
    Case Else
        For b = LBound(a) To UBound(a)
            Workbooks.Open a(b)
        Next
    End Select

    Nom2 = ActiveWorkbook.Name
    Cells.Select
    Selection.Copy
    Windows(Nom).Activate
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                                                                    :=False, Transpose:=False
    Application.DisplayAlerts = False
    Windows(Nom2).Close
    Application.DisplayAlerts = True

End Sub

J'avoue que je ne sais pas comment faire pour que les données s'ajoutent les unes à la suite et non remplacées

Merci !
 

julielef

XLDnaute Nouveau
Re : Importer données Excel vers autre fichier Excel

bonjour à tous,
Merci pour ta macro mromain c exactement ce que je recherche!!
Je l'ai utiliser pour la même chose que actaris51, mais je rencontre un problème.
Lorsque je la lance elle bloque à
classeurDestination.Sheets("Feuil1").Range("A1")

c'est une erreure qui me dit :erreure d'execution 438
propiété ou méthode non géré par cet objet.
saurais tu ce que cela veut dire??
merci
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 846
dernier inscrit
Silhabib