Programme pour sélection fichier excel sur disque dur

Résolu
Foudegc Messages postés 5 Statut Membre -  
Foudegc Messages postés 5 Statut Membre -
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 !

6 réponses

  1. Foudegc Messages postés 5 Statut Membre
     
    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
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  3. Foudegc Messages postés 5 Statut Membre
     
    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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  6. Foudegc Messages postés 5 Statut Membre
     
    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