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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
Sub import()
'Application.DisplayAlerts = False
MsgBox "Choisir le répertoire des domaines"
sNomRepertoire = ChoisirRepertoire ' demande de sélectionner le dossier contenant les fichiers domaines
If sNomRepertoire = "" Then
Exit Sub
End If
Path = sNomRepertoire
fichier = Dir(Path & "\*.xlsx ") 'définit les fichiers à importer en l'occurence tous les fichiers excel se trouvant dans ce répertoire
Do While fichier <> "" 'démarre la boucle jusqu'au dernier fichier disponible dans le répertoire
Dim plage As Range 'plage de dates à balayer dans fichier KPI
Dim c As Range
Dim n As Range
Dim i As Variant
Dim donnee_123 As Variant
Dim donnee_45 As Variant
Dim donnee_67 As Variant
Dim l_donnee_123 As Variant
Dim l_donnee_45 As Variant
Dim l_donnee_67 As Variant
Dim l_date As Variant
Dim vdate As Variant
Set vplage = Sheets("Vérification").Range("A2:A78")
Set WbSource = Workbooks.Open(Path & "\" & fichier) 'ouvre le fichier actuel à contrôler
Set wksNewSheet = WbSource.Sheets("Données") 'sélectionne la feuille de données à contrôler
Set plage = wksNewSheet.Range("A2:A66") 'l'ensemble des dates des fichiers domaines unitaires
wksNewSheet.Activate 'active cette feuille
domaine = wksNewSheet.Range("AA2").Value
'MsgBox domaine
For Each c In plage
If c.Value = rdate Then
ligne = c.Row
'MsgBox ligne
For Each n In vplage
If n.Value = domaine Then
vligne = n.Row
'MsgBox vlign
WbSource.Activate
For Each i In Array(5, 6, 7) ', 13, 14, 23, 25)
If IsError(c(ligne, i).Value) Then
Do While IsError(c(ligne, i).Value)
ligne = ligne - 1
Loop
Verif.Worksheets(Sheets.Count).Cells(vligne, 10) = "NO"
l_donnee_123 = c(ligne, i).Value + c(ligne, i + 1).Value + c(ligne, i + 2).Value
vdate = c(ligne, 1)
'MsgBox vdate
Else
donnee_123 = c(ligne, i).Value + c(ligne, i + 1).Value + c(ligne, i + 2).Value
'donnee_123 = WbSource.Worksheets("Données").Cells(ligne, i).Value + WbSource.Worksheets("Données").Cells(ligne, i + 1).Value + WbSource.Worksheets("Données").Cells(ligne, i + 2).Value
l_date = c(ligne, 1)
Verif.Activate
Verif.Worksheets(Sheets.Count).Cells(vligne, 10) = "YES"
Verif.Worksheets(Sheets.Count).Cells(vligne, 11) = l_date
Verif.Worksheets(Sheets.Count).Cells(vligne, 12) = donnee_123
'Else ?
'Verif.Activate
'Verif.Worksheets(Sheets.Count).Cells(vligne, 11) = vdate
'Verif.Worksheets(Sheets.Count).Cells(vligne, 12) = l_donnee_123
End If
Next i
End If
Next n
End If
Next c
WbSource.Close 'ferme le fichier source
fichier = Dir 'va vers le fichier suivant à importer
' Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
'Une fois que la boucle fonctionne il faudra juste rajouter la recherche pour les 2 autres types de données
' :=False, Transpose:=False
Loop 'recommence la boucle avec le fichier suivant
End Sub |
Partager