Base de données

Bonjour à tous, je débute en programmation sur vba depuis quelques mois et j'aimerai créer un userform en lien avec un fichier excel que je nommerai "base de données".

Le but de ce userform serait de selectionner un fichier excel numéro 1 sur le disque dur de l'ordinateur et de copier les valeurs contenues dans certaines cellules de ce fichier 1 dans mon fichier "base de données". Par exemple, je voudrai que la valeur de la cellule F8 de mon fichier 1 se retrouve dans la cellule B3 de ma base de données. De la même façon si je sélectionne un fichier numéro 2, je voudrais que la valeur de la cellule F8 de mon fichier 2 se retrouve dans la cellule B4 de mon fichier base de données et ainsi de suite...

Est-ce facilement réalisable? Pour commencer, pouvez-vous m'aider à créer un bouton userform pour la sélection d'un fichier?

Bonjour,

Puis que tu es en apprentissage, regarde sur le lien suivant et notamment la leçon 9 :

https://www.excel-pratique.com/fr/vba.php

Bonsoir,

Je reviens vers vous car après avoir étudié la leçon 9, je rencontre tjrs un problème sur la création d'un programme qui me permettrait de selectionner un fichier au format excel (parmis d'autres) sur le disque dur à un emplacement précis. En cherchant bien, j'ai donc 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 malheureusement, 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

Bonsoir

Ton fichier serait plus utile que ton code

Pas sur mais je ne crois pas que cette macro soit dans le bon évènement

nf = Dir(([surligner=#FFFF40]"C:\Users\Pierre\Desktop\Project\*.xlsx[surligner=#FFFF40]") 'fonction dir pour selectionner fichier'

parenthèse en trop manque les "" (guillemets)

nf = Dir(repertoire) 

Inutile

Dans ton userform

Une listBox nommée CBFile

Un Bouton de commande

Private Sub CommandButton1_Click()
  CbFile.Clear                    ' Effacer Listbox'
  repertoire = "C:\Users\Pierre\Desktop\Project" 'dossier ou sont stockés les fichiers'
   nf = Dir(repertoire & "\*.xlsx")  'fonction dir pour selectionner fichier'
  Do While nf <> ""
    CbFile.AddItem nf     'alimenter la ListBox
    nf = Dir
  Loop
End Sub

Merci Maintenant grâce à vous, j'ai donc la listbox qui me permet d'afficher les fichiers excel contenus dans le dossier souhaité. Par contre, je suis bloqué pour la suite... Comment à partir de cette listbox pouvons-nous sélectionner le classeur souhaité et aller y chercher les informations voulus 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://drive.google.com/file/d/0B4v9wF_bSM76UVVQWVhlZF9mUnM/edit?usp=sharing

En espérant avoir été clair dans la description du problème. Encore une fois, merci d'avance.

Bonjour

Tu as utilisé une ComboBox à la place d'une ListBox qui est plus pratique dans ce cas

Je t'ai fait l'ouverture et la fermeture du fichier, il ne reste plus qu'à récupérer les données qui t’intéresse

N'oublies pas de remettre ton répertoire

A voir

Bonsoir, merci c'est exactement ce que je cherchais à faire. 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 :

With Workbooks.Open(Repertoire & Me.LBFile)

A quoi cela peut-il être du?

Bonsoir

Étonnant car, c'est sur je ne fais pas beaucoup de test, mais celui-ci c'est le minimum à faire

Je choisis un nom dans la liste

OK

Message qui m'indique que le fichier ....... va s'ouvrir

Ok

Ouverture et visualisation du fichier

Message qui m'indique que le fichier ...... va se fermer

Ok

Fermeture du fichier

Tu as modifié le chemin ?

Si quelqu'un peut tester

Merci d'avance

Bonjour,

Désolé pour le temps de réponse, je n'ai pas vraiment pu me connecter cette semaine 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.

Bonjour,

J'essaye de finir cette base de données petit à petit. Par contre, je me demandais pour aller plus loin dans la programmation s'il était possible que ce programme puisse ajouter tous les documents présents dans la listbox à la base de données? (utilisation d'une boucle?). Merci pour toute l'aide que vous pourrez m'apporter : )

Bonjour

Daiiki a écrit :

tous les documents présents dans la listbox à la base de données?

Attention tu vas avoir 2 messages par fichier dans la liste et cela risque d'être long

Oui mais dans ce cas je compte supprimer les messages qui s'affiche afin de gagner du temps

Bonjour

Daiiki a écrit :

Oui mais dans ce cas je compte supprimer les messages qui s'affiche afin de gagner du temps

Alors enlèves les

Dans la macro supprimes les lignes ( 2 lignes) qui commencent par MsgBox

Oui c'est déjà fait. Maintenant, j'essaye de modifier le programme pour ouvrir tous les fichiers de la listbox.

Bonjour

Daiiki a écrit :

j'essaye de modifier le programme pour ouvrir tous les fichiers de la listbox.

La macro le fait déjà, toi il ne te reste plus qu'à récupérer ce que tu as besoin

Private Sub CommandButton2_Click()
' Ouverture de tous les fichiers
Dim I As Integer

  For I = 0 To Me.LBFile.ListCount - 1
    With Workbooks.Open(Repertoire & Me.LBFile.List(I))   ' Ouverture du fichier
      '
      ' Code pour récupérer les infos
      '
      .Close savechanges:=False                           ' Fermeture du fichier
    End With
  Next I

End Sub

Un grand merci, j'ai adapté votre code à la suite de mon programme, ça fonctionne à merveille

Rechercher des sujets similaires à "base donnees"