[Catégorie modifiée VB6 -> VBA] Problème d'importation de données de plusieurs t

criik Messages postés 1 Date d'inscription samedi 5 novembre 2011 Statut Membre Dernière intervention 5 novembre 2011 - 5 nov. 2011 à 15:18
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 5 nov. 2011 à 15:50
Bonjour à la communauté,

Je suis nouveau sur le forum et je me permets de vous écrire au sujet dŽun problème rencontré en programmation VBA. J'espère que je trouverai ici quelqu'un qui puisse mŽaider à résoudre mon problème.


Je souhaiterais mettre en place un outil capable dŽextraire des données (alphanumériques) à partir de plusieurs documents Excel pour les copier dans un seul et même document Excel. Concrètement il sŽagit de factures de ventes (un document Excel par facture; plusieurs centaines de factures en tout) qui contiennent des informations telles que lŽidentité, lŽadresse de lŽacheteur ou encore lŽobjet acheté. Toutes ces informations je souhaiterais les copier dans un seul tableau pour avoir en quelque sorte un récapitulatif des clients. Je pourrais ensuite faire des tris en fonction des articles achetés, de la date dŽachat etc,... dans le but de cibler plus facilement les clients.


Je dispose par ailleurs d'un programme trouvé sur internet qui semble intéressant mais que je nŽarrive pas à adapter à mon cas précis.


Crik

2 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
5 nov. 2011 à 15:44
Salut et bienvenu

Première chose : VBA n'est pas du VB6 : Regarde la catégorie que j'ai modifié afin de t'en resservir la prochaine fois.

Comme d'habitude, il faut découper tout ce que tu as à faire et résoudre chaque tâche l'une après l'autre :
- Il te faut lister les fichiers correspondants à tes factures :
Voir Dir
- Il faut ouvrir chaque fichier
Enregistre une macro pendant que tu ouvres un classeur et tu auras le code. Il te suffiras de modifier le nom du fichier par celui que te retourner la fonction Dir
+ faire une boucle avec le Dir
Voir Do-Loop
- Récupérer les infos :
Une fois qu'un de tes classeurs est ouvert, c'est pareil que dans le classeur courant, suffit de bien préciser à quel classeur s'adresse tes commandes.

Pour chacune de ces tâches, tu trouveras des exemples parmi les codes ou parmi les précédentes questions du forum.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
5 nov. 2011 à 15:50
En gros, et de mémoire, ça donnerait ça :
Dim monFichier As String
Dim monClasseur As Workbook
monFichier = Dir("C:\mon répertoire\*.xls")
Do While monFichier <> ""
    ' Ouverture
    Set monClasseur = Workbooks.Open("C:\mon répertoire" & monFichier)
    ' Transfert d'une info A1 de la facture vers B23 de mon classeur
    ActiveSheet.Range("B23").Value = monClasseur.Sheets("Feuil1").Range("A1").Value
    ' Fermeture de la facture
    monClasseur.Close
    ' Petite respiration
    DoEvents
    ' Fichier suivant
    monFichier = Dir
Loop
0