Soyez le premier à donner votre avis sur cette source.
Vue 33 573 fois - Téléchargée 1 483 fois
'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
3 nov. 2008 à 11:42
3 juin 2008 à 09:58
Je lance donc le premier commentaire sur cette source de 6ans.
Je suis en stage et mon projet et de créer une base de données avec diverses informations (noms ouvriers, numéro chantier, date, heures, frais déplacement...) pour arriver à un bilan final par chantier....
La macro de création de feuille est tout à fait dans mes besoins, et la compilation permettant de récupérer certains champs aussi (à adapter)
Chaque employé pourra donc créer son classeur en début d'année, et par la compilation je pense pouvoir récupérer tous les champs de chaque classeur pour ainsi construire ma base de données...
Merci d'avoir partagé ton travail
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.