nat54
XLDnaute Barbatruc
Bonjour,
J'ai crée des tableaux de bord (31 par mois), accessible uniquement en lecture seule à ses destinataires.
Actuellement je faisais 62 copier/coller par mois pour les renseigner (2 copier/coller par fichier Excel).
Tâche sans valeur ajoutée, je me suis décidée à automatiser tout ça en VBA.
J'ai réussi à créer mon petit code pour un fichier (il me restera à voir comment faire une boucle pour intégrer les autres) mais j'aimerai finaliser le 1er code.
Comment éviter de devoir saisir le mot de passe de lecture seule au lancement ?
Moi je dois avoir le fichier en écriture pour pouvoir y renseigner les bases de données.
J'ai un fichier Excel me servant à lancer la macro suivante :
Merci d'avance,
Nat54
J'ai crée des tableaux de bord (31 par mois), accessible uniquement en lecture seule à ses destinataires.
Actuellement je faisais 62 copier/coller par mois pour les renseigner (2 copier/coller par fichier Excel).
Tâche sans valeur ajoutée, je me suis décidée à automatiser tout ça en VBA.
J'ai réussi à créer mon petit code pour un fichier (il me restera à voir comment faire une boucle pour intégrer les autres) mais j'aimerai finaliser le 1er code.
Comment éviter de devoir saisir le mot de passe de lecture seule au lancement ?
Moi je dois avoir le fichier en écriture pour pouvoir y renseigner les bases de données.
J'ai un fichier Excel me servant à lancer la macro suivante :
Code:
Sub Construire_fichiers()
''' Test sur pôle 3945 (à voir plus tard pour une boucle)
''' Nécessite saisie mot de passe pour ne pas être en lecture seule (à voir comment automatiser ça avec wxcvbn comme MdP)
Workbooks.Open Filename:= _
"R:\ECHANGE\Tableau_de_bord_RH\3945 - PEDIATRIE\TdB_RH_3945_année_2011-2012.xls"
''' Déprotéger classeur
Application.Run "'TdB_RH_3945_année_2011-2012.xls'!DeProtegeClasseur"
''' 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:t12000").Select
Selection.Copy
Windows("TdB_RH_3945_année_2011-2012.xls").Activate
Sheets("export_gestor").Select
Range("A65536").End(xlUp).Select
ActiveSheet.Paste
''' Reprotéger classeur
Application.Run "'TdB_RH_3945_année_2011-2012.xls'!ProtegeClasseur"
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
Merci d'avance,
Nat54