J
jph
Guest
bonjour le forum,
nul en macro, j'ai malgré tout à peu près réussi (grace au site) à mettre bout à bout 3 macros:
La première macro suivante déprotège une feuille avec le mot de passe "***", puis réalise la macro fonctionnelle éventuelle
' et enfin la reprotège avec le même mot de passe. Ainsi de suite avec toutes les feuilles.
' ensuite on peut saisir le N° de dossier en cellule C11 qui deviendra ensuite le nom du fichier XLS
' la 3ème macro enregistre le fichier sous le nom : N° de dossier.XLS
' puis le fichier est fermé et reprotégé
le problème : mon fichier a bien le nom de la cellule C11, mais IL EST VIDE ?
je dois oublié d'activer les feuilles en quittant ? ou bien une grossière erreur de syntaxe. un grand merci à ceux qui voudront bien lire ce qui suit.
Sub nomdefichierautoprotect()
'
' La première macro suivante déprotège une feuille avec le mot de passe "***", puis réalise la macro fonctionnelle éventuelle
' et enfin la reprotège avec le même mot de passe. Ainsi de suite avec toutes les feuilles.
' ensuite on peut saisir le N° de dossier en cellule C11 qui deviendra ensuite le nom du fichier XLS
' la 3ème macro enregistre le fichier sous le nom : N° de dossier.XLS
' puis le fichier est fermé et reprotégé
' 1ère macro
Dim i As Byte
'Passer les feuilles les unes après les autres
For i = 1 To Sheets.Count
Sheets(1).Activate
' Deprotection de la feuille active, le mot de passe est "123"
With ActiveSheet
.EnableSelection = xlNoRestrictions
.Unprotect Password:="123"
End With
Next i
'2ème macro : saisie du N° de dossier, que je veux voir dans la cellule C11
Dim a As Variant 'déclare la variable a
a = InputBox("Tapez un N° de dossier") 'définit la variable a
If Range("C11") = "" Then 'si C11 est vide
Range("C11") = a
Else 'sinon
Range("C11") = ""
' 3ème macro : récupère le N° de dossier pour constituer le nom du fichier XLS
ThisWorkbook.SaveAs Filename:="C:\Documents and Settings\JPH\Mes Documents\essai excel\" & Sheets("Feuil1").Range("C11").Value & ".xls"
ThisWorkbook.Saved = True
' Reprotection de la feuille active
With ActiveSheet
.EnableSelection = xlNoSelection
.Protect Password:="123", Contents:=True, UserInterfaceOnly:=True, Scenarios:=True
End With
' fin de la deuxième macro : ferme le fichier avec son nouveau nom
ThisWorkbook.Close
End Sub
nul en macro, j'ai malgré tout à peu près réussi (grace au site) à mettre bout à bout 3 macros:
La première macro suivante déprotège une feuille avec le mot de passe "***", puis réalise la macro fonctionnelle éventuelle
' et enfin la reprotège avec le même mot de passe. Ainsi de suite avec toutes les feuilles.
' ensuite on peut saisir le N° de dossier en cellule C11 qui deviendra ensuite le nom du fichier XLS
' la 3ème macro enregistre le fichier sous le nom : N° de dossier.XLS
' puis le fichier est fermé et reprotégé
le problème : mon fichier a bien le nom de la cellule C11, mais IL EST VIDE ?
je dois oublié d'activer les feuilles en quittant ? ou bien une grossière erreur de syntaxe. un grand merci à ceux qui voudront bien lire ce qui suit.
Sub nomdefichierautoprotect()
'
' La première macro suivante déprotège une feuille avec le mot de passe "***", puis réalise la macro fonctionnelle éventuelle
' et enfin la reprotège avec le même mot de passe. Ainsi de suite avec toutes les feuilles.
' ensuite on peut saisir le N° de dossier en cellule C11 qui deviendra ensuite le nom du fichier XLS
' la 3ème macro enregistre le fichier sous le nom : N° de dossier.XLS
' puis le fichier est fermé et reprotégé
' 1ère macro
Dim i As Byte
'Passer les feuilles les unes après les autres
For i = 1 To Sheets.Count
Sheets(1).Activate
' Deprotection de la feuille active, le mot de passe est "123"
With ActiveSheet
.EnableSelection = xlNoRestrictions
.Unprotect Password:="123"
End With
Next i
'2ème macro : saisie du N° de dossier, que je veux voir dans la cellule C11
Dim a As Variant 'déclare la variable a
a = InputBox("Tapez un N° de dossier") 'définit la variable a
If Range("C11") = "" Then 'si C11 est vide
Range("C11") = a
Else 'sinon
Range("C11") = ""
' 3ème macro : récupère le N° de dossier pour constituer le nom du fichier XLS
ThisWorkbook.SaveAs Filename:="C:\Documents and Settings\JPH\Mes Documents\essai excel\" & Sheets("Feuil1").Range("C11").Value & ".xls"
ThisWorkbook.Saved = True
' Reprotection de la feuille active
With ActiveSheet
.EnableSelection = xlNoSelection
.Protect Password:="123", Contents:=True, UserInterfaceOnly:=True, Scenarios:=True
End With
' fin de la deuxième macro : ferme le fichier avec son nouveau nom
ThisWorkbook.Close
End Sub