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 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
| Sub comparaison()
Dim Cel As Range
Dim j As Long, NbLg As Long, Ligne As Long
Dim F1 As Worksheet, F2 As Worksheet, F3 As Worksheet, F4 As Worksheet
Dim i As Integer
Dim Colonnes
Dim LigneCopie As Boolean
'Call tab_faust
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
Set F1 = Sheets("source")
Set F2 = Sheets("ISIS")
Set F3 = Sheets("Feuil3")
Set F4 = Sheets("Feuil4")
Colonnes = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V")
F3.Cells.Clear
F4.Cells.Clear
' -------------------------------------- Stockage fichier FAUST
Dim FF As Integer, quoi As String, k As Long, n As Long
FF = FreeFile
Open "C:\Users\e552538\Desktop\Outils\Comparaison FAUST_ISIS\Nouveau dossier\AC\informations_2017.csv" For Input As #FF 'Nom complet du fichier à charger
quoi = Input(LOF(FF), #FF)
Close #FF
titi = Split(quoi, vbCrLf)
For k = 0 To UBound(titi)
' MsgBox titi(k) ' --->> on a là une ligne entière de 26 colonnes >> titi(k) =Ligne K
toto = Split(titi(k), ";")
For n = 0 To UBound(toto)
'MsgBox "la colonne " & n & " de la ligne " & k & " contient " & toto(n) ' >>> toto(n) Colonne n
Next n
Next k
' -------------------------------------- Fin chargement fichier
Ligne = 1
Ligne2 = 1
With F2
.Rows("1:1").Copy F3.Rows("1:1") ' La ligne des entêtes
.Rows("1:1").Copy F4.Rows("1:1") ' La ligne des entêtes
NbLg = .Range("A" & Rows.Count).End(xlUp).row ' Nombre de ligne de la page "CIBLE"
MsgBox NbLg
End With
For k = 1 To UBound(titi) 'Parcours du fichier FAUST
'MsgBox titi(k)
LigneCopie = False
col_ligne = Split(titi(k), ";")
'MsgBox col_ligne(4)
Set Cel = F2.Columns("E").Find(what:=col_ligne(4), LookIn:=xlValues, lookat:=xlWhole) ' Recherche dans onglet ISIS enregistrement correspondant au n° de doc
If Not Cel Is Nothing Then
'MsgBox "ok_present"
' On a trouvé le numéro de document
For l = 0 To UBound(Colonnes)
' MsgBox (F2.Range(Colonnes(l) & Cel.row) & "__" & col_ligne(l))
If F2.Range(Colonnes(l) & Cel.row) <> col_ligne(l) Then
If LigneCopie = False Then
Ligne = Ligne + 1 ' Copie ligne FAUST
For m = 0 To UBound(Colonnes)
F3.Range(Colonnes(m) & Ligne) = col_ligne(m)
Next m
Ligne = Ligne + 1
For m = 0 To UBound(Colonnes)
F3.Range(Colonnes(m) & Ligne) = F2.Range(Colonnes(m) & Cel.row)
Next m
LigneCopie = True
End If
End If
Next l
Else
'MsgBox "ko_abs"
' Numéro de dossier pas trouvé
Ligne2 = Ligne2 + 1 ' On passe à la ligne suivante
'parcourir la feuille 4 pour copie des champs du fichier FAUST
For j = 0 To UBound(Colonnes) ' On passe en revue toutes les colonnes
F4.Range(Colonnes(j) & Ligne2) = col_ligne(j)
Next j
End If
Next k
Application.ScreenUpdating = True
Application.DisplayStatusBar = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
End Sub |
Partager