Utiliser une boite de dialogue standard en VBA

Le
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
OutilsProtectionProtéger la feuille.

Merci d'avance,
dOUdOU
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #4853941
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


LSteph
Le #4853931
...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




dOUdOU
Le #4853881
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


dOUdOU
Le #4853861
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


Daniel.C
Le #4853841
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"
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




dOUdOU
Le #4853821
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"
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









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

"dOUdOU"
MsgBox "The password different, recommencer."


dOUdOU
Le #4853731

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

"dOUdOU"
MsgBox "The password different, recommencer."







dOUdOU
Le #4853721
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"
MsgBox "The password different, recommencer."







LSteph
Le #4853691
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"
MsgBox "The password different, recommencer."








Publicité
Poster une réponse
Anonyme