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 92 93 94 95 96
| Public Sub Importe_Visite()
Dim CodeClient As String
CodeClient = Worksheets("Fiche client").Range("E3")
Const LookInFolder = "C:\Bordereau de visites\"
Dim xlFichier As String 'fichier xls trouvé
Dim ActionLigne As Long 'Ligne où doivent être copiées les données trouvées
Dim xlClasseur As Workbook 'Classeur de recherche
Dim xlFeuillet As Worksheet 'Feuillet de recherche
Dim xlRange As Range 'Plage où le code client a été trouvé
'Rechercher les fichiers xls du dossier
xlFichier = Dir(LookInFolder & "*.xls")
Do While xlFichier <> ""
'Ouvrir le classeur du fichier trouvé
Set xlClasseur = Workbooks.Open(Filename:=LookInFolder & xlFichier, ReadOnly:=True)
'Pour chaque Feuillet du classeur
For Each xlFeuillet In xlClasseur.Worksheets
'Récupérer la plage où CodeClient est trouvé
Set xlRange = xlFeuillet.Range("A1:A65536").Find(CodeClient, , xlValues, xlWhole, xlByRows, xlNext, False, False)
'Si CodeClient a été trouvé alors récupéré les valeurs
If Not xlRange Is Nothing Then
With ThisWorkbook.Worksheets("Actions")
ActionLigne = .Range("B65535").End(xlUp).Row + 1
.Cells(ActionLigne, 2) = xlFeuillet.Range("G5")
.Cells(ActionLigne, 3) = xlFeuillet.Cells(xlRange.Row, 2)
.Cells(ActionLigne, 4) = xlFeuillet.Cells(xlRange.Row, 7)
.Cells(ActionLigne, 5) = xlFeuillet.Cells(xlRange.Row, 8)
.Cells(ActionLigne, 6) = xlFeuillet.Cells(xlRange.Row, 9)
.Cells(ActionLigne, 7) = xlFeuillet.Cells(xlRange.Row, 10)
End With
Set xlRange = Nothing
End If
Next
Set xlFeuillet = Nothing
xlClasseur.Close
Set xlClasseur = Nothing
xlFichier = Dir
verif_importation
Loop
'trier par date de visite
Rows("6:6").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Sort Key1:=Range("B6"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A1").Select
End Sub
Sub verif_importation()
Dim FL1 As Worksheet
Dim Valeur As Variant, c As Range
Dim NoLigne As Long, DerLig As Long
Set FL1 = Worksheets("Actions")
NoLigne = 6 'Si les données commencent à la ligne 1
Do
If Not Cells(NoLigne, 2) = "" Then 'Colonne B
Valeur = Cells(NoLigne, 2)
Do
With FL1.Range("B" & NoLigne + 1, [B65536].End(xlUp))
DerLig = 0
Set c = .Find(Valeur, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
If c.Row > NoLigne Then
DerLig = c.Row
c.EntireRow.Delete
End If
End If
Set c = Nothing
End With
Loop While DerLig > NoLigne
End If
NoLigne = NoLigne + 1
Loop While NoLigne < FL1.Range("B65536").End(xlUp).Row
End Sub |
Partager