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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
Private Sub CommandButton1_Click()
' Lionel Mardi 16 septembre 2008
Dim xlApp As Excel.Application
Dim Wb As Excel.Workbook
' Vérification que le chemin principal se termine bien par un anti-slash \
FinRep = Right(Sheets("Paramètres").Range("C8"), 1)
If FinRep <> "\" Then
Rep = MsgBox("Attention, le chemin principal doit se terminer par le caractère \", vbCritical, "Merci de corriger SVP...")
Sheets("Paramètres").Range("C8").Select
Exit Sub
End If
Rep = InputBox("Veuillez saisir le mot de passe SVP...", "Confirmation Traitement")
If Rep <> "1611" Then
Rep = MsgBox("Désolé, mot de passe incorrect", vbOKOnly, "Erreur")
Exit Sub
End If
Répertoire = ActiveWorkbook.Path & "\"
FichierRéception = ActiveWorkbook.Name
OngletRéception1 = "2.2 Mensu Prod Org"
OngletRéception2 = "2.5 Mensu Force de Travail"
Ligne = 10
Chaine = Workbooks(FichierRéception).Worksheets("Paramètres").Cells(Ligne, 4) ' Colonne D
RepertoirePal = Workbooks(FichierRéception).Worksheets("Paramètres").Cells(8, 3) ' Colonne C
RepertoireSource = RepertoirePal & Workbooks(FichierRéception).Worksheets("Paramètres").Cells(Ligne, 3) & "\" ' Colonne C
Fichier = Dir(RepertoireSource & Chaine & ".xls")
' On vide la colonne A qui contient la date d'intégration des données de chaque fichier
Workbooks(FichierRéception).Worksheets("Paramètres").Unprotect ("1611")
Workbooks(FichierRéception).Worksheets("Paramètres").Range("A10:A100").Select
Selection.ClearContents
Workbooks(FichierRéception).Worksheets("Paramètres").Range("A10").Select
Do Until Fichier = ""
' Ajout 17/09/2008 à 22h10 pour ouvrir une 2ème instance d'Excel
Set xlApp = New Excel.Application
xlApp.EnableEvents = False ' devrait normalement empêcher le lancement de la macro du fichier appelé
Set Wb = xlApp.Workbooks.Open(RepertoireSource & Fichier)
With Wb
Workbooks(FichierRéception).Worksheets("Paramètres").Activate
' Etape 1 : Onglet OngletRéception1
For LigneSource = 6 To 121
For Colonnesource = 4 To 27
Workbooks(FichierRéception).Worksheets("Paramètres").Cells(Ligne, 1) = "Onglet 1, Lig " & LigneSource & " Col " & Colonnesource
' au cas où des cellules ne contiendraient pas du numérique
If IsNumeric(.Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource)) Then
MaValeur = .Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource)
Else
MaValeur = 0
End If
If Ligne = 10 Then
Workbooks(FichierRéception).Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource) = MaValeur
Else
Workbooks(FichierRéception).Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource) = Workbooks(FichierRéception).Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource) + MaValeur
End If
Next Colonnesource
Next LigneSource
LigneSource = 128 ' pour Productivité en EUTC (intégration TGA)
For Colonnesource = 4 To 27
Workbooks(FichierRéception).Worksheets("Paramètres").Cells(Ligne, 1) = "Onglet 1, Lig " & LigneSource & " Col " & Colonnesource
' au cas où des cellules ne contiendraient pas du numérique
If IsNumeric(.Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource)) Then
MaValeur = .Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource)
Else
MaValeur = 0
End If
If Ligne = 10 Then
Workbooks(FichierRéception).Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource) = MaValeur
Else
Workbooks(FichierRéception).Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource) = Workbooks(FichierRéception).Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource) + MaValeur
End If
Next Colonnesource
' Etape 2 : Onglet OngletRéception2
Dim LigneOnglet2
LigneOnglet2 = Array(7, 12, 21, 29, 39, 43, 49, 55, 67, 78, 81, 85, 90, 93, 97)
For Indice = 0 To 14
LigneSource = LigneOnglet2(Indice)
For Colonnesource = 3 To 14
Workbooks(FichierRéception).Worksheets("Paramètres").Cells(Ligne, 1) = "Onglet 2, Lig " & LigneSource & " Col " & Colonnesource
' au cas où des cellules ne contiendraient pas du numérique
If IsNumeric(.Worksheets(OngletRéception2).Cells(LigneSource, Colonnesource)) Then
MaValeur = .Worksheets(OngletRéception2).Cells(LigneSource, Colonnesource)
Else
MaValeur = 0
End If
If Ligne = 10 Then
Workbooks(FichierRéception).Worksheets(OngletRéception2).Cells(LigneSource, Colonnesource) = MaValeur
Else
Workbooks(FichierRéception).Worksheets(OngletRéception2).Cells(LigneSource, Colonnesource) = Workbooks(FichierRéception).Worksheets(OngletRéception2).Cells(LigneSource, Colonnesource) + MaValeur
End If
Next Colonnesource
Next Indice
Workbooks(FichierRéception).Worksheets("Paramètres").Cells(Ligne, 1) = "Intégré le " & Now()
.Close False ' ferme sans enregistrer les modifications éventuelles apportées au fichier appelé
End With
xlApp.EnableEvents = True ' réactivation pour lancement macro
xlApp.Quit
Set xlApp = Nothing
Set Wb = Nothing
FichierSuivant:
Ligne = Ligne + 1
Fichier = ""
Chaine = Workbooks(FichierRéception).Worksheets("Paramètres").Cells(Ligne, 4) ' Colonne D
RepertoireSource = RepertoirePal & Workbooks(FichierRéception).Worksheets("Paramètres").Cells(Ligne, 3) & "\" ' Colonne C
Fichier = Dir(RepertoireSource & Chaine & ".xls")
Loop
Workbooks(FichierRéception).Worksheets("Paramètres").Protect ("1611")
MsgBox ("Mise à jour terminée")
End Sub |
Partager