Enregistrer sous en lecture seule avec MDP

jmh1

XLDnaute Occasionnel
bonjour à tous

J'ai un code qui copie 2 onglets de mon classeur actif dans un nouveau classeur et l'enregistre sous un nouveau nom.

Mon problème est que je voudrai enregistrer ce nouveau classeur en lecture seule avec mot de passe.

Ci-dessous le code que j'utilise :

Code:
'Enregistrement du fichier

Enregistrement = ThisWorkbook.Sheets("Original").Range("B4")

Sheets(Array("datas", "Original")).Copy
sauv = Application.Dialogs(xlDialogSaveAs).Show(Enregistrement)
    If sauv = True Then
        ActiveWorkbook.Worksheets("Datas").Shapes.Range(Array("Button 1")).Select
        Selection.Delete
        
        ActiveWorkbook.Close True
        ThisWorkbook.Worksheets("Datas").Visible = False
        ThisWorkbook.Worksheets("Original").Visible = False
        
        'Raz du fichier Original ?
        RAZ = MsgBox("Le rapport a bien été enregistré" & Chr(10) & Chr(10) _
        & "Voulez-vous remettre le fichier original à zéro ?", _
        vbQuestion + vbYesNo, "Enregistrement")
    
        If RAZ = 6 Then Call ResetRpt
        ThisWorkbook.Close True
        
    Else
        ActiveWorkbook.Close False
        ThisWorkbook.Worksheets("Datas").Visible = False
        ThisWorkbook.Worksheets("Original").Visible = False
        Exit Sub
    End If

Quelqu'un pourrait-il me donner le code à ajouter à celui-ci ?

Merci d'avance
 

jmh1

XLDnaute Occasionnel
Re : Enregistrer sous en lecture seule avec MDP

Bonjour,

Effectivement il y a la méthode Saveas mais le problème est que je veux que l'utilisateur du fichier est la possibilité de l'enregistrer à l'emplacement de son choix d'où la nécessité de l'affichage de la boite de dialogue Enregistrer sous..

Et c'est là que je bloque.
 

Yaloo

XLDnaute Barbatruc
Re : Enregistrer sous en lecture seule avec MDP

Bonjour jmh1, le forum,

Tu peux coupler SaveAs et la macro ci-dessous, elle permet de choisir un répertoire, tu peux aussi "diriger" le choix pour que l'enregistrement ne soit fait que dans tel ou tel répertoire et aussi donner ou non la possibilité à l'utilisateur de créer ou non un répertoire :

VB:
Sub RechercheDossier()
 Dim oSh As Object, pIni As Object, pFile As Object
 Set oSh = CreateObject("Shell.Application")
 Set pIni = oSh.Namespace("C:\")
 On Error Resume Next
 '&H200 permet d'afficher ou non Création de dossier
 '&H4000  permet d'afficher ou non les fichiers dans les répertoires
 Set pFile = oSh.BrowseForFolder(0&, "Sélectionnez un dossier", &H1 + &H40 + &H200 + &H4000, pIni)
 If Not pFile Is Nothing Then
     MsgBox pFile.Items.Item.Path
 End If
 On Error GoTo 0
 Set pIni = Nothing
 Set pFile = Nothing
 Set oSh = Nothing
End Sub

A+

Martial
 

Discussions similaires

Réponses
8
Affichages
665

Statistiques des forums

Discussions
312 277
Messages
2 086 715
Membres
103 378
dernier inscrit
phdrouart