Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utiliser une boite de dialogue standard en VBA

15 réponses
Avatar
dOUdOU
Bonjour à tous,

J'utilise Excel 2003 et je commence à apprendre les macros, comment puis-je
en VBA, appeler une boite de dialogue standard existante dans l'application
dans un code VBA.

Exemple : dans ma macro je voudrais utiliser "la boite
Outils\Protection\Protéger la feuille.

Merci d'avance,
dOUdOU

10 réponses

1 2
Avatar
LSteph
Bonjour,

la réponse est dans la question ...existante dans l'application
Application. ...une boite de dialogue standard...
Application.Dialogs(
...appeler...par son nom > en VBA ...une contante xldialog

Application.Dialogs(xlDialogOpen).Show


J'utilise Excel 2003 et je commence à apprendre les macros
Comment trouver tout cela dans l'aide:

?
Aide de Visual Basic
Rechercher: Dialogs

Comment dénicher tous ces objets et collections, méthodes propriétés
dans le code:

dans lun module tu tapes application.
lorsque tu tapes ce point une liste apparaît tout ce qui est dedans
est consultable dans l'aide.

Sinon dans l'interface VBE
l'explorateur d'objets te permet de consulter toute cette hiérarchie

Cordialement.

--
lSteph


Bonjour à tous,

J'utilise Excel 2003 et je commence à apprendre les macros, comment puis-je
en VBA, appeler une boite de dialogue standard existante dans l'application
dans un code VBA.

Exemple : dans ma macro je voudrais utiliser "la boite
OutilsProtectionProtéger la feuille.

Merci d'avance,
dOUdOU


Avatar
LSteph
...bon mes petits camarades t'ont dispensé d'aller chercher celle que tu
voulais exactement.
cela ne t'empêchera pas , peut-être d'aller voir ces constantes.

;-)

@+

Bonjour,

