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
| Option Explicit
Sub En_revue()
Dim Fichier_traite As String, j As Integer
Dim Chemin As String, DerLig_Fichier_traite As Integer, DerLig As Integer
Dim Premiere_Ligne As Integer, Derniere_Ligne As Integer, i As Integer, DerLig_IP As Integer
Application.ScreenUpdating = False
ThisWorkbook.Sheets("Feuil1").Range("A2:F1048576").ClearContents
ThisWorkbook.Sheets("Feuil2").Range("A1:C1048576").ClearContents
Chemin = ThisWorkbook.Path & "\"
Fichier_traite = Dir(Chemin & "*.*")
Do While Fichier_traite <> ""
If Fichier_traite = ThisWorkbook.Name Then GoTo Etiquette
Workbooks.Open Chemin & Fichier_traite
DerLig_Fichier_traite = ActiveWorkbook.ActiveSheet.Range("A1048576").End(xlUp).Row
For j = 1 To DerLig_Fichier_traite
If ThisWorkbook.Sheets("Feuil2").Range("A1048576").End(xlUp) = "" Then
DerLig = 1
Else
DerLig = ThisWorkbook.Sheets("Feuil2").Range("A1048576").End(xlUp).Row + 1
End If
ThisWorkbook.Sheets("Feuil2").Range("A" & DerLig) = CDate(Mid(ActiveWorkbook.ActiveSheet.Range("A" & j), 10, 17))
ThisWorkbook.Sheets("Feuil2").Range("B" & DerLig) = Mid(ActiveWorkbook.ActiveSheet.Range("A" & j), 181, 11)
ThisWorkbook.Sheets("Feuil2").Range("C" & DerLig) = Fichier_traite
Next
Workbooks(Fichier_traite).Close False
Etiquette:
Fichier_traite = Dir
Loop
Sheets("Feuil2").Activate
Range("A1:C" & Range("A1048576").End(xlUp).Row).Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlNo, Key2:=Range("A1"), Order1:=xlAscending, Header:=xlNo
Range("B1").Activate
Retour:
Premiere_Ligne = ActiveCell.Row
Do Until ActiveCell.Offset(1, 0) <> ActiveCell
If ActiveCell = "" Then GoTo Etiquette_bis
ActiveCell.Offset(1, 0).Activate
Loop
Derniere_Ligne = ActiveCell.Row
With Sheets("Feuil1")
DerLig_IP = .Range("A1048576").End(xlUp).Row + 1
.Range("A" & DerLig_IP) = Range("B" & Premiere_Ligne)
.Range("B" & DerLig_IP) = Derniere_Ligne - Premiere_Ligne + 1
.Range("C" & DerLig_IP) = Range("A" & Premiere_Ligne)
.Range("D" & DerLig_IP) = Range("C" & Premiere_Ligne)
If .Range("B" & DerLig_IP) > 1 Then
.Range("E" & DerLig_IP) = Range("A" & Derniere_Ligne)
.Range("F" & DerLig_IP) = Range("C" & Derniere_Ligne)
End If
End With
ActiveCell.Offset(1, 0).Activate
GoTo Retour
Etiquette_bis:
Cells.ClearContents
Sheets("Feuil1").Activate
End Sub |
Partager