Macro Excel 2007 -> Import de données Excel

Bonjour à tous,

Je souhaiterais vous solliciter pour une petite aide sur une macro...qui me pose quelques problèmes.

En effet j'ai un document Excel (appelons l' Excel destination) dans lequel je souhaite créer un bouton (et donc une macro) pour importer les données provenant d'un second document Excel (appelons l' Excel source), par exemple en colonne A1 de la première feuille de mon Excel destination. Cependant je souhaite que l'utilisateur renseigne lui-même le chemin vers l' Excel source.

J'ai essayé de créer une macro avec l'enregistreur de macro proposant les actions suivantes:

1) aller dans l'onglet Données

2) sélectionner Connexions existantes (dans la partie Données externes)

3) Cliquer sur rechercher

...mais comme je suis déjà dans la fenêtre rechercher, je ne peux pas stopper l'enregistrement de ma macro à ce niveau

Est ce que quelqu'un aurait une solution?

Merci par avance pour votre attention!

Bonjour,

voici un code pour ouvrir un fichier via le filedialog

Sub macro()
set wbd=thisworkbook
Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .AllowMultiSelect = false
        If .Show = -1 Then
           classeursource = .SelectedItems(1)
           End If
        End With
        Set wbs = Workbooks.Open(classeursource)
End Sub

Merci beaucoup H2SO4!!!

Quelle rapidité, c'est vraiment super!

Le code fonctionne à merveille mais...et j'ai oublié de le signaler...je souhaiterais l'utiliser tout en conservant les onglets déjà créés dans mon document excel destination.

Existe t il une astuce permettant de jouer ce code mais sans effacer tous mes onglets préexistants?

Merci beaucoup!

re-bonjour,

la macro ne fait qu'ouvrir le classeur, sans fermer ceux qui seraient déjà ouverts.

ton classeur destination devrait être ouvert et ses onglets devraient être présents.

comme tu ne nous as pas dit ce qu'il fallait faire avec ce classeur une fois ouvert, j'en ai déduit que tu te chargerais de la suite des opérations...

Si tu veux de l'aide supplémentaire, précise ce que tu souhaites

situation de départ dans les 2 classeurs et situation cible dans les 2 classeurs et la description des étapes et conditions pour y arriver.

20docs-excel.7z (30.55 Ko)

Ok, tu as bien raison. Je vais être plus clair dans mes explications ^^

J'ai 2 fichiers excel :

  • un fichier source constitué d'un onglet, qui aura toujours la même forme
  • un fichier destination, dont le but est d'exploiter les données du premier onglet pour tracer des graphes sur le second onglet.

Je veux créer une macro ans le but suivant:

à termes le doc excel destination il y aura toujours 2 onglets, l'un comportant les données à exploiter et le second traçant des graphes.

Cependant les données sources évolueront, si bien que je veux mettre un bouton import sur mon premier onglet pour pouvoir rechercher mes nouvelles données sources et les coller à la place des existantes sur le premier onglet. Comme ça, avec la macro import et un petit click sur "actualiser tout"/"refresh all", mes graphes pourront être actualisés sans problème.

Je vous joins une archive pour visualiser le format de mes fichiers excel source et destination

Bonjour,

comme je ne parviens pas ouvrir ton fichier archive (qui semble être corrompu), j'ai adapté la macro sur base de ce que j'ai compris.

tu devras changer le nom de "feuille_source" et de "feuille_destination" dans le code ci-dessous, qui copie les cellules de feuille_source dans feuille_destination (en écrasant son contenu).

Sub macro()
set wsd=thisworkbook.worksheets("feuille_destination")
Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .AllowMultiSelect = false
        If .Show = -1 Then
           classeursource = .SelectedItems(1)
           End If
        End With
        Set wbs = Workbooks.Open(classeursource)
set wss=wbs.worksheets("feuille_source")
wss.cells.copy wsd.range("A1")
End Sub

H2so4 je suis bluffé!

C'est juste exactement ce que je recherchais !!!

Merci mille fois, vraiment c'est dingue.

Si je veux terminer par une petite question rapidos...il faut rajouter quelle ligne pour fermer le classeur source après avoir copié les données?

Bonsoir,

fermeture du classeur source ajoutéee.

Sub macro()
set wsd=thisworkbook.worksheets("feuille_destination")
Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .AllowMultiSelect = false
        If .Show = -1 Then
           classeursource = .SelectedItems(1)
           End If
        End With
        Set wbs = Workbooks.Open(classeursource)
set wss=wbs.worksheets("feuille_source")
wss.cells.copy wsd.range("A1")
wbs.close
End Sub

Merci merci merci, là c'est juste parfait!

Rechercher des sujets similaires à "macro 2007 import donnees"