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
|
Function CountLig(Ws As Worksheet, col As Single)
'Fonction servant à compter les lignes
On Error GoTo ErrorHandler
CountLig = Ws.Columns(col).Find("*", , , , xlByRows, xlPrevious).Row
Exit Function
ErrorHandler:
CountLig = 1
End Function
Sub CopyData()
Dim I As Single
'Variable d'iteration
Dim LastLine As Single
'Determine la derniere ligne
Dim MonMateriel As String
'Determine ton materiel
Dim MySeparateValue() As String
'Tableau separant les donnees issu du PDF
Dim AllTheValue() As Variant
'Tableau comprenant toute les valeurs a ecrire
Dim WsDonnee As Worksheet
'Feuille de DONNEE
Dim WsResult As Worksheet
'Feuille de Resultat
Set WsDonnee = Worksheets("DONNEES")
Set WsResult = Worksheets("RESULTAT")
Const FIRSTLINE = 3
'Determine la premiere ligne de la feuille de DONNEE qui contient des valeurs, a adapter au besoin
LastLine = CountLig(WsDonnee, 1)
'Determine la derniere ligne de la feuille de DONNEE
Load UserForm1
UserForm1.Show
'Lance l'Userform
ReDim AllTheValue(3, LastLine - FIRSTLINE)
'Determine la taille du tableau comprenant toute les valeurs
For I = FIRSTLINE To LastLine
'Parcours toutes les donnees issu du PDF
MySeparateValue = Split(WsDonnee.Cells(I, 1), " ")
'Separe les valeurs selons les espaces
MonMateriel = ""
For J = LBound(MySeparateValue, 1) + 2 To UBound(MySeparateValue, 1)
MonMateriel = MonMateriel + MySeparateValue(J) + " "
'Definit ton materiel comme etant la concatenation de toutes les valeurs issu de la separation
'sauf les deux premiere
Next J
AllTheValue(0, I - FIRSTLINE) = UserForm1.TheDate
'Recupere la propriete Date de l'UF
AllTheValue(1, I - FIRSTLINE) = UserForm1.LocalNumber
'Recupere la propriete Numero de Local de l'UF
AllTheValue(2, I - FIRSTLINE) = MySeparateValue(1)
AllTheValue(3, I - FIRSTLINE) = MonMateriel
'Remplie le tableau avec les valeurs que tu veux
Next I
Unload UserForm1
LastLine = CountLig(WsResult, 1) + 1
'Definis la derniere ligne de la feuille Resultat
With WsResult
For I = LBound(AllTheValue, 2) To UBound(AllTheValue, 2)
.Cells(I + LastLine, 1) = AllTheValue(0, I)
.Cells(I + LastLine, 2) = AllTheValue(1, I)
.Cells(I + LastLine, 3) = AllTheValue(2, I)
.Cells(I + LastLine, 4) = AllTheValue(3, I)
'Remplis ta feuille resultat avec les valeurs du tableau
Next I
.Select
End With
End Sub |
Partager