Apres avoir mis en pratique les infos trouvees dans ce=20
forum (et dans ses archives), j'ai un nouveau soucis.=20
excel plante et se ferme. Je suis sous Excel XP et Win XP.
Je voudrais tout simplement faire un bouton de commande=20
et proteger toutes les feuilles de mon classeur ensuite.=20
Mais cela ne fonctionne pas.
Voici mon code.
*********************
Module 1
---------------------
Public LaFeuille As Worksheet
Sub testouille()
Dim MotDePasseFeuille As String
Call InsererBoutonDeCommande
MsgBox ("coucou1")
For Each LaFeuille In Worksheets
MsgBox (LaFeuille.Name)
Sheets("" & LaFeuille.Name & "").Select
'Cells(1, 1).Select
'MsgBox ("J'y suis")
'Call ProtectionFeuillePassWord(LaFeuille.Name, "f")
' Sheets(LaFeuille.Name).Protect Password:=3D"f"
Next LaFeuille
ActiveWorkbook.Protect Password:=3D"c"
End Sub
---------------------
Module 2
---------------------
Sub InsererBoutonDeCommande()
Dim L As Double, T As Double, B As Object
NomBouton =3D "Mon_Beau_Bouton"
With ActiveSheet
L =3D .Range("I" & ActiveCell.Row).Left
T =3D .Range("I" & ActiveCell.Row).Top
With .OLEObjects.Add
(ClassType:=3D"Forms.CommandButton.1", _
Link:=3DFalse, DisplayAsIcon:=3DFalse, Left:=3DL, _
Top:=3DT, Width:=3D40, Height:=3D13.75)
With .Object
.Caption =3D CaptionBouton
.Font.Name =3D "Arial"
.Font.Size =3D 5
End With
.Name =3D NomBouton
.PrintObject =3D False
Ins=E9rerLeCodeDuBouton ActiveSheet.Name, .Name
End With
End With
End Sub
Sub Ins=E9rerLeCodeDuBouton(NomFeuille As String, NomBouton=20
As String)
Dim A As String
A =3D Worksheets(NomFeuille).CodeName
code =3D " Private Sub " & NomBouton & "_Click()" & vbCrLf
code =3D code & "msgbox (""Coucou"")" & vbCrLf
code =3D code & "End Sub"
Set B =3D ThisWorkbook.VBProject.VBComponents(A).CodeModule
With B
.AddFromString code
End With
Set B =3D Nothing
End Sub
---------------------
*********************
Il fallait bien sur lire (le reste c'etait des tests):
Sub testouille() Dim MotDePasseFeuille As String
Call InsererBoutonDeCommande
For Each LaFeuille In Worksheets Sheets(LaFeuille.Name).Protect Password:="f" Next LaFeuille
ActiveWorkbook.Protect Password:="c"
End Sub
Pierre Dumas
Il ne faut pas mettre la ligne suivante de ton module2 à cet endroit mais APRES avoir protege feuilles et classeur. InsérerLeCodeDuBouton ActiveSheet.Name, .Name
Ton module1 devient : Sub testouille() Dim MotDePasseFeuille As String
Call InsererBoutonDeCommande
For Each LaFeuille In Worksheets Sheets(LaFeuille.Name).Protect Password:="f" Next LaFeuille
En esperant que cela puisse servir a d'autres. Il faut mettre l'instruction qui cree le code en fin de programmation pour eviter les pertes de temps (presque UNE journee).
Pierre
-----Message d'origine----- Bonjour tout le monde,
Apres avoir mis en pratique les infos trouvees dans ce forum (et dans ses archives), j'ai un nouveau soucis. excel plante et se ferme. Je suis sous Excel XP et Win XP.
Je voudrais tout simplement faire un bouton de commande et proteger toutes les feuilles de mon classeur ensuite. Mais cela ne fonctionne pas.
Voici mon code. ********************* Module 1 --------------------- Public LaFeuille As Worksheet
Sub testouille() Dim MotDePasseFeuille As String
Call InsererBoutonDeCommande MsgBox ("coucou1")
For Each LaFeuille In Worksheets MsgBox (LaFeuille.Name) Sheets("" & LaFeuille.Name & "").Select 'Cells(1, 1).Select 'MsgBox ("J'y suis") 'Call ProtectionFeuillePassWord(LaFeuille.Name, "f") ' Sheets(LaFeuille.Name).Protect Password:="f" Next LaFeuille
ActiveWorkbook.Protect Password:="c"
End Sub ---------------------
Module 2 ---------------------
Sub InsererBoutonDeCommande()
Dim L As Double, T As Double, B As Object NomBouton = "Mon_Beau_Bouton"
With ActiveSheet L = .Range("I" & ActiveCell.Row).Left T = .Range("I" & ActiveCell.Row).Top With .OLEObjects.Add (ClassType:="Forms.CommandButton.1", _ Link:úlse, DisplayAsIcon:úlse, Left:=L, _ Top:=T, Width:@, Height:.75) With .Object .Caption = CaptionBouton .Font.Name = "Arial" .Font.Size = 5 End With .Name = NomBouton .PrintObject = False InsérerLeCodeDuBouton ActiveSheet.Name, .Name End With End With
End Sub
Sub InsérerLeCodeDuBouton(NomFeuille As String, NomBouton
As String)
Dim A As String
A = Worksheets(NomFeuille).CodeName
code = " Private Sub " & NomBouton & "_Click()" & vbCrLf code = code & "msgbox (""Coucou"")" & vbCrLf code = code & "End Sub" Set B = ThisWorkbook.VBProject.VBComponents(A).CodeModule With B .AddFromString code End With Set B = Nothing
End Sub --------------------- *********************
Merci d'avance.
Pierre
.
Il ne faut pas mettre la ligne suivante de ton module2 à
cet endroit mais APRES avoir protege feuilles et classeur.
InsérerLeCodeDuBouton ActiveSheet.Name, .Name
Ton module1 devient :
Sub testouille()
Dim MotDePasseFeuille As String
Call InsererBoutonDeCommande
For Each LaFeuille In Worksheets
Sheets(LaFeuille.Name).Protect Password:="f"
Next LaFeuille
En esperant que cela puisse servir a d'autres.
Il faut mettre l'instruction qui cree le code en fin de
programmation pour eviter les pertes de temps (presque
UNE journee).
Pierre
-----Message d'origine-----
Bonjour tout le monde,
Apres avoir mis en pratique les infos trouvees dans ce
forum (et dans ses archives), j'ai un nouveau soucis.
excel plante et se ferme. Je suis sous Excel XP et Win
XP.
Je voudrais tout simplement faire un bouton de commande
et proteger toutes les feuilles de mon classeur ensuite.
Mais cela ne fonctionne pas.
Voici mon code.
*********************
Module 1
---------------------
Public LaFeuille As Worksheet
Sub testouille()
Dim MotDePasseFeuille As String
Call InsererBoutonDeCommande
MsgBox ("coucou1")
For Each LaFeuille In Worksheets
MsgBox (LaFeuille.Name)
Sheets("" & LaFeuille.Name & "").Select
'Cells(1, 1).Select
'MsgBox ("J'y suis")
'Call ProtectionFeuillePassWord(LaFeuille.Name, "f")
' Sheets(LaFeuille.Name).Protect Password:="f"
Next LaFeuille
ActiveWorkbook.Protect Password:="c"
End Sub
---------------------
Module 2
---------------------
Sub InsererBoutonDeCommande()
Dim L As Double, T As Double, B As Object
NomBouton = "Mon_Beau_Bouton"
With ActiveSheet
L = .Range("I" & ActiveCell.Row).Left
T = .Range("I" & ActiveCell.Row).Top
With .OLEObjects.Add
(ClassType:="Forms.CommandButton.1", _
Link:=False, DisplayAsIcon:=False, Left:=L, _
Top:=T, Width:=40, Height:=13.75)
With .Object
.Caption = CaptionBouton
.Font.Name = "Arial"
.Font.Size = 5
End With
.Name = NomBouton
.PrintObject = False
InsérerLeCodeDuBouton ActiveSheet.Name, .Name
End With
End With
End Sub
Sub InsérerLeCodeDuBouton(NomFeuille As String,
NomBouton
As String)
Dim A As String
A = Worksheets(NomFeuille).CodeName
code = " Private Sub " & NomBouton & "_Click()" & vbCrLf
code = code & "msgbox (""Coucou"")" & vbCrLf
code = code & "End Sub"
Set B = ThisWorkbook.VBProject.VBComponents(A).CodeModule
With B
.AddFromString code
End With
Set B = Nothing
End Sub
---------------------
*********************
Il ne faut pas mettre la ligne suivante de ton module2 à cet endroit mais APRES avoir protege feuilles et classeur. InsérerLeCodeDuBouton ActiveSheet.Name, .Name
Ton module1 devient : Sub testouille() Dim MotDePasseFeuille As String
Call InsererBoutonDeCommande
For Each LaFeuille In Worksheets Sheets(LaFeuille.Name).Protect Password:="f" Next LaFeuille
En esperant que cela puisse servir a d'autres. Il faut mettre l'instruction qui cree le code en fin de programmation pour eviter les pertes de temps (presque UNE journee).
Pierre
-----Message d'origine----- Bonjour tout le monde,
Apres avoir mis en pratique les infos trouvees dans ce forum (et dans ses archives), j'ai un nouveau soucis. excel plante et se ferme. Je suis sous Excel XP et Win XP.
Je voudrais tout simplement faire un bouton de commande et proteger toutes les feuilles de mon classeur ensuite. Mais cela ne fonctionne pas.
Voici mon code. ********************* Module 1 --------------------- Public LaFeuille As Worksheet
Sub testouille() Dim MotDePasseFeuille As String
Call InsererBoutonDeCommande MsgBox ("coucou1")
For Each LaFeuille In Worksheets MsgBox (LaFeuille.Name) Sheets("" & LaFeuille.Name & "").Select 'Cells(1, 1).Select 'MsgBox ("J'y suis") 'Call ProtectionFeuillePassWord(LaFeuille.Name, "f") ' Sheets(LaFeuille.Name).Protect Password:="f" Next LaFeuille
ActiveWorkbook.Protect Password:="c"
End Sub ---------------------
Module 2 ---------------------
Sub InsererBoutonDeCommande()
Dim L As Double, T As Double, B As Object NomBouton = "Mon_Beau_Bouton"
With ActiveSheet L = .Range("I" & ActiveCell.Row).Left T = .Range("I" & ActiveCell.Row).Top With .OLEObjects.Add (ClassType:="Forms.CommandButton.1", _ Link:úlse, DisplayAsIcon:úlse, Left:=L, _ Top:=T, Width:@, Height:.75) With .Object .Caption = CaptionBouton .Font.Name = "Arial" .Font.Size = 5 End With .Name = NomBouton .PrintObject = False InsérerLeCodeDuBouton ActiveSheet.Name, .Name End With End With
End Sub
Sub InsérerLeCodeDuBouton(NomFeuille As String, NomBouton
As String)
Dim A As String
A = Worksheets(NomFeuille).CodeName
code = " Private Sub " & NomBouton & "_Click()" & vbCrLf code = code & "msgbox (""Coucou"")" & vbCrLf code = code & "End Sub" Set B = ThisWorkbook.VBProject.VBComponents(A).CodeModule With B .AddFromString code End With Set B = Nothing
End Sub --------------------- *********************
Merci d'avance.
Pierre
.
Denis Michon
Bonjour Pierre,
Ceci fonctionne bien... mais comme tu ne dis pas ce que sont tes objectifs ... difficile de savoir !
'--------------------------- Sub testouille()
Dim MotDePasseFeuille As String
InsererBoutonDeCommande
For Each LaFeuille In Worksheets With LaFeuille .Protect Password:="f" End With Next LaFeuille
ActiveWorkbook.Protect Password:="c"
End Sub '---------------------------
Salutations!
"Pierre Dumas" a écrit dans le message de news:029701c3a8fa$31668ac0$ Bonjour tout le monde,
Apres avoir mis en pratique les infos trouvees dans ce forum (et dans ses archives), j'ai un nouveau soucis. excel plante et se ferme. Je suis sous Excel XP et Win XP.
Je voudrais tout simplement faire un bouton de commande et proteger toutes les feuilles de mon classeur ensuite. Mais cela ne fonctionne pas.
Voici mon code. ********************* Module 1 --------------------- Public LaFeuille As Worksheet
Sub testouille() Dim MotDePasseFeuille As String
Call InsererBoutonDeCommande MsgBox ("coucou1")
For Each LaFeuille In Worksheets MsgBox (LaFeuille.Name) Sheets("" & LaFeuille.Name & "").Select 'Cells(1, 1).Select 'MsgBox ("J'y suis") 'Call ProtectionFeuillePassWord(LaFeuille.Name, "f") ' Sheets(LaFeuille.Name).Protect Password:="f" Next LaFeuille
ActiveWorkbook.Protect Password:="c"
End Sub ---------------------
Module 2 ---------------------
Sub InsererBoutonDeCommande()
Dim L As Double, T As Double, B As Object NomBouton = "Mon_Beau_Bouton"
With ActiveSheet L = .Range("I" & ActiveCell.Row).Left T = .Range("I" & ActiveCell.Row).Top With .OLEObjects.Add (ClassType:="Forms.CommandButton.1", _ Link:úlse, DisplayAsIcon:úlse, Left:=L, _ Top:=T, Width:@, Height:.75) With .Object .Caption = CaptionBouton .Font.Name = "Arial" .Font.Size = 5 End With .Name = NomBouton .PrintObject = False InsérerLeCodeDuBouton ActiveSheet.Name, .Name End With End With
End Sub
Sub InsérerLeCodeDuBouton(NomFeuille As String, NomBouton As String)
Dim A As String
A = Worksheets(NomFeuille).CodeName
code = " Private Sub " & NomBouton & "_Click()" & vbCrLf code = code & "msgbox (""Coucou"")" & vbCrLf code = code & "End Sub" Set B = ThisWorkbook.VBProject.VBComponents(A).CodeModule With B .AddFromString code End With Set B = Nothing
End Sub --------------------- *********************
Merci d'avance.
Pierre
Bonjour Pierre,
Ceci fonctionne bien... mais comme tu ne dis pas ce que sont tes objectifs ... difficile de savoir !
'---------------------------
Sub testouille()
Dim MotDePasseFeuille As String
InsererBoutonDeCommande
For Each LaFeuille In Worksheets
With LaFeuille
.Protect Password:="f"
End With
Next LaFeuille
ActiveWorkbook.Protect Password:="c"
End Sub
'---------------------------
Salutations!
"Pierre Dumas" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:029701c3a8fa$31668ac0$a001280a@phx.gbl...
Bonjour tout le monde,
Apres avoir mis en pratique les infos trouvees dans ce
forum (et dans ses archives), j'ai un nouveau soucis.
excel plante et se ferme. Je suis sous Excel XP et Win XP.
Je voudrais tout simplement faire un bouton de commande
et proteger toutes les feuilles de mon classeur ensuite.
Mais cela ne fonctionne pas.
Voici mon code.
*********************
Module 1
---------------------
Public LaFeuille As Worksheet
Sub testouille()
Dim MotDePasseFeuille As String
Call InsererBoutonDeCommande
MsgBox ("coucou1")
For Each LaFeuille In Worksheets
MsgBox (LaFeuille.Name)
Sheets("" & LaFeuille.Name & "").Select
'Cells(1, 1).Select
'MsgBox ("J'y suis")
'Call ProtectionFeuillePassWord(LaFeuille.Name, "f")
' Sheets(LaFeuille.Name).Protect Password:="f"
Next LaFeuille
ActiveWorkbook.Protect Password:="c"
End Sub
---------------------
Module 2
---------------------
Sub InsererBoutonDeCommande()
Dim L As Double, T As Double, B As Object
NomBouton = "Mon_Beau_Bouton"
With ActiveSheet
L = .Range("I" & ActiveCell.Row).Left
T = .Range("I" & ActiveCell.Row).Top
With .OLEObjects.Add
(ClassType:="Forms.CommandButton.1", _
Link:úlse, DisplayAsIcon:úlse, Left:=L, _
Top:=T, Width:@, Height:.75)
With .Object
.Caption = CaptionBouton
.Font.Name = "Arial"
.Font.Size = 5
End With
.Name = NomBouton
.PrintObject = False
InsérerLeCodeDuBouton ActiveSheet.Name, .Name
End With
End With
End Sub
Sub InsérerLeCodeDuBouton(NomFeuille As String, NomBouton
As String)
Dim A As String
A = Worksheets(NomFeuille).CodeName
code = " Private Sub " & NomBouton & "_Click()" & vbCrLf
code = code & "msgbox (""Coucou"")" & vbCrLf
code = code & "End Sub"
Set B = ThisWorkbook.VBProject.VBComponents(A).CodeModule
With B
.AddFromString code
End With
Set B = Nothing
End Sub
---------------------
*********************
Ceci fonctionne bien... mais comme tu ne dis pas ce que sont tes objectifs ... difficile de savoir !
'--------------------------- Sub testouille()
Dim MotDePasseFeuille As String
InsererBoutonDeCommande
For Each LaFeuille In Worksheets With LaFeuille .Protect Password:="f" End With Next LaFeuille
ActiveWorkbook.Protect Password:="c"
End Sub '---------------------------
Salutations!
"Pierre Dumas" a écrit dans le message de news:029701c3a8fa$31668ac0$ Bonjour tout le monde,
Apres avoir mis en pratique les infos trouvees dans ce forum (et dans ses archives), j'ai un nouveau soucis. excel plante et se ferme. Je suis sous Excel XP et Win XP.
Je voudrais tout simplement faire un bouton de commande et proteger toutes les feuilles de mon classeur ensuite. Mais cela ne fonctionne pas.
Voici mon code. ********************* Module 1 --------------------- Public LaFeuille As Worksheet
Sub testouille() Dim MotDePasseFeuille As String
Call InsererBoutonDeCommande MsgBox ("coucou1")
For Each LaFeuille In Worksheets MsgBox (LaFeuille.Name) Sheets("" & LaFeuille.Name & "").Select 'Cells(1, 1).Select 'MsgBox ("J'y suis") 'Call ProtectionFeuillePassWord(LaFeuille.Name, "f") ' Sheets(LaFeuille.Name).Protect Password:="f" Next LaFeuille
ActiveWorkbook.Protect Password:="c"
End Sub ---------------------
Module 2 ---------------------
Sub InsererBoutonDeCommande()
Dim L As Double, T As Double, B As Object NomBouton = "Mon_Beau_Bouton"
With ActiveSheet L = .Range("I" & ActiveCell.Row).Left T = .Range("I" & ActiveCell.Row).Top With .OLEObjects.Add (ClassType:="Forms.CommandButton.1", _ Link:úlse, DisplayAsIcon:úlse, Left:=L, _ Top:=T, Width:@, Height:.75) With .Object .Caption = CaptionBouton .Font.Name = "Arial" .Font.Size = 5 End With .Name = NomBouton .PrintObject = False InsérerLeCodeDuBouton ActiveSheet.Name, .Name End With End With
End Sub
Sub InsérerLeCodeDuBouton(NomFeuille As String, NomBouton As String)
Dim A As String
A = Worksheets(NomFeuille).CodeName
code = " Private Sub " & NomBouton & "_Click()" & vbCrLf code = code & "msgbox (""Coucou"")" & vbCrLf code = code & "End Sub" Set B = ThisWorkbook.VBProject.VBComponents(A).CodeModule With B .AddFromString code End With Set B = Nothing
End Sub --------------------- *********************