VBA : bouton explorateur windows import fichier

[Fermé]
Signaler
Messages postés
1
Date d'inscription
jeudi 18 février 2016
Statut
Membre
Dernière intervention
18 février 2016
-
 excelvba -
Bonjour à toutes et à tous,

Je poste ce message sur le Forum car je dois créer une macro (un bouton dans un fichier Excel) qui permettrait 2 choses :
1. en cliquant sur le bouton de mon classeur 1 feuille Macro, de me rendre dans mon explorateur Windows
2. lorsque je suis dans mon explorateur windows, de séléctionner plusieurs fichiers afin d'importer la première ligne de chacun de ses fichiers (feuille "Export" à partir de la ligne 2 colonne A1:A24) afin de les importer dans mon fichier A feuille "Import".

Cette manipulation me permettrait d'éviter de nombreux copier coller fastidieux et donc de tout automatiser, cependant je n'y connais absolument rien en VBA...

Si vous pouviez m'aider ce serait vraiment super car la je bloque.

Passez une très bonne journée et merci à vous !

2 réponses

Messages postés
3529
Date d'inscription
jeudi 6 août 2009
Statut
Membre
Dernière intervention
24 juin 2021
1 960
Bonjour, pour la première partie, un morceau de code pour ouvrir un fichier.
Sub CommandButton4_Click() 'ou Sub selfichier () par exemple
Dim fichier As Variant
fichier = Application.GetOpenFilename("Fichiers Excel avec macro (*.xlsm), *.xlsm" & ",Fichiers Excel (*.xls),*.xls", , "Fichier pour la gestion de la " & LCase(Label5)) '& ", Fichiers Excel 2007 et 2010 (.xlsx),*.xlsx") 'définition de ma variable "fichier". La commande "GetOpenFilename" indique quels fichiers devront être visibles (par extensions, sous-entendu) et de préciser ensuite ces extensions comme dans mon exemple.
MsgBox "Fichier sélectionné : " & UBound(Split(fichier, "\")), , "Choisir un fichier" 'un message indique quel fichier est sélectionné
TextBox4.Value = fichier 'le nom du fichier s'affiche dans une textbox (zone de texte) si tu en as une
End Sub


Et une faq qui pourra t'aider
Bonjour tyranausor,

Merci pour cette réponse :) je vais poursuivre mes recherches pour trouver la suite de la Macro !

Par contre quand je lance cette Macro tout fonctionne jusqu'au moment ou je sélectionne le fichier dont j'ai besoin et la le message "Erreur d'exécution '424': Objet requis" s'affiche... Sais tu à quoi cela peut correspondre ?

Merci encore pour ton aide
Bon alors j'ai trouvé une solution à mon problème via ce code :

Sub recup_fiche()
On Error GoTo erreur
WKB_bdd = ActiveWorkbook.Name

filetoopen = Application.GetOpenFilename(filefilter:="fichier Excel, *.xlsx")

If filetoopen <> False Then

Workbooks.Open (filetoopen)
WKB_from = ActiveWorkbook.Name

Workbooks(WKB_bdd).Activate

rep = MsgBox("Charger la fiche d'évaluation de : " & Workbooks(WKB_from).Sheets("Export").[E2] & vbLf & "daté du : " & Workbooks(WKB_from).Sheets("Export").[D2], vbYesNo)
If rep = vbYes Then
ligne_to = Workbooks(WKB_bdd).Sheets("Import").[A65000].End(xlUp).Row + 1
Workbooks(WKB_bdd).Sheets("Import").Cells(ligne_to, 1) = Workbooks(WKB_bdd).Sheets("Import").[A2].End(xlDown) + 1

For i = 1 To 24 ' chaque colonne de la fiche
Val0 = Workbooks(WKB_from).Sheets("Export").Cells(2, i).Value
Workbooks(WKB_bdd).Sheets("Import").Cells(ligne_to, i) = Val0
Next i
End If

Workbooks(WKB_from).Close (False)

End If
End

erreur:
a = MsgBox("Erreur en chargeant une fiche !", vbCritical)

End Sub

Il me permet de me rendre dans l'explorateur Windows et de sélectionner un fichier afin d'en importer la ligne 2 colonne A1 à A24 de l'onglet Export. Cependant j'aimerais pouvoir en sélectionner plusieurs d'un coup (je peux avoir 50 documents différents donc le faire un à un ça va etre un peu long...). De plus, en testant le code, j'ai remarqué qu'au bout du 3ème fichier ca ne marche plus, je ne peux qu'en importer 2...

Quelqu'un à déja rencontré ce problème ?

Merci pour votre aide
Messages postés
7544
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
26 septembre 2021
659
Bonjour,

Voir ce lien, j'ai fait ce programme pour copier une feuille de chaque classeur en créant un onglet au nom du classeur à chaque fois.
Ce programme peut être modifié.
Il faut que tous les classeurs soient dans le même dossier

https://forums.commentcamarche.net/forum/affich-33160443-macro-pour-copier-des-onglets