Macro Excel Enregistrer sous et protéger copi
Week End
Messages postés
4
Statut
Membre
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, à toutes et à tous, je viens vou sexposer un problème.
En fait, j'ai créé un code vba sous excel 2003 permettant de sauvegarder une copie de mon formulaire sous un format ddmmyyy...comme suit:
Public Sub CommandButton1_Click()
Dim nom As String
nom = Range("C14") & "_" & Format(Date, "ddmmyyyy") & "_" & Format(Time, "hhmmss") & "_" & ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs Filename:="G:\Doc\Archives\" & Range("C14") & "_" & Format(Date, "ddmmyyyy") & "_" & Format(Time, "hhmmss") & "_" & ActiveWorkbook.Name
rep = MsgBox("La fiche est sauvegardée sous le nom : " & nom, vbYes + vbInformation, "Copie sauvegarde classeur")
End Sub
Jusqu'ici ça va. Seulement ce que j'ai du mal à faire c'est:
protéger la copie. Je m'explique:
c'est à dire
si la valeur de la cellule C3 du formulaire égale à Vincent protéger la copie avec un code genre vincent#2010
si la valeur de la celllule C3 du formulaire égale à Bruno protéger la copie avec un code genre bruno2010#
ainsi de suite ce, pour 8 destinataire.
LE but étant que nul ne puisse consulter la copie des autres.
Voilà, j'espères que c'ests faisable, si oui toute aide sera la bienvenue.
Merci
En fait, j'ai créé un code vba sous excel 2003 permettant de sauvegarder une copie de mon formulaire sous un format ddmmyyy...comme suit:
Public Sub CommandButton1_Click()
Dim nom As String
nom = Range("C14") & "_" & Format(Date, "ddmmyyyy") & "_" & Format(Time, "hhmmss") & "_" & ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs Filename:="G:\Doc\Archives\" & Range("C14") & "_" & Format(Date, "ddmmyyyy") & "_" & Format(Time, "hhmmss") & "_" & ActiveWorkbook.Name
rep = MsgBox("La fiche est sauvegardée sous le nom : " & nom, vbYes + vbInformation, "Copie sauvegarde classeur")
End Sub
Jusqu'ici ça va. Seulement ce que j'ai du mal à faire c'est:
protéger la copie. Je m'explique:
c'est à dire
si la valeur de la cellule C3 du formulaire égale à Vincent protéger la copie avec un code genre vincent#2010
si la valeur de la celllule C3 du formulaire égale à Bruno protéger la copie avec un code genre bruno2010#
ainsi de suite ce, pour 8 destinataire.
LE but étant que nul ne puisse consulter la copie des autres.
Voilà, j'espères que c'ests faisable, si oui toute aide sera la bienvenue.
Merci
A voir également:
- Macro Excel Enregistrer sous et protéger copi
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Word et excel gratuit - Guide
- Audacity enregistrer son pc - Guide
- Proteger cellule excel - Guide
- Liste déroulante excel - Guide
5 réponses
Bonjour,
Dans 'outils /options / sécurité' tu peux crypter ton fichier avec différentes méthodes. La solidité dépend de la méthode et de la longueur de la clé.
Exemple de code généré avec protection 'office standard' :
Tu peux aussi faire une compression avec mot de passe avec zip ou mieux avec rar (plus difficile à cracker).
Dans tous les cas le destinataire devra saisir le mot de passe.
Tout autre méthode par macro qui reconnait l'utilisateur est trop facilement outrepassable.
eric
Dans 'outils /options / sécurité' tu peux crypter ton fichier avec différentes méthodes. La solidité dépend de la méthode et de la longueur de la clé.
Exemple de code généré avec protection 'office standard' :
ActiveWorkbook.SetPasswordEncryptionOptions PasswordEncryptionProvider:="", _
PasswordEncryptionAlgorithm:="OfficeStandard", PasswordEncryptionKeyLength:=40 _
, PasswordEncryptionFileProperties:=False
ActiveWorkbook.Password = "2010#"
ActiveWorkbook.SaveAs Filename:="C:\Classeur1.xls", _
FileFormat:=xlNormal, Password:="2010#", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Tu peux aussi faire une compression avec mot de passe avec zip ou mieux avec rar (plus difficile à cracker).
Dans tous les cas le destinataire devra saisir le mot de passe.
Tout autre méthode par macro qui reconnait l'utilisateur est trop facilement outrepassable.
eric
Merci d'avoir répondu à ma question eriic. En fait, ce que je veux c'est protéger la copie. C'est à dire une fois le formulaire remplie, j'en fais une copie sauvegarde dans un dossier dont le chemin est spécifié dans mon code. Seulement pendant l'enregistrement, il faudrait que la copie se fasse avec un mot de passe variable selon le destinataire qui se trouve dans la cellule C3.
C'est à dire (je dis n'importe quoi) If range ("C3").Value= Vincent alors enregistrer SaveCopy avec le mot de passe vincent#2010
et ce, pour 8 destinaires.
Merci, ton idée me semble interressante.
C'est à dire (je dis n'importe quoi) If range ("C3").Value= Vincent alors enregistrer SaveCopy avec le mot de passe vincent#2010
et ce, pour 8 destinaires.
Merci, ton idée me semble interressante.
Re-Bonjour,
Criis, pour en revenir à ta réponse fort intéressante, j'aimerais savoir ou le mettre. Mais j'ai essayé ceci:
Dim nom As String
nom = Range("C14") & "_" & Format(Date, "ddmmyyyy") & "_" & Format(Time, "hhmmss") & "_" & ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs Filename:="G:\Doc\Archives\\" & Range("C14") & "_" & Format(Date, "ddmmyyyy") & "_" & Format(Time, "hhmmss") & "_" & ActiveWorkbook.Name
rep = MsgBox("La fiche est sauvegardée sous le nom : " & nom, vbYes + vbInformation, "Copie sauvegarde classeur")
ActiveWorkbook.SetPasswordEncryptionOptions PasswordEncryptionProvider:="", _
PasswordEncryptionAlgorithm:="OfficeStandard", PasswordEncryptionKeyLength:=40 _
, PasswordEncryptionFileProperties:=False
ActiveWorkbook.Password = "2010#"
ActiveWorkbook.SaveAs FileFormat:=xlNormal, Password:="2010#", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
Seulement, ce que je voulais faire c'est non pas appliquer cette protection et au formulaire et à sa copie, mais plutôt à la copie et seulement à la copie.
J'espères m'expliquer clairement.
Criis, pour en revenir à ta réponse fort intéressante, j'aimerais savoir ou le mettre. Mais j'ai essayé ceci:
Dim nom As String
nom = Range("C14") & "_" & Format(Date, "ddmmyyyy") & "_" & Format(Time, "hhmmss") & "_" & ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs Filename:="G:\Doc\Archives\\" & Range("C14") & "_" & Format(Date, "ddmmyyyy") & "_" & Format(Time, "hhmmss") & "_" & ActiveWorkbook.Name
rep = MsgBox("La fiche est sauvegardée sous le nom : " & nom, vbYes + vbInformation, "Copie sauvegarde classeur")
ActiveWorkbook.SetPasswordEncryptionOptions PasswordEncryptionProvider:="", _
PasswordEncryptionAlgorithm:="OfficeStandard", PasswordEncryptionKeyLength:=40 _
, PasswordEncryptionFileProperties:=False
ActiveWorkbook.Password = "2010#"
ActiveWorkbook.SaveAs FileFormat:=xlNormal, Password:="2010#", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
Seulement, ce que je voulais faire c'est non pas appliquer cette protection et au formulaire et à sa copie, mais plutôt à la copie et seulement à la copie.
J'espères m'expliquer clairement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question