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
| Sub TEST1()
'
' TEST1 Macro
'
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'Décalaration des variables
Dim Wk1 As Workbook 'doc où il y a la macro'
Dim Wk2 As Workbook 'doc fiche de synthèse'
Dim Wk3 As Workbook 'doc qui devra être importer sur TWIMM'
Dim fiche_de_synthèse As String
Dim fichier_à_importer As String
Dim i, j, k As Integer 'i représente la variable du nombre d'élémeent en Y de la colonne CODE_SITE'
Dim dernligneWk2 As Double 'dernière ligne de la colonne code_site, attention si ajout de colonne avant il faut modifier le n° de la colonne ici'
Dim derncolWk2 As Double 'dernière colonne du tableau fiche de synthèse'
Dim nbr_col() As Integer
Dim fin() As String
Dim nom_col(4) As String 'dans le classeur fiche de synthèse'
Dim nom_colonne(4) As String 'dans le classeur IMPORT TWIMM'
Dim place_col(4) As Integer
Dim code_du_site As String
Dim nom_du_site As String
Dim lot_sur_le_site As String
'ici on indique où lire les chemins dans la feuille excel où il y a la macro'
Set Wk1 = ThisWorkbook
fiche_de_synthèse = Wk1.Sheets(1).Range("E3")
fichier_à_importer = Wk1.Sheets(1).Range("E6")
Set Wk2 = Workbooks.Open(fiche_de_synthèse)
'définition des bornes du tableau source'
With Wk2.Sheets("fiche de synthèse")
dernligneWk2 = Cells(Application.Rows.Count, 2).End(xlUp).Row 'prend la valeur de la dernière ligne de la colonne C (CODE_SITE)'
ReDim fin(dernligneWk2 - 1)
derncolWk2 = Cells(7, Application.Columns.Count).End(xlToLeft).Column 'prend la valeur de la dernière colonne de la ligne où il y a les titre (ligne 6)'
End With
For k = 1 To 50
k = k + 1
Next
'lecture des code_site'
For k = 1 To UBound(fin)
fin(k) = Wk2.Sheets("fiche de synthèse").Cells(k + 1, 2)
Next
'création des vecteurs noms colonnes, attention les noms ne doivent pas changer'
'dans le classeur FICHE DE SYNTHESE'
nom_col(1) = "CODE_SITE"
nom_col(2) = "NOM_S"
nom_col(3) = "LOTS"
'on les mettra toutes plus tard'
'création des vecteurs noms colonnes, attention les noms ne doivent pas changer'
'dans le classeur IMPORT TWIMM'
nom_colonne(1) = "CODE_SITE"
nom_colonne(2) = "NOM" 'il y a plusieurs colonnes différentes qui ont ce nom'
nom_colonne(3) = "LOTS"
'ici aussi on les mettra toutes plus tard'
'on commence la lecture dans le classeur fiche de synthèse (Wk2), en localisant les info à traiter par lecture du nom des colonnes'
For j = 1 To UBound(nom_col)
For i = 1 To derncolWk2
If UCase(nom_col(j)) Like "*" & UCase(Wk2.Sheets("fiche de synthèse").Cells(7, i)) & "*" And UCase(Wk2.Sheets("fiche de synthèse").Cells(7, i)) <> "" Then
place_col(j) = i
Exit For
Else
End If
Next
Next
Set Wk3 = Workbooks.Open(fichier_à_importer)
'on récupère les données du classeur fiche de synthèse'
For ligneWk2 = 7 To dernligneWk2
If fin(ligneWk2) = Wk2.Sheets("fiche de synthèse").Cells(ligneWk2, place_col(3)) Then
'on créer des variables temporaires dans la macro'
code_du_site = Wk2.Sheets("fiche de synthèse").Cells(ligneWk2, place_col(1))
nom_du_site = Wk2.Sheets("fiche de synthèse").Cells(ligneWk2, place_col(2))
lot_sur_le_site = Wk2.Sheets("fiche de synthèse").Cells(ligneWk2, place_col(3))
'on colle les valeurs qui sont stockées dans les variables temporaires dans le fichier à importer sur TWIMM'
If Wk3.Sheets("SITES").Cells(ligneWk3 + 1, nom_colonne()) = "" Or Wk3.Sheets("SITES").Cells(ligneWk3 + 1, nom_colonne()) = "" Or Wk3.Sheets("SITES").Cells(ligneWk3 + 1, nom_colonne()) = "" Then 'permet de recopier dans la feuille "SITES" dans la colonne "CODE_SITE"'
Wk3.Sheets("SITES").Cells(ligneWk3 + 1, nom_colonne(1)).Value = code_du_site 'CODE_SITE'
Wk3.Sheets("SITES").Cells(ligneWk3 + 1, nom_colonne(2)).Value = nom_du_site 'NOM_S qui correspond au nom du site attribué'
Wk3.Sheets("SITES").Cells(ligneWk3 + 1, nom_colonne(3)).Value = lot_sur_le_site 'LOTS qui correspond au lot sur le site'
End If
End If
Next
Wk2.Close
Wk3.Save
Wk3.Close
Application.ScreenUpdating = True
End Sub |
Partager