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):
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!!