la réponse est dans la question ...existante dans l'application
Application. ...une boite de dialogue standard...
Application.Dialogs(
...appeler...par son nom > en VBA ...une contante xldialog

Application.Dialogs(xlDialogOpen).Show


J'utilise Excel 2003 et je commence à apprendre les macros
Comment trouver tout cela dans l'aide:

?
Aide de Visual Basic
Rechercher: Dialogs

Comment dénicher tous ces objets et collections, méthodes propriétés
dans le code:

dans lun module tu tapes application.
lorsque tu tapes ce point une liste apparaît tout ce qui est dedans
est consultable dans l'aide.

Sinon dans l'interface VBE
l'explorateur d'objets te permet de consulter toute cette hiérarchie

Cordialement.

--
lSteph


Bonjour à tous,

J'utilise Excel 2003 et je commence à apprendre les macros, comment
puis-je en VBA, appeler une boite de dialogue standard existante dans
l'application dans un code VBA.

Exemple : dans ma macro je voudrais utiliser "la boite
OutilsProtectionProtéger la feuille.

Merci d'avance,
dOUdOU




Avatar
dOUdOU
Rebonjour,

Je me réponds à moi-même, car je ne sais pas bien utiliser les groupes
discussion,

et je veux vous remercier tous, je vais tester maintenant.

Cdlt




Bonjour à tous,

J'utilise Excel 2003 et je commence à apprendre les macros, comment puis-je
en VBA, appeler une boite de dialogue standard existante dans l'application
dans un code VBA.

Exemple : dans ma macro je voudrais utiliser "la boite
OutilsProtectionProtéger la feuille.

Merci d'avance,
dOUdOU


Avatar
dOUdOU
Hello,

Me revoilà, voici le code que j'ai fait, qui permet de protéger toutes les
feuilles de caldul d'un classeur, et qui fonctionne, pourriez-vous me dire si
c'est la bonne manière.

Sub Protege_feuille()
Dim wksPassword As String
wksPassword = Application.Dialogs(xlDialogProtectDocument).Show

For Each sh In Sheets
sh.Protect Password:=wksPassword, DrawingObjects:=True,
Contents:=True, Scenarios:=True
Next sh
End Sub

Merci
Cdlt


Bonjour à tous,

J'utilise Excel 2003 et je commence à apprendre les macros, comment puis-je
en VBA, appeler une boite de dialogue standard existante dans l'application
dans un code VBA.

Exemple : dans ma macro je voudrais utiliser "la boite
OutilsProtectionProtéger la feuille.

Merci d'avance,
dOUdOU


Avatar
Daniel.C
Non, "Application.Dialogs(xlDialogProtectDocument).Show" te permet
d'afficher la boîte de dialogue, pas de récupérer le mot de passe de
protection.
Pour protéger toutes les feuuilles avec un MDP (ici "toto"), fais :

For Each sh In Sheets
sh.Protect Password:="toto", DrawingObjects:=True, _
Contents:=True, Scenarios:=True
Next sh

Daniel
"dOUdOU" a écrit dans le message de news:

Hello,

Me revoilà, voici le code que j'ai fait, qui permet de protéger toutes les
feuilles de caldul d'un classeur, et qui fonctionne, pourriez-vous me dire
si
c'est la bonne manière.

Sub Protege_feuille()
Dim wksPassword As String
wksPassword = Application.Dialogs(xlDialogProtectDocument).Show

For Each sh In Sheets
sh.Protect Password:=wksPassword, DrawingObjects:=True,
Contents:=True, Scenarios:=True
Next sh
End Sub

Merci
Cdlt


Bonjour à tous,

J'utilise Excel 2003 et je commence à apprendre les macros, comment
puis-je
en VBA, appeler une boite de dialogue standard existante dans
l'application
dans un code VBA.

Exemple : dans ma macro je voudrais utiliser "la boite
OutilsProtectionProtéger la feuille.

Merci d'avance,
dOUdOU




Avatar
dOUdOU
Tu as raison, j'ai testé ce que j'ai mis dans le groupe de discussion et
voici le résultat des tests :

J'ai bien protéger toutes les feuilles de calcul avec ce code, le seul
problème c'est qu'il y avait qu'une seule feuille de protégée avec le MDP
saisi dans la boite standart
"Application.Dialogs(xlDialogProtectDocument).Show" et les autres avaient
après recherche ltous le même MDP soit : Vrai

Le premier code que j'avais fait ce rapprochait du tien, mais je voulais
utiliser une boite standard, le voici ci-dessous avec également le code pour
déprotéger :

Sub Protege_feuille()
Dim wksPassword As String
Dim wksPasswordConfirmed As String
wksPassword = InputBox("Enter password for the worksheet")

Start_again: wksPasswordConfirmed = InputBox("Confirmed password for the
worksheet")

If wksPassword = wksPasswordConfirmed Then

For Each sh In Sheets
'sh.Visible = True
sh.Protect Password:=wksPassword, DrawingObjects:=True, Contents:=True,
Scenarios:=True

Next sh

Else
MsgBox "The password different, recommencer."

GoTo Start_again
End If

End Sub

Sub DeProtege_feuille()

Dim wksPassword As String

wksPassword = InputBox("Enter password for the worksheet")

For Each sh In Sheets
'sh.Visible = True
sh.Unprotect Password:=wksPassword
Next sh

' MsgBox "The password for these cells has been changed." P.M :AFFICHE UN
MESSAGE

End Sub

Merci si vous avez d'autres idées pour utiliser du xlDialogs.

Cdt

dOudOU

Non, "Application.Dialogs(xlDialogProtectDocument).Show" te permet
d'afficher la boîte de dialogue, pas de récupérer le mot de passe de
protection.
Pour protéger toutes les feuuilles avec un MDP (ici "toto"), fais :

For Each sh In Sheets
sh.Protect Password:="toto", DrawingObjects:=True, _
Contents:=True, Scenarios:=True
Next sh

Daniel
"dOUdOU" a écrit dans le message de news:

Hello,

Me revoilà, voici le code que j'ai fait, qui permet de protéger toutes les
feuilles de caldul d'un classeur, et qui fonctionne, pourriez-vous me dire
si
c'est la bonne manière.

Sub Protege_feuille()
Dim wksPassword As String
wksPassword = Application.Dialogs(xlDialogProtectDocument).Show

For Each sh In Sheets
sh.Protect Password:=wksPassword, DrawingObjects:=True,
Contents:=True, Scenarios:=True
Next sh
End Sub

Merci
Cdlt


Bonjour à tous,

J'utilise Excel 2003 et je commence à apprendre les macros, comment
puis-je
en VBA, appeler une boite de dialogue standard existante dans
l'application
dans un code VBA.

Exemple : dans ma macro je voudrais utiliser "la boite
OutilsProtectionProtéger la feuille.

Merci d'avance,
dOUdOU









Avatar
jps
vont pas comprendre ces anglophones si tu leur parles butalement dans la
langue de Cambronne, doudou
jps

"dOUdOU" a écrit dans le message de news:

MsgBox "The password different, recommencer."


Avatar
dOUdOU

vont pas comprendre ces anglophones si tu leur parles butalement dans la
langue de Cambronne, doudou
jps

"dOUdOU" a écrit dans le message de news:

MsgBox "The password different, recommencer."







Avatar
dOUdOU
Cela ne m'avance pas beaucoup!
De toute façon il y a un bugg dans les 2 codes publiés dans InputBox()
lorsque je choisis le bouton "Annuler" cela renvoi la valeur "" et la boucle
s'exécute quand même en protégeant toutes les feuilles mais sans MDP, idem
pour le code que déprotèqe.

Cdlt
dOUdOU


vont pas comprendre ces anglophones si tu leur parles butalement dans la
langue de Cambronne, doudou
jps

"dOUdOU" a écrit dans le message de news:

MsgBox "The password different, recommencer."







Avatar
LSteph
Bonsoir,
un userform irait mieux qu'un inputbox mais bon...

Sub protAll()
Dim myPass As String, sh As Worksheet, tst As Boolean
Do
myPass = InputBox("Veuillez saisir un mot de passe")
If Len(myPass) = 0 Then _
MsgBox "Annulation ou saisie vide": Exit Sub
tst = Len(myPass) < 4
If tst Then MsgBox "minimum 4 chr"
Loop While tst
For Each sh In ActiveWorkbook.Sheets
sh.Protect myPass
Next
End Sub

'lSteph
(ce qui est un peu déconcertant lorsqu'on lance deux fois la macro
mais qu'on met un mot de passe différent) Ah ces protections!

Cela ne m'avance pas beaucoup!
De toute façon il y a un bugg dans les 2 codes publiés dans InputBox()
lorsque je choisis le bouton "Annuler" cela renvoi la valeur "" et la boucle
s'exécute quand même en protégeant toutes les feuilles mais sans MDP, idem
pour le code que déprotèqe.

Cdlt
dOUdOU


vont pas comprendre ces anglophones si tu leur parles butalement dans la
langue de Cambronne, doudou
jps

"dOUdOU" a écrit dans le message de news:

MsgBox "The password different, recommencer."








1 2