nat54
XLDnaute Barbatruc
Bonjour,
J'ai finalisé mon code VBA qui marche pour un pôle en question (un des 31 fichiers tableau de bord)
Ci-dessous le code :
Le code fonctionne parfaitement.
J'aimerai donc pouvoir maintenant "boucler" pour faire tous les fichiers en une fois.
Chaque fichier est nommé de la même manière : TdB_RH_3945_année_2011-2012.xls
où 3945 correspond au numéro du pôle.
Toutes les actions doivent se faire sur chacun des pôles.
Le prochain à traiter est le 3580.
Y a t'il moyen de variabiliser cela ?
Contrainte supplémentaire : le chemin d'accès au fichier ...
- le pôle 3945 se situe dans le répertoire R:\ECHANGE\Tableau_de_bord_RH\3945 - PEDIATRIE
- le pôle 3580 se situe dans le répertoire R:\ECHANGE\Tableau_de_bord_RH\3580 - ODONTOLOGIE
Y a t il moyen de trouver le chemin en disant quelque chose du genre "contient 3580" ?
Merci d'avance !
edit : je voulais mettre en couleur les endroits à variabiliser mais ça fait planter les balises code du forum...
edit 2 : le synopsis si ça peut aider.. quoique.. :d
http://www.heberger-image.frhttp://www.heberger-image.fr
J'ai finalisé mon code VBA qui marche pour un pôle en question (un des 31 fichiers tableau de bord)
Ci-dessous le code :
Code:
Sub Construire_fichiers()
''' Test sur pôle 3945 (à voir plus tard pour une boucle)
Workbooks.Open Filename:= _
"R:\ECHANGE\Tableau_de_bord_RH\3945 - PEDIATRIE\TdB_RH_3945_année_2011-2012.xls", _
WriteResPassword:="wxcvbn", _
IgnoreReadOnlyRecommended:=True
''' Déprotéger classeur
Application.Run "'TdB_RH_3945_année_2011-2012.xls'!DeProtegeClasseur"
''' Rendre visible les onglets d'export
Windows("TdB_RH_3945_année_2011-2012.xls").Activate
Sheets("export_HUS_abs").Visible = True
Sheets("export_HUS_gestor").Visible = True
Sheets("export_abs_N-1").Visible = True
Sheets("export_gestor_N-1").Visible = True
''' Pour moyenne absentéisme HUS
Sheets("export_HUS_abs").Select
Range("a2:u" & Range("u65536").End(xlUp).Offset(1, 0).Row).Select
Selection.ClearContents
Windows("Export_BO_ABS_HUS.xls").Activate
Range("a1:u" & Range("u65536").End(xlUp).Offset(1, 0).Row).Select
Selection.Copy
Windows("TdB_RH_3945_année_2011-2012.xls").Activate
Sheets("export_HUS_abs").Select
Range("A65536").End(xlUp).Select
ActiveSheet.Paste
''' Pour moyenne gestor HUS
Windows("Export_BO_GESTOR_HUS.xls").Activate
Range("a1:k" & Range("k65536").End(xlUp).Offset(0, 0).Row).Select
Selection.Copy
Windows("TdB_RH_3945_année_2011-2012.xls").Activate
Sheets("export_HUS_gestor").Select
Range("A65536").End(xlUp).Select
ActiveSheet.Paste
''' Pour absentéisme du pôle test 3945 (à voir pour une boucle plus tard)
Windows("TdB_RH_3945_année_2011-2012.xls").Activate
Sheets("export_abs").Select
Range("a2:ad" & Range("ad65536").End(xlUp).Offset(1, 0).Row).Select
Selection.ClearContents
Windows("Export_BO_ABS_nominatif.xls").Activate
Selection.AutoFilter Field:=4, Criteria1:="3945" 'field 4 = colonne D, pôle 3945
Range("a2:ad10000").Select
Selection.Copy
Windows("TdB_RH_3945_année_2011-2012.xls").Activate
Sheets("export_abs").Select
Range("a2:ad" & Range("ad65536").End(xlUp).Offset(1, 0).Row).Select
ActiveSheet.Paste
''' Pour gestor du pôle test 3945 (à voir pour une boucle plus tard)
Windows("Export_BO_GESTOR_nominatif.xls").Activate
Selection.AutoFilter Field:=5, Criteria1:="3945" 'field 5 = colonne E, pôle 3945
Range("A2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("TdB_RH_3945_année_2011-2012.xls").Activate
Sheets("export_gestor").Select
x = Selection.Rows.Count + 2 '+1 si pas de ligne de titre, +2 si ligne de titre
Range("A" & x).Select
ActiveSheet.Paste
''' Reprotéger classeur
Application.Run "'TdB_RH_3945_année_2011-2012.xls'!ProtegeClasseur"
''' Masquer les onglets export HUS (gestor et abs), export N-1 (gestor et abs)
Sheets("export_HUS_abs").Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("export_HUS_gestor").Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("export_abs_N-1").Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("export_gestor_N-1").Select
ActiveWindow.SelectedSheets.Visible = False
''' Sauvegarder le TdB RH
ActiveWorkbook.Close True 'true = sauvegarde les changements
''' Fermer les classeurs d'export
Windows("Export_BO_ABS_HUS.xls").Activate
ActiveWorkbook.Close False
Windows("Export_BO_GESTOR_HUS.xls").Activate
ActiveWorkbook.Close False
Windows("Export_BO_ABS_nominatif.xls").Activate
ActiveWorkbook.Close False
Windows("Export_BO_GESTOR_nominatif.xls").Activate
ActiveWorkbook.Close False
End Sub
Le code fonctionne parfaitement.
J'aimerai donc pouvoir maintenant "boucler" pour faire tous les fichiers en une fois.
Chaque fichier est nommé de la même manière : TdB_RH_3945_année_2011-2012.xls
où 3945 correspond au numéro du pôle.
Toutes les actions doivent se faire sur chacun des pôles.
Le prochain à traiter est le 3580.
Y a t'il moyen de variabiliser cela ?
Contrainte supplémentaire : le chemin d'accès au fichier ...
- le pôle 3945 se situe dans le répertoire R:\ECHANGE\Tableau_de_bord_RH\3945 - PEDIATRIE
- le pôle 3580 se situe dans le répertoire R:\ECHANGE\Tableau_de_bord_RH\3580 - ODONTOLOGIE
Y a t il moyen de trouver le chemin en disant quelque chose du genre "contient 3580" ?
Merci d'avance !
edit : je voulais mettre en couleur les endroits à variabiliser mais ça fait planter les balises code du forum...
edit 2 : le synopsis si ça peut aider.. quoique.. :d
http://www.heberger-image.frhttp://www.heberger-image.fr
Dernière édition: