Bonjour à tous,
Voilà cela fait quelques jours que je me suis mis au VBA, j'ai pu récolter beaucoup d'informations sur le forum mais je bloque encore sur ce code.
Voici mon problème:
- Mon doc principal doit récupérer des données de plusieurs fichiers situés dans un même répertoire.
- Il faut récupérer les données des mêmes cellules pour tous les fichiers, mais à une condition: qu'une cellule spécifique (B26) contienne quelque chose (à l'heure actuelle mon code importe même lorsque les cellules sont vides du coup cela me met plein de 0 dans mon tableau..).
- Les données récoltées dans un fichier doivent être collées dans mon fichier principal par ligne (exemple: données du fichier 1 collées en A13, B13 ,C13) et ainsi de suite (exemple: données du fichier 2 collées en A14, B14 ,C14..).
- Enfin dans l'idéal, j'aimerai que la macro n'aille chercher qu'une seule fois les données d'un même fichier, car j'ai mis une mise a jour toutes les N minutes, et je ne veux pas importer plusieurs fois les mêmes données.
Voici mon code (l'import des données fonctionne mais pas la condition):
Voici en pièce jointe mon Fichier principal (Tableau dates) devant regrouper les données importées et 3 exemples de fichier pouvant se trouver dans le répertoire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Sub exportdonnées() Dim lig As Integer, p As String, nomfich As String Application.ScreenUpdating = False 'fige l'écran (pour accélérer) Range("A13:D65536").ClearContents 'efface la plage de restitution lig = 13 'restitution à partir de la ligne 13 p = ThisWorkbook.Path & "\" nomfich = Dir(p & "*.xls") '1er fichier du dossier While nomfich <> "" If nomfich <> ThisWorkbook.Name And "[" & nomfich & "]Article_Livrable et Prestations!B26" <> "" Then Cells(lig, 1).Formula = "='" & p & "[" & nomfich & "]Article_Livrable et Prestations'!G17" Cells(lig, 2).Formula = "='" & p & "[" & nomfich & "]Article_Livrable et Prestations'!B26" Cells(lig, 3).Formula = "='" & p & "[" & nomfich & "]Article_Livrable et Prestations'!D4" Cells(lig, 4).Formula = "='" & p & "[" & nomfich & "]Article_Livrable et Prestations'!B20" lig = lig + 1 Else: Exit Sub End If nomfich = Dir 'fichier suivant du dossier Wend End Sub
J'espère que j'ai été assez clair dans la description du problème.
Un grand merci par avance pour votre aide!!
Partager