Boite de dialogue, dans feuille ou en module visual ?
4 réponses
Alain NEWS
Bonjour,
Je viens de passer à XP et j'utilise des macros ayant une
feuille qui décrit la boite de dialogue pour saisie, choix
de plage, ...
Ca fonctionne bien, mais j'ai découvert sous visual basic
qu'il existait des UserForm.
J'ai créé un userForm de même contrôle que la feuille
initiale mais comment l'utiliser ?
pour préciser :
avant avec la feuille :
With ActiveWorkbook.DialogSheets("DialHiér")
.Show
PlageHiér = .EditBoxes("PlageTravail").Text
ChoixMat = .CheckBoxes("ChoixMatrice")
End With
Maintenanu avec le UserForm ? j'ai essayé en lisant l'aide :
load (DialHiérXp)
DialHiérXp.show
PlageHiér = DialHiérXp.EditBoxes("PlageTravail").Text
ChoixMat = DialHiérXp.CheckBoxes("ChoixMatrice")
Mais il ne reconnait pas DialHiérXp.EditBoxes
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Clément Marcotte
Bonjour,
Il faut que le nom de ton UserForm (propriété Name) soit DialHiérXP De plus, tu n'as pas besoin de load(DialHiérXP), le show suffit.
P.S Dans la fenêtre des propriété, assure toi que tu changes bien le nom de l'UserForm et pas celui d'un contrôle.
"Alain NEWS" a écrit dans le message de news:3f9259d0$0$27044$
Bonjour,
Je viens de passer à XP et j'utilise des macros ayant une feuille qui décrit la boite de dialogue pour saisie, choix de plage, ...
Ca fonctionne bien, mais j'ai découvert sous visual basic qu'il existait des UserForm.
J'ai créé un userForm de même contrôle que la feuille initiale mais comment l'utiliser ?
pour préciser : avant avec la feuille : With ActiveWorkbook.DialogSheets("DialHiér") .Show PlageHiér = .EditBoxes("PlageTravail").Text ChoixMat = .CheckBoxes("ChoixMatrice") End With
Maintenanu avec le UserForm ? j'ai essayé en lisant l'aide : load (DialHiérXp) DialHiérXp.show PlageHiér = DialHiérXp.EditBoxes("PlageTravail").Text ChoixMat = DialHiérXp.CheckBoxes("ChoixMatrice") Mais il ne reconnait pas DialHiérXp.EditBoxes
Merci de votre aide.
-- Otez la cle pour me répondre.
Bonjour,
Il faut que le nom de ton UserForm (propriété Name) soit DialHiérXP
De plus, tu n'as pas besoin de load(DialHiérXP), le show suffit.
P.S Dans la fenêtre des propriété, assure toi que tu changes bien le
nom de l'UserForm et pas celui d'un contrôle.
"Alain NEWS" <alain.clenews@free.fr> a écrit dans le message de
news:3f9259d0$0$27044$626a54ce@news.free.fr...
Bonjour,
Je viens de passer à XP et j'utilise des macros ayant une
feuille qui décrit la boite de dialogue pour saisie, choix
de plage, ...
Ca fonctionne bien, mais j'ai découvert sous visual basic
qu'il existait des UserForm.
J'ai créé un userForm de même contrôle que la feuille
initiale mais comment l'utiliser ?
pour préciser :
avant avec la feuille :
With ActiveWorkbook.DialogSheets("DialHiér")
.Show
PlageHiér = .EditBoxes("PlageTravail").Text
ChoixMat = .CheckBoxes("ChoixMatrice")
End With
Maintenanu avec le UserForm ? j'ai essayé en lisant l'aide :
load (DialHiérXp)
DialHiérXp.show
PlageHiér = DialHiérXp.EditBoxes("PlageTravail").Text
ChoixMat = DialHiérXp.CheckBoxes("ChoixMatrice")
Mais il ne reconnait pas DialHiérXp.EditBoxes
Il faut que le nom de ton UserForm (propriété Name) soit DialHiérXP De plus, tu n'as pas besoin de load(DialHiérXP), le show suffit.
P.S Dans la fenêtre des propriété, assure toi que tu changes bien le nom de l'UserForm et pas celui d'un contrôle.
"Alain NEWS" a écrit dans le message de news:3f9259d0$0$27044$
Bonjour,
Je viens de passer à XP et j'utilise des macros ayant une feuille qui décrit la boite de dialogue pour saisie, choix de plage, ...
Ca fonctionne bien, mais j'ai découvert sous visual basic qu'il existait des UserForm.
J'ai créé un userForm de même contrôle que la feuille initiale mais comment l'utiliser ?
pour préciser : avant avec la feuille : With ActiveWorkbook.DialogSheets("DialHiér") .Show PlageHiér = .EditBoxes("PlageTravail").Text ChoixMat = .CheckBoxes("ChoixMatrice") End With
Maintenanu avec le UserForm ? j'ai essayé en lisant l'aide : load (DialHiérXp) DialHiérXp.show PlageHiér = DialHiérXp.EditBoxes("PlageTravail").Text ChoixMat = DialHiérXp.CheckBoxes("ChoixMatrice") Mais il ne reconnait pas DialHiérXp.EditBoxes
Merci de votre aide.
-- Otez la cle pour me répondre.
Alain NEWS
Clément Marcotte wrote:
Bonjour,
Il faut que le nom de ton UserForm (propriété Name) soit DialHiérXP De plus, tu n'as pas besoin de load(DialHiérXP), le show suffit.
P.S Dans la fenêtre des propriété, assure toi que tu changes bien le nom de l'UserForm et pas celui d'un contrôle.
Cela marche ! aprés optimisation j'ai
With DialHiérXP .Show PlageHiér = .PlageTravail.Text ChoixMat = .choixMatrice End With
Y-a encore un petit pb :-(
J'ai mis un contrôle "OK" et un "annuler" dans la boite mais je sais pas comment les gérer. Pour que le traitement s'exécute je dois cliquer sur fermer fenêtre. C'est pas top ;-( L'objectif est qu'un clic sur "OK" au "annuler" rende la main au programme qui détectant l'annuler ...
Encore merci.
"Alain NEWS" a écrit dans le message de news:3f9259d0$0$27044$
Bonjour,
[...]
Merci de votre aide.
-- Otez la cle pour me répondre.
Clément Marcotte wrote:
Bonjour,
Il faut que le nom de ton UserForm (propriété Name) soit DialHiérXP
De plus, tu n'as pas besoin de load(DialHiérXP), le show suffit.
P.S Dans la fenêtre des propriété, assure toi que tu changes bien le
nom de l'UserForm et pas celui d'un contrôle.
Cela marche ! aprés optimisation j'ai
With DialHiérXP
.Show
PlageHiér = .PlageTravail.Text
ChoixMat = .choixMatrice
End With
Y-a encore un petit pb :-(
J'ai mis un contrôle "OK" et un "annuler" dans la boite mais
je sais pas comment les gérer. Pour que le traitement
s'exécute je dois cliquer sur fermer fenêtre. C'est pas top ;-(
L'objectif est qu'un clic sur "OK" au "annuler" rende la
main au programme qui détectant l'annuler ...
Encore merci.
"Alain NEWS" <alain.clenews@free.fr> a écrit dans le message de
news:3f9259d0$0$27044$626a54ce@news.free.fr...
Il faut que le nom de ton UserForm (propriété Name) soit DialHiérXP De plus, tu n'as pas besoin de load(DialHiérXP), le show suffit.
P.S Dans la fenêtre des propriété, assure toi que tu changes bien le nom de l'UserForm et pas celui d'un contrôle.
Cela marche ! aprés optimisation j'ai
With DialHiérXP .Show PlageHiér = .PlageTravail.Text ChoixMat = .choixMatrice End With
Y-a encore un petit pb :-(
J'ai mis un contrôle "OK" et un "annuler" dans la boite mais je sais pas comment les gérer. Pour que le traitement s'exécute je dois cliquer sur fermer fenêtre. C'est pas top ;-( L'objectif est qu'un clic sur "OK" au "annuler" rende la main au programme qui détectant l'annuler ...
Encore merci.
"Alain NEWS" a écrit dans le message de news:3f9259d0$0$27044$
Bonjour,
[...]
Merci de votre aide.
-- Otez la cle pour me répondre.
Clément Marcotte
Bonjour,
Dans l'hypothèse où ton bouton OK serait pour poursuivre la macro et ton bouton Annuler serait pour arrêter la macro, sans terminer le l'exécution, et que les noms des boutons soient OK et Annuler. (En fait les noms peuvent être différents des intitulés (caption)).
Dans le module de l'UserForm:
Pour le bouton OK
(En supposant que tu aies une sub qui ne fasse qu'afficher l'UserForm, et une autre sub qui fassse les traitements)
private sub OK_Click() unload DialHiérXP le nom de l'autre sub end sub
Pour le bouton annuler
private sub annuler_click() unload DialHiérXP end end sub
"Alain NEWS" a écrit dans le message de news:3f92c630$0$10418$
Clément Marcotte wrote:
Bonjour,
Il faut que le nom de ton UserForm (propriété Name) soit DialHiérXP
De plus, tu n'as pas besoin de load(DialHiérXP), le show suffit.
P.S Dans la fenêtre des propriété, assure toi que tu changes bien le
nom de l'UserForm et pas celui d'un contrôle.
Cela marche ! aprés optimisation j'ai
With DialHiérXP .Show PlageHiér = .PlageTravail.Text ChoixMat = .choixMatrice End With
Y-a encore un petit pb :-(
J'ai mis un contrôle "OK" et un "annuler" dans la boite mais je sais pas comment les gérer. Pour que le traitement s'exécute je dois cliquer sur fermer fenêtre. C'est pas top ;-( L'objectif est qu'un clic sur "OK" au "annuler" rende la main au programme qui détectant l'annuler ...
Encore merci.
"Alain NEWS" a écrit dans le message de news:3f9259d0$0$27044$
Bonjour,
[...]
Merci de votre aide.
-- Otez la cle pour me répondre.
Bonjour,
Dans l'hypothèse où ton bouton OK serait pour poursuivre la macro et
ton bouton Annuler serait pour arrêter la macro, sans terminer le
l'exécution, et que les noms des boutons soient OK et Annuler. (En
fait les noms peuvent être différents des intitulés (caption)).
Dans le module de l'UserForm:
Pour le bouton OK
(En supposant que tu aies une sub qui ne fasse qu'afficher l'UserForm,
et une autre sub qui fassse les traitements)
private sub OK_Click()
unload DialHiérXP
le nom de l'autre sub
end sub
Pour le bouton annuler
private sub annuler_click()
unload DialHiérXP
end
end sub
"Alain NEWS" <alain.clenews@free.fr> a écrit dans le message de
news:3f92c630$0$10418$626a54ce@news.free.fr...
Clément Marcotte wrote:
Bonjour,
Il faut que le nom de ton UserForm (propriété Name) soit
DialHiérXP
De plus, tu n'as pas besoin de load(DialHiérXP), le show suffit.
P.S Dans la fenêtre des propriété, assure toi que tu changes bien
le
nom de l'UserForm et pas celui d'un contrôle.
Cela marche ! aprés optimisation j'ai
With DialHiérXP
.Show
PlageHiér = .PlageTravail.Text
ChoixMat = .choixMatrice
End With
Y-a encore un petit pb :-(
J'ai mis un contrôle "OK" et un "annuler" dans la boite mais
je sais pas comment les gérer. Pour que le traitement
s'exécute je dois cliquer sur fermer fenêtre. C'est pas top ;-(
L'objectif est qu'un clic sur "OK" au "annuler" rende la
main au programme qui détectant l'annuler ...
Encore merci.
"Alain NEWS" <alain.clenews@free.fr> a écrit dans le message de
news:3f9259d0$0$27044$626a54ce@news.free.fr...
Dans l'hypothèse où ton bouton OK serait pour poursuivre la macro et ton bouton Annuler serait pour arrêter la macro, sans terminer le l'exécution, et que les noms des boutons soient OK et Annuler. (En fait les noms peuvent être différents des intitulés (caption)).
Dans le module de l'UserForm:
Pour le bouton OK
(En supposant que tu aies une sub qui ne fasse qu'afficher l'UserForm, et une autre sub qui fassse les traitements)
private sub OK_Click() unload DialHiérXP le nom de l'autre sub end sub
Pour le bouton annuler
private sub annuler_click() unload DialHiérXP end end sub
"Alain NEWS" a écrit dans le message de news:3f92c630$0$10418$
Clément Marcotte wrote:
Bonjour,
Il faut que le nom de ton UserForm (propriété Name) soit DialHiérXP
De plus, tu n'as pas besoin de load(DialHiérXP), le show suffit.
P.S Dans la fenêtre des propriété, assure toi que tu changes bien le
nom de l'UserForm et pas celui d'un contrôle.
Cela marche ! aprés optimisation j'ai
With DialHiérXP .Show PlageHiér = .PlageTravail.Text ChoixMat = .choixMatrice End With
Y-a encore un petit pb :-(
J'ai mis un contrôle "OK" et un "annuler" dans la boite mais je sais pas comment les gérer. Pour que le traitement s'exécute je dois cliquer sur fermer fenêtre. C'est pas top ;-( L'objectif est qu'un clic sur "OK" au "annuler" rende la main au programme qui détectant l'annuler ...
Encore merci.
"Alain NEWS" a écrit dans le message de news:3f9259d0$0$27044$
Bonjour,
[...]
Merci de votre aide.
-- Otez la cle pour me répondre.
Alain NEWS
Pfou, Merci Clément c'est du on-line :-)
Je vais essayer demain.
Mais en suppoant que l'appel soit dans le module et que le OK indique de poursuivre à la ligne suivante ?
Merci.
Clément Marcotte wrote:
Bonjour,
Dans l'hypothèse où ton bouton OK serait pour poursuivre la macro et ton bouton Annuler serait pour arrêter la macro, sans terminer le l'exécution, et que les noms des boutons soient OK et Annuler. (En fait les noms peuvent être différents des intitulés (caption)).
Dans le module de l'UserForm:
Pour le bouton OK
(En supposant que tu aies une sub qui ne fasse qu'afficher l'UserForm, et une autre sub qui fassse les traitements)
private sub OK_Click() unload DialHiérXP le nom de l'autre sub end sub
Pour le bouton annuler
private sub annuler_click() unload DialHiérXP end end sub
"Alain NEWS" a écrit dans le message de news:3f92c630$0$10418$
Clément Marcotte wrote:
Bonjour,
Il faut que le nom de ton UserForm (propriété Name) soit
DialHiérXP
De plus, tu n'as pas besoin de load(DialHiérXP), le show suffit.
P.S Dans la fenêtre des propriété, assure toi que tu changes bien
le
nom de l'UserForm et pas celui d'un contrôle.
Cela marche ! aprés optimisation j'ai With DialHiérXP .Show PlageHiér = .PlageTravail.Text ChoixMat = .choixMatrice End With
Y-a encore un petit pb :-(
J'ai mis un contrôle "OK" et un "annuler" dans la boite mais je sais pas comment les gérer. Pour que le traitement s'exécute je dois cliquer sur fermer fenêtre. C'est pas top ;-( L'objectif est qu'un clic sur "OK" au "annuler" rende la main au programme qui détectant l'annuler ...
Encore merci.
"Alain NEWS" a écrit dans le message de news:3f9259d0$0$27044$
Bonjour,
[...]
Merci de votre aide.
-- Otez la cle pour me répondre.
-- Otez la cle pour me répondre.
Pfou, Merci Clément c'est du on-line :-)
Je vais essayer demain.
Mais en suppoant que l'appel soit dans le module et que le
OK indique de poursuivre à la ligne suivante ?
Merci.
Clément Marcotte wrote:
Bonjour,
Dans l'hypothèse où ton bouton OK serait pour poursuivre la macro et
ton bouton Annuler serait pour arrêter la macro, sans terminer le
l'exécution, et que les noms des boutons soient OK et Annuler. (En
fait les noms peuvent être différents des intitulés (caption)).
Dans le module de l'UserForm:
Pour le bouton OK
(En supposant que tu aies une sub qui ne fasse qu'afficher l'UserForm,
et une autre sub qui fassse les traitements)
private sub OK_Click()
unload DialHiérXP
le nom de l'autre sub
end sub
Pour le bouton annuler
private sub annuler_click()
unload DialHiérXP
end
end sub
"Alain NEWS" <alain.clenews@free.fr> a écrit dans le message de
news:3f92c630$0$10418$626a54ce@news.free.fr...
Clément Marcotte wrote:
Bonjour,
Il faut que le nom de ton UserForm (propriété Name) soit
DialHiérXP
De plus, tu n'as pas besoin de load(DialHiérXP), le show suffit.
P.S Dans la fenêtre des propriété, assure toi que tu changes bien
le
nom de l'UserForm et pas celui d'un contrôle.
Cela marche ! aprés optimisation j'ai
With DialHiérXP
.Show
PlageHiér = .PlageTravail.Text
ChoixMat = .choixMatrice
End With
Y-a encore un petit pb :-(
J'ai mis un contrôle "OK" et un "annuler" dans la boite mais
je sais pas comment les gérer. Pour que le traitement
s'exécute je dois cliquer sur fermer fenêtre. C'est pas top ;-(
L'objectif est qu'un clic sur "OK" au "annuler" rende la
main au programme qui détectant l'annuler ...
Encore merci.
"Alain NEWS" <alain.clenews@free.fr> a écrit dans le message de
news:3f9259d0$0$27044$626a54ce@news.free.fr...
Mais en suppoant que l'appel soit dans le module et que le OK indique de poursuivre à la ligne suivante ?
Merci.
Clément Marcotte wrote:
Bonjour,
Dans l'hypothèse où ton bouton OK serait pour poursuivre la macro et ton bouton Annuler serait pour arrêter la macro, sans terminer le l'exécution, et que les noms des boutons soient OK et Annuler. (En fait les noms peuvent être différents des intitulés (caption)).
Dans le module de l'UserForm:
Pour le bouton OK
(En supposant que tu aies une sub qui ne fasse qu'afficher l'UserForm, et une autre sub qui fassse les traitements)
private sub OK_Click() unload DialHiérXP le nom de l'autre sub end sub
Pour le bouton annuler
private sub annuler_click() unload DialHiérXP end end sub
"Alain NEWS" a écrit dans le message de news:3f92c630$0$10418$
Clément Marcotte wrote:
Bonjour,
Il faut que le nom de ton UserForm (propriété Name) soit
DialHiérXP
De plus, tu n'as pas besoin de load(DialHiérXP), le show suffit.
P.S Dans la fenêtre des propriété, assure toi que tu changes bien
le
nom de l'UserForm et pas celui d'un contrôle.
Cela marche ! aprés optimisation j'ai With DialHiérXP .Show PlageHiér = .PlageTravail.Text ChoixMat = .choixMatrice End With
Y-a encore un petit pb :-(
J'ai mis un contrôle "OK" et un "annuler" dans la boite mais je sais pas comment les gérer. Pour que le traitement s'exécute je dois cliquer sur fermer fenêtre. C'est pas top ;-( L'objectif est qu'un clic sur "OK" au "annuler" rende la main au programme qui détectant l'annuler ...
Encore merci.
"Alain NEWS" a écrit dans le message de news:3f9259d0$0$27044$