Programme pour sélection fichier excel sur disque dur

Résolu/Fermé
Foudegc Messages postés 5 Date d'inscription vendredi 15 novembre 2013 Statut Membre Dernière intervention 14 avril 2014 - 15 nov. 2013 à 22:49
Foudegc Messages postés 5 Date d'inscription vendredi 15 novembre 2013 Statut Membre Dernière intervention 14 avril 2014 - 8 déc. 2013 à 13:36
Bonsoir à tous,

Je rencontre un problème en programmation sur VBA. J'aimerai créer un programme qui me permettrait de sélectionner un fichier au format excel (parmi d'autres) sur le disque dur à un emplacement précis. En cherchant sur internet, j'ai réussi à programmer quelque chose danse ce genre :

Private Sub Cbfile_Change()
Cbfile.Clear 'effacer checkbox file'
repertoire = "C:\Users\Pierre\Desktop\Project" 'dossier ou sont stockés les fichiers'
nf = Dir( (C:\Users\Pierre\Desktop\Project\*.xlsx) 'fonction dir pour selectionner fichier'
Do While nf <> " "
Cbfile.AddItem nf 'alimenter checkbox file'
nf = Dir(repertoire)
Loop

End Sub


Mais étant débutant, je n'ai pas réussi à bien paramétrer ce programme et il ne fonctionne tout simplement pas... Pouvez-vous m'aider? Merci d'avance !
A voir également:

6 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
16 nov. 2013 à 14:30
Bonjour,
Un classeur exemple qui te donneras des idées.
A+
0
Foudegc Messages postés 5 Date d'inscription vendredi 15 novembre 2013 Statut Membre Dernière intervention 14 avril 2014
17 nov. 2013 à 16:21
Merci ! Pour l'instant j'ai réussi à créer une listbox qui me permet d'afficher les fichiers excel contenus dans le dossier souhaité. Par contre, je suis bloqué pour la suite...

En effet, le but de mon projet informatique est d'élaborer un programme vba qui me permettra de réaliser les tâches suivantes :

1)- Sélection d'un classeur excel dans un dossier

2)- Stockage de diverses informations (rédacteur du document, date, etc...) du classeur sélectionné dans le classeur actuel (afin qu'il serve comme une base de données) tout en sachant que pour les fichiers pouvant être selectionné dans le dossier, les informations se trouveront toujours dans les mêmes cases d'un fichier à un autre (ex :rédacteur toujours dans la case B8, date de création toujours dans la case A5 etc...)

Comment à partir de cette listbox pouvons-nous donc sélectionner le classeur souhaité et aller y chercher les informations voullus pour réussir à les stocker dans notre fichier excel? (afin qu'il serve comme une base de données)

Voici le fichier réalisé :

https://docs.google.com/file/d/0B4v9wF_bSM76UVVQWVhlZF9mUnM/edit

En espérant avoir été clair dans la description du problème. Encore une fois, merci d'avance.
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
17 nov. 2013 à 17:05
Essaye ce code
Dim Repertoire As String, nf


Private Sub CommandButton1_Click()
Repertoire = "C:\Users\Pierre\Desktop\Project\" 'dossier ou sont stockés les fichiers'
nf = Dir(Repertoire & "*.xlsm") 'fonction dir pour selectionner fichier'
Do While nf <> ""
Cbfile.AddItem nf 'alimenter la ListBox
nf = Dir
Loop
Cbfile.ListIndex = 0 'afficher 1er classeur
End Sub

Private Sub CommandButton2_Click()
Dim Wkb As Workbook
Dim LigneVide As Long
Set Wkb = Workbooks.Open(Repertoire & Cbfile.List(Cbfile.ListIndex))
With ThisWorkbook.Sheets("Feuil1") 'adapter nom de la feuille
LigneVide = .Cells(Rows.Count, 2).End(xlUp).Row + 1 'adapter la colonne
.Cells(LigneVide, 1) = Wkb.Sheets("Feuil1").Range("B8")
.Cells(LigneVide, 2) = Wkb.Sheets("Feuil1").Range("A5")
'..... etc
End With
Wkb.Close
End Sub

Adapter les noms des feuilles bien entendu
0
Foudegc Messages postés 5 Date d'inscription vendredi 15 novembre 2013 Statut Membre Dernière intervention 14 avril 2014
17 nov. 2013 à 21:56
Bonsoir, merci c'est exactement ce que je cherchais à faire. :D Par contre lorsque je clique sur "OK" pour ouvrir le classeur selectionné, j'ai l'erreur suivante :

"Erreur d'execution '1004' :

Fichier introuvable. Vérifiez l'orthographe du nom du classeur et la validité de l'emplacement.

Si vous essayer d'ouvrir le fichier à partir de la liste des fichiers les plus récents, assurez vous que le fichier n'a pas été renommé, déplacé ou supprimé."

Alors que le fichier est bien présent, ni renommé, ni déplacé. Lorsque je clique sur débogage, la ligne de code suivante est surlignée :

Set Wkb = Workbooks.Open(Repertoire & Cbfile.List(Cbfile.ListIndex))

A quoi cela peut-il être du?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 18/11/2013 à 02:19
tu a recopié EXACTEMENT le code que j'ai montré ?
La déclaration de
Repertoire 
est déplacée en haut du module
J'ai ajouter le slach inverse dans le libellé du répertoire.
Probablement que tu n'a recopié que la deuxième partie.
Efface tout et remet TOUT mon code.
Sauf que pour tester je l'ai fais avec des fichiers *xlsm (j'ai pas de xlsx) rectifie donc le m par un x


Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
0
Foudegc Messages postés 5 Date d'inscription vendredi 15 novembre 2013 Statut Membre Dernière intervention 14 avril 2014
8 déc. 2013 à 13:36
Bonjour,

Désolé pour le temps de réponse, je n'ai pas vraiment pu me connecter ces derniers temps mais oui j'avais bien modifié le chemin d'accès pour celui-ci "C:\Users\Pierre\Desktop\Project" qui ne fonctionnait pas. Je viens de me rendre compte qu'il fonctionne, il manquait juste un \ : "C:\Users\Pierre\Desktop\Project\"

Encore merci! :) Je vais essayer d'avancer dans ce programme pour le finir au plus vite.
0