- 'Macro 2 :
-
- Sub Compilation()
-
- '-----------------------------------------------------------------------------------------
- 'Déclaration des variables
- Dim Nom As String
- Dim NomXLS As String
- Dim PathC As String
- Dim PathE As String
- Dim NomClasseur As String
- Dim NomClasseurXLS As String
- Dim NomSem As String
- Dim Num_affaire As Integer
- Dim Num_phase As Integer
- Dim NumSem As Integer
- Dim Nb_heures As Integer
- Dim DateJ As Date
- Dim i As Integer
- Dim j As Integer
- Dim k As Integer
- Dim l As Integer
-
- '-----------------------------------------------------------------------------------------
- 'Initialisation PathC
- If Cells(4, 2) = "" Then
- réponse = MsgBox("Emplacement des classeurs manquant", vbExclamation + vbOKOnly, "Attention !!!")
- Exit Sub
- End If
- PathC = Cells(4, 2)
-
- 'initialisation NumSem / NomSem
- If Cells(4, 3) = "" Then
- réponse = MsgBox("Numero de semaine manquant", vbExclamation + vbOKOnly, "Attention !!!")
- Exit Sub
- End If
- NumSem = Cells(4, 3)
- NomSem = "semaine" & NumSem
-
- 'Initialisation PathE
- If Cells(8, 2) = "" Then
- réponse = MsgBox("Emplacement du classeur d'exportation manquant", vbExclamation + vbOKOnly, "Attention !!!")
- Exit Sub
- End If
- PathE = Cells(8, 2)
-
- 'Initialisation NomClasseur / NomClasseurXLS
- If Cells(8, 3) = "" Then
- réponse = MsgBox("Nom du classeur d'exportation manquant", vbExclamation + vbOKOnly, "Attention !!!")
- Exit Sub
- End If
- NomClasseur = Cells(8, 3)
- NomClasseurXLS = NomClasseur & ".xls"
-
- 'initialisation du compteur de ligne pour le classeur d'exportation
- l = 2
-
- '-----------------------------------------------------------------------------------------
- 'creation d'une feuille d'exportation (dans un nouveau classeur)
- Set newBook = Workbooks.Add(xlWBATWorksheet)
- With newBook
- .Title = NomClasseur
- .SaveAs FileName:=PathE & NomClasseur
- End With
- Cells(1, 1) = "Nom_Emp"
- Cells(1, 2) = "DateJ"
- Cells(1, 3) = "Num_affaire"
- Cells(1, 4) = "Num_phase"
- Cells(1, 5) = "Nb_heures"
- Cells(1, 6) = "Commentaire"
-
- '-----------------------------------------------------------------------------------------
- 'Boucle de traitement des Noms
- For i = 4 To 54 Step 1
- Workbooks("Utilitaire.xls").Worksheets("Compilation").Activate
- 'Condition Nom <> ""
- If Cells(i, 1) <> "" Then
- Nom = Cells(i, 1)
- NomXLS = Nom & ".xls"
-
- Workbooks.Open FileName:=PathC & NomXLS
- Workbooks(NomXLS).Worksheets(NomSem).Activate
-
- 'Boucle de balayage des jours
- DateJ = Cells(1, 5)
- For j = 5 To 10 Step 1
-
- 'Boucle de balayage des projets
- For k = 4 To 24 Step 1
-
- If Cells(k, j) <> "" Then
- Nb_heures = Cells(k, j)
- Num_affaire = Cells(k, 1)
- Num_phase = Cells(k, 2)
- Workbooks(NomClasseurXLS).Worksheets("feuil1").Activate
- Cells(l, 1) = Nom
- Cells(l, 2) = DateJ
- Cells(l, 3) = Num_affaire
- Cells(l, 4) = Num_phase
- Cells(l, 5) = Nb_heures
- Workbooks(NomXLS).Worksheets(NomSem).Activate
- 'mise à jour du compteur de ligne pour le classeur d'exportation
- l = l + 1
- End If
-
- 'Fin de la boucle de balayage des projets
- Next k
-
- 'Fin de la boucle de balayage des jours
- DateJ = DateAdd("d", 1, DateJ)
- Next j
-
- 'Fin condition Nom <> ""
- End If
-
- 'Fin de la boucle de traitement des noms
- Next i
-
-
- 'Fermeture et sauvegarde du classeur d'exportation
- Workbooks(NomClasseurXLS).Worksheets("feuil1").Activate
- ActiveWorkbook.Close SaveChanges:=True
-
- End Sub
'Macro 2 :
Sub Compilation()
'-----------------------------------------------------------------------------------------
'Déclaration des variables
Dim Nom As String
Dim NomXLS As String
Dim PathC As String
Dim PathE As String
Dim NomClasseur As String
Dim NomClasseurXLS As String
Dim NomSem As String
Dim Num_affaire As Integer
Dim Num_phase As Integer
Dim NumSem As Integer
Dim Nb_heures As Integer
Dim DateJ As Date
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim l As Integer
'-----------------------------------------------------------------------------------------
'Initialisation PathC
If Cells(4, 2) = "" Then
réponse = MsgBox("Emplacement des classeurs manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If
PathC = Cells(4, 2)
'initialisation NumSem / NomSem
If Cells(4, 3) = "" Then
réponse = MsgBox("Numero de semaine manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If
NumSem = Cells(4, 3)
NomSem = "semaine" & NumSem
'Initialisation PathE
If Cells(8, 2) = "" Then
réponse = MsgBox("Emplacement du classeur d'exportation manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If
PathE = Cells(8, 2)
'Initialisation NomClasseur / NomClasseurXLS
If Cells(8, 3) = "" Then
réponse = MsgBox("Nom du classeur d'exportation manquant", vbExclamation + vbOKOnly, "Attention !!!")
Exit Sub
End If
NomClasseur = Cells(8, 3)
NomClasseurXLS = NomClasseur & ".xls"
'initialisation du compteur de ligne pour le classeur d'exportation
l = 2
'-----------------------------------------------------------------------------------------
'creation d'une feuille d'exportation (dans un nouveau classeur)
Set newBook = Workbooks.Add(xlWBATWorksheet)
With newBook
.Title = NomClasseur
.SaveAs FileName:=PathE & NomClasseur
End With
Cells(1, 1) = "Nom_Emp"
Cells(1, 2) = "DateJ"
Cells(1, 3) = "Num_affaire"
Cells(1, 4) = "Num_phase"
Cells(1, 5) = "Nb_heures"
Cells(1, 6) = "Commentaire"
'-----------------------------------------------------------------------------------------
'Boucle de traitement des Noms
For i = 4 To 54 Step 1
Workbooks("Utilitaire.xls").Worksheets("Compilation").Activate
'Condition Nom <> ""
If Cells(i, 1) <> "" Then
Nom = Cells(i, 1)
NomXLS = Nom & ".xls"
Workbooks.Open FileName:=PathC & NomXLS
Workbooks(NomXLS).Worksheets(NomSem).Activate
'Boucle de balayage des jours
DateJ = Cells(1, 5)
For j = 5 To 10 Step 1
'Boucle de balayage des projets
For k = 4 To 24 Step 1
If Cells(k, j) <> "" Then
Nb_heures = Cells(k, j)
Num_affaire = Cells(k, 1)
Num_phase = Cells(k, 2)
Workbooks(NomClasseurXLS).Worksheets("feuil1").Activate
Cells(l, 1) = Nom
Cells(l, 2) = DateJ
Cells(l, 3) = Num_affaire
Cells(l, 4) = Num_phase
Cells(l, 5) = Nb_heures
Workbooks(NomXLS).Worksheets(NomSem).Activate
'mise à jour du compteur de ligne pour le classeur d'exportation
l = l + 1
End If
'Fin de la boucle de balayage des projets
Next k
'Fin de la boucle de balayage des jours
DateJ = DateAdd("d", 1, DateJ)
Next j
'Fin condition Nom <> ""
End If
'Fin de la boucle de traitement des noms
Next i
'Fermeture et sauvegarde du classeur d'exportation
Workbooks(NomClasseurXLS).Worksheets("feuil1").Activate
ActiveWorkbook.Close SaveChanges:=True
End Sub