[Catégorie modifiée VB6 -> VBA] Problème d'importation de données de plusieurs t
criik
Messages postés1Date d'inscriptionsamedi 5 novembre 2011StatutMembreDernière intervention 5 novembre 2011
-
5 nov. 2011 à 15:18
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 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
A voir également:
[Catégorie modifiée VB6 -> VBA] Problème d'importation de données de plusieurs t
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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