[VBA] Lecture seule et mot de passe

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 :

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
 

PMO2

XLDnaute Accro
Re : [VBA] Lecture seule et mot de passe

Bonjour,

Remplacez la ligne de code

Code:
    ''' 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"

par

Code:
    ''' 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", _
    WriteResPassword:="wxcvbn ", _
    IgnoreReadOnlyRecommended:=True
 

nat54

XLDnaute Barbatruc
Re : [VBA] Lecture seule et mot de passe

Re-bonjour,

Cela marchait très bien quand le fichier était nommé en toutes lettres.
Pour ma boucle j'ai dû variabiliser le nom du fichier qui se nomme désormais FicherTraite

Je n'arrive pas à ré-insérer le fait de ne pas devoir saisir le MdP à l'ouverture

Merci
 

nat54

XLDnaute Barbatruc
Re : [VBA] Lecture seule et mot de passe

Re,

Comme je n'ai pas de réponse et que je ne trouvais pas moi-même, j'ai "feinté" :d

Au lieu de mettre un mot de passe lecture seule, j'ai coché la case dans enregistrer sous / option générale / lecture seule recommandée.
Comme de toute manière mes onglets sont protégés ça ira très bien !
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 581
Messages
2 089 916
Membres
104 306
dernier inscrit
Bouhlal