et comme le dit si bien Charly bravo aux contributeurs .
ma question fait suite à une modification d'un user form :
j'ai créé un User form qui fonctionne très bien avec un bouton annuler et un
valider qui enregistre les données dans une feuille Excel.
j'ai rajouter un Msg avec les bouton OK et Cancel, ok poursuit
l'enregistrement et les deux objet sont masqués,
mais pour cancel, je souhaiterai que le Msg se ferme, mais que je puisse
vérifier les données du User Form.
Tu devrais publier un bout de ton code ici : La fin de l'userform et la gestion du Msgbox.
j-p
Pierre Fauconnier
Salut
Tu peux donner ton code?
-- Pierre Fauconnier () Les sept laids tuent ( Lewis Carol ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"MarkoS" a écrit dans le message de news:%236$
Bonjour toutes et tous,
et comme le dit si bien Charly bravo aux contributeurs .
ma question fait suite à une modification d'un user form :
j'ai créé un User form qui fonctionne très bien avec un bouton annuler et un
valider qui enregistre les données dans une feuille Excel.
j'ai rajouter un Msg avec les bouton OK et Cancel, ok poursuit l'enregistrement et les deux objet sont masqués, mais pour cancel, je souhaiterai que le Msg se ferme, mais que je puisse vérifier les données du User Form.
je ne trouve pas mon erreur,
A l'aide
Merci d'avance.
Salut
Tu peux donner ton code?
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam)
Les sept laids tuent ( Lewis Carol )
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"MarkoS" <philippe.babut@tiscali.fr> a écrit dans le message de
news:%236$KFUpaEHA.3752@TK2MSFTNGP12.phx.gbl...
Bonjour toutes et tous,
et comme le dit si bien Charly bravo aux contributeurs .
ma question fait suite à une modification d'un user form :
j'ai créé un User form qui fonctionne très bien avec un bouton annuler et
un
valider qui enregistre les données dans une feuille Excel.
j'ai rajouter un Msg avec les bouton OK et Cancel, ok poursuit
l'enregistrement et les deux objet sont masqués,
mais pour cancel, je souhaiterai que le Msg se ferme, mais que je puisse
vérifier les données du User Form.
-- Pierre Fauconnier () Les sept laids tuent ( Lewis Carol ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"MarkoS" a écrit dans le message de news:%236$
Bonjour toutes et tous,
et comme le dit si bien Charly bravo aux contributeurs .
ma question fait suite à une modification d'un user form :
j'ai créé un User form qui fonctionne très bien avec un bouton annuler et un
valider qui enregistre les données dans une feuille Excel.
j'ai rajouter un Msg avec les bouton OK et Cancel, ok poursuit l'enregistrement et les deux objet sont masqués, mais pour cancel, je souhaiterai que le Msg se ferme, mais que je puisse vérifier les données du User Form.
je ne trouve pas mon erreur,
A l'aide
Merci d'avance.
MarkoS
Bonjour, JPP, pour info, j'ai un petit problème, hier par erreur je n'ai pas envoyé ce message au groupe mais à ton t'on adresse E-mail uniquement . Ce matin, message : " Ces destinataires ont été traités par le serveur de messagerie : t'onAddresse; Échec; 5.1.1 (adresse de boîte aux lettres de destination incorrecte)..."
Voici la partie du code qui me fait suer... ces soirs.
- le userform s'affiche normalement, et les datas sont bien sauvegardées, par contre je n'arrive pas à gérer les réponses OK et Cancel comme je le souhaite, ***************************************** ' Affichage du User Form dans feuille Excel fmMesuresPrévention.Show ----------------------------------------------------- Public LigneSel1 As String
Private Sub UserForm_Activate() ----------------------------------------------------- ' 1/ Code initialisation feuille ----------------------------------------------------- Private Sub SaveMesures_Click() On Error Resume Next
' affectation de la valeur "mesure à prévoir" If optAprévoir = True Then 'éléments du User Form ' ....... End If
' 2/ validité des données *
If txtT.Value & txtO.Value & txtH.Value = "" Then 'aucune valeur saisie rep = MsgBox("Validation des mesures," & Chr(13) & Chr(10) & _ " vous n'avez saisie aucune mesures :" & Chr(13) & Chr(10) & _ Chr(13) & Chr(10) & " Cliquer -> OK : pour enregistrer la ligne et la revoir ultérieurement," & Chr(13) & Chr(10) & _ Chr(13) & Chr(10) & " Cliquer -> ANNULER : pour saisir les mesures maintenant.", _ vbOKCancel + vbInformation, "Information incomplètes")
If rep = vbOK Then GoTo Fin Else GoTo Saisir End If
Saisir: txtT.SetFocus ' **** Souhait : ferme le Msg et affichage du User Form pour modif des données
Fin: Call CréerMesures (txtU.Value, txtD.Value, txtR.Value, txtT.Value, txtO.Value, txtH,...) '*** Enregistre les datas End Sub ********************************************
j'ai essayé d'autres codes du style : rep = MsgBox("Validation des mesures," & _ ...." Cliquer -> OK : pour enregistrer la ligne ...," _ ..... " Cliquer -> ANNULER : pour saisir ....", _ vbOKCancel + vbInformation, "Information incomplètes") If rep = vbCancel Then me.hide Else Call CréerMesures (txtU.Value, txtD.Value, txtR.Value, txtT.Value, txtO.Value, txtH,...)
End If End sub
Nb : pour ne pas encombrer le forum, comment vous envoyer le code autrement ???
Tu devrais publier un bout de ton code ici : La fin de l'userform et la gestion du Msgbox.
j-p
Bonjour,
JPP, pour info, j'ai un petit problème, hier par erreur je n'ai pas envoyé
ce message au groupe mais à ton t'on adresse E-mail uniquement . Ce matin,
message : " Ces destinataires ont été traités par le serveur de messagerie :
t'onAddresse; Échec; 5.1.1 (adresse de boîte aux lettres de destination
incorrecte)..."
Voici la partie du code qui me fait suer... ces soirs.
- le userform s'affiche normalement, et les datas sont bien sauvegardées,
par contre je n'arrive pas à gérer les réponses OK et Cancel comme je le
souhaite,
*****************************************
' Affichage du User Form dans feuille Excel
fmMesuresPrévention.Show
-----------------------------------------------------
Public LigneSel1 As String
Private Sub UserForm_Activate()
-----------------------------------------------------
' 1/ Code initialisation feuille
-----------------------------------------------------
Private Sub SaveMesures_Click()
On Error Resume Next
' affectation de la valeur "mesure à prévoir"
If optAprévoir = True Then 'éléments du User Form
' .......
End If
' 2/ validité des données *
If txtT.Value & txtO.Value & txtH.Value = "" Then
'aucune valeur saisie
rep = MsgBox("Validation des mesures," & Chr(13) & Chr(10) & _
" vous n'avez saisie aucune mesures :" & Chr(13) & Chr(10) & _
Chr(13) & Chr(10) & " Cliquer -> OK : pour enregistrer la ligne
et la revoir ultérieurement," & Chr(13) & Chr(10) & _
Chr(13) & Chr(10) & " Cliquer -> ANNULER : pour saisir les
mesures maintenant.", _
vbOKCancel + vbInformation, "Information incomplètes")
If rep = vbOK Then GoTo Fin Else GoTo Saisir
End If
Saisir: txtT.SetFocus
' **** Souhait : ferme le Msg et affichage du User Form pour modif des
données
Fin: Call CréerMesures (txtU.Value, txtD.Value, txtR.Value, txtT.Value,
txtO.Value, txtH,...)
'*** Enregistre les datas
End Sub
********************************************
j'ai essayé d'autres codes du style :
rep = MsgBox("Validation des mesures," & _
...." Cliquer -> OK : pour enregistrer la ligne ...," _
..... " Cliquer -> ANNULER : pour saisir ....", _
vbOKCancel + vbInformation, "Information incomplètes")
If rep = vbCancel Then
me.hide
Else
Call CréerMesures (txtU.Value, txtD.Value, txtR.Value,
txtT.Value, txtO.Value, txtH,...)
End If
End sub
Nb : pour ne pas encombrer le forum, comment vous envoyer le code autrement
???
Bonjour, JPP, pour info, j'ai un petit problème, hier par erreur je n'ai pas envoyé ce message au groupe mais à ton t'on adresse E-mail uniquement . Ce matin, message : " Ces destinataires ont été traités par le serveur de messagerie : t'onAddresse; Échec; 5.1.1 (adresse de boîte aux lettres de destination incorrecte)..."
Voici la partie du code qui me fait suer... ces soirs.
- le userform s'affiche normalement, et les datas sont bien sauvegardées, par contre je n'arrive pas à gérer les réponses OK et Cancel comme je le souhaite, ***************************************** ' Affichage du User Form dans feuille Excel fmMesuresPrévention.Show ----------------------------------------------------- Public LigneSel1 As String
Private Sub UserForm_Activate() ----------------------------------------------------- ' 1/ Code initialisation feuille ----------------------------------------------------- Private Sub SaveMesures_Click() On Error Resume Next
' affectation de la valeur "mesure à prévoir" If optAprévoir = True Then 'éléments du User Form ' ....... End If
' 2/ validité des données *
If txtT.Value & txtO.Value & txtH.Value = "" Then 'aucune valeur saisie rep = MsgBox("Validation des mesures," & Chr(13) & Chr(10) & _ " vous n'avez saisie aucune mesures :" & Chr(13) & Chr(10) & _ Chr(13) & Chr(10) & " Cliquer -> OK : pour enregistrer la ligne et la revoir ultérieurement," & Chr(13) & Chr(10) & _ Chr(13) & Chr(10) & " Cliquer -> ANNULER : pour saisir les mesures maintenant.", _ vbOKCancel + vbInformation, "Information incomplètes")
If rep = vbOK Then GoTo Fin Else GoTo Saisir End If
Saisir: txtT.SetFocus ' **** Souhait : ferme le Msg et affichage du User Form pour modif des données
Fin: Call CréerMesures (txtU.Value, txtD.Value, txtR.Value, txtT.Value, txtO.Value, txtH,...) '*** Enregistre les datas End Sub ********************************************
j'ai essayé d'autres codes du style : rep = MsgBox("Validation des mesures," & _ ...." Cliquer -> OK : pour enregistrer la ligne ...," _ ..... " Cliquer -> ANNULER : pour saisir ....", _ vbOKCancel + vbInformation, "Information incomplètes") If rep = vbCancel Then me.hide Else Call CréerMesures (txtU.Value, txtD.Value, txtR.Value, txtT.Value, txtO.Value, txtH,...)
End If End sub
Nb : pour ne pas encombrer le forum, comment vous envoyer le code autrement ???
A mon avis, y a un mic-mac entre le ok/cancel du form et celui du msgbox, je saisis pas tout... SaveMesures_Click est appelé par le commandbutton ok du userform ?!? et comment tu ferme la fenetre : seult avec la ligne (1) ou y a un me.hide ailleurs en plus ? fenetre modale ou pas ?
Private Sub SaveMesures_Click() If txtT.Value & txtO.Value & txtH.Value = "" Then rep = MsgBox(".....", vbOKCancel + vbInformation, "Information incomplètes") If rep = vbOK Then GoTo Fin Else GoTo Saisir End If
Saisir: txtT.SetFocus <<<<<<<< on reste bien ds le userform? >>>> ' **** Souhait : ferme le Msg et >>> affichage / Ré-affichage??? <<<< du User Form pour modif des données <<<<<<<<<<<<<< faut un exit sub ici !!! >>>> Fin: Call CréerMesures (txtU.Value, txtD.Value, txtR.Value, txtT.Value, txtO.Value, txtH,...) '*** Enregistre les datas <<<<<<<< on sort bien du userform? donc, ou est le me.hide ? dans CréerMesures ? dans commandButtonOK ? >>> end sub
rep = MsgBox(...) vbOKCancel + vbInformation, "Information incomplètes") If rep = vbCancel Then me.hide <<<<<<<<<<<<<<(1) je comprend plus: cancel fait l'inverse ds VERSION1 ?!? Else Call CréerMesures (txtU.Value, txtD.Value, txtR.Value,txtT.Value, txtO.Value, txtH,...)
End If end sub
'-------------------------------------------------------------------------------------- si je pige, apres avoir cliqué sur le ok DU userform : ton msbox apparait si donnees vides, on clique sur cancel DU msgbox pr modifier et le userform disparait malheureusement OU on clique sur ok et la fenetre réapparait malheureusement ?
diagnostique probable: me.hide mal placé ou qq chose fait ref à un controle et empeche la fenetre de partir vraiment. Ou plusieurs trucs qui se rentrent dedans
==> pistes (pas le tps de verifier)
1) sous VBA surtout (pas toute les methodes dispo comme ds VB -load,...-), faut etre TRES vigilant avec les entrees/sorties d'un userform: ne pas faire gerer par le userform, ce qui doit etre géré par la fonction apellante par ex. si tu peux deporter ton msgbox ds la fonction appelante, alors ca peut aussi eviter des pbs.
2) souvent aussi, on gère la chose avec UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) commandButtonOK et commandButtoncancel ferment la fenetre avec un me.hide mais : + dans commandButtonOK, msgbox qui affectera un flag global bOK + dans UserForm_QueryClose, l'arg Cancel affecté selon bOK (=true ca ferme plus)
3) si ca doit fermer avant le CréerMesures : faut etre sur que ta fonction CréerMesures va pas modifier une des propriétés des controles du userform, sinon tu risquerai de la revoir selon ce qu'il y a dans ton userform...
4) essaye peut-etre : me.visibleúlse au cas ou... set f=new usreform f.show modal mais oublie pas set f=nothing ensuite
pas super clair :
A mon avis, y a un mic-mac entre le ok/cancel du form et celui du msgbox, je saisis pas tout...
SaveMesures_Click est appelé par le commandbutton ok du userform ?!?
et comment tu ferme la fenetre : seult avec la ligne (1) ou y a un me.hide ailleurs en plus ?
fenetre modale ou pas ?
Private Sub SaveMesures_Click()
If txtT.Value & txtO.Value & txtH.Value = "" Then
rep = MsgBox(".....", vbOKCancel + vbInformation, "Information incomplètes")
If rep = vbOK Then GoTo Fin Else GoTo Saisir
End If
Saisir: txtT.SetFocus <<<<<<<< on reste bien ds le userform? >>>>
' **** Souhait : ferme le Msg et >>> affichage / Ré-affichage??? <<<< du User Form pour modif des données
<<<<<<<<<<<<<< faut un exit sub ici !!! >>>>
Fin: Call CréerMesures (txtU.Value, txtD.Value, txtR.Value, txtT.Value,
txtO.Value, txtH,...)
'*** Enregistre les datas <<<<<<<< on sort bien du userform? donc, ou est le me.hide ? dans CréerMesures ? dans commandButtonOK ? >>>
end sub
rep = MsgBox(...) vbOKCancel + vbInformation, "Information incomplètes")
If rep = vbCancel Then
me.hide <<<<<<<<<<<<<<(1) je comprend plus: cancel fait l'inverse ds VERSION1 ?!?
Else
Call CréerMesures (txtU.Value, txtD.Value, txtR.Value,txtT.Value, txtO.Value, txtH,...)
End If
end sub
'--------------------------------------------------------------------------------------
si je pige, apres avoir cliqué sur le ok DU userform :
ton msbox apparait si donnees vides, on clique sur cancel DU msgbox pr modifier et le userform disparait malheureusement
OU on clique sur ok et la fenetre réapparait malheureusement ?
diagnostique probable:
me.hide mal placé ou qq chose fait ref à un controle et empeche la fenetre de partir vraiment. Ou plusieurs trucs qui se rentrent dedans
==> pistes (pas le tps de verifier)
1) sous VBA surtout (pas toute les methodes dispo comme ds VB -load,...-),
faut etre TRES vigilant avec les entrees/sorties d'un userform:
ne pas faire gerer par le userform, ce qui doit etre géré par la fonction apellante par ex.
si tu peux deporter ton msgbox ds la fonction appelante, alors ca peut aussi eviter des pbs.
2) souvent aussi, on gère la chose avec UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
commandButtonOK et commandButtoncancel ferment la fenetre avec un me.hide mais :
+ dans commandButtonOK, msgbox qui affectera un flag global bOK
+ dans UserForm_QueryClose, l'arg Cancel affecté selon bOK (=true ca ferme plus)
3) si ca doit fermer avant le CréerMesures : faut etre sur que ta fonction CréerMesures va pas modifier une des propriétés des controles du userform,
sinon tu risquerai de la revoir selon ce qu'il y a dans ton userform...
4) essaye peut-etre :
me.visibleúlse au cas ou...
set f=new usreform
f.show modal
mais oublie pas set f=nothing ensuite
A mon avis, y a un mic-mac entre le ok/cancel du form et celui du msgbox, je saisis pas tout... SaveMesures_Click est appelé par le commandbutton ok du userform ?!? et comment tu ferme la fenetre : seult avec la ligne (1) ou y a un me.hide ailleurs en plus ? fenetre modale ou pas ?
Private Sub SaveMesures_Click() If txtT.Value & txtO.Value & txtH.Value = "" Then rep = MsgBox(".....", vbOKCancel + vbInformation, "Information incomplètes") If rep = vbOK Then GoTo Fin Else GoTo Saisir End If
Saisir: txtT.SetFocus <<<<<<<< on reste bien ds le userform? >>>> ' **** Souhait : ferme le Msg et >>> affichage / Ré-affichage??? <<<< du User Form pour modif des données <<<<<<<<<<<<<< faut un exit sub ici !!! >>>> Fin: Call CréerMesures (txtU.Value, txtD.Value, txtR.Value, txtT.Value, txtO.Value, txtH,...) '*** Enregistre les datas <<<<<<<< on sort bien du userform? donc, ou est le me.hide ? dans CréerMesures ? dans commandButtonOK ? >>> end sub
rep = MsgBox(...) vbOKCancel + vbInformation, "Information incomplètes") If rep = vbCancel Then me.hide <<<<<<<<<<<<<<(1) je comprend plus: cancel fait l'inverse ds VERSION1 ?!? Else Call CréerMesures (txtU.Value, txtD.Value, txtR.Value,txtT.Value, txtO.Value, txtH,...)
End If end sub
'-------------------------------------------------------------------------------------- si je pige, apres avoir cliqué sur le ok DU userform : ton msbox apparait si donnees vides, on clique sur cancel DU msgbox pr modifier et le userform disparait malheureusement OU on clique sur ok et la fenetre réapparait malheureusement ?
diagnostique probable: me.hide mal placé ou qq chose fait ref à un controle et empeche la fenetre de partir vraiment. Ou plusieurs trucs qui se rentrent dedans
==> pistes (pas le tps de verifier)
1) sous VBA surtout (pas toute les methodes dispo comme ds VB -load,...-), faut etre TRES vigilant avec les entrees/sorties d'un userform: ne pas faire gerer par le userform, ce qui doit etre géré par la fonction apellante par ex. si tu peux deporter ton msgbox ds la fonction appelante, alors ca peut aussi eviter des pbs.
2) souvent aussi, on gère la chose avec UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) commandButtonOK et commandButtoncancel ferment la fenetre avec un me.hide mais : + dans commandButtonOK, msgbox qui affectera un flag global bOK + dans UserForm_QueryClose, l'arg Cancel affecté selon bOK (=true ca ferme plus)
3) si ca doit fermer avant le CréerMesures : faut etre sur que ta fonction CréerMesures va pas modifier une des propriétés des controles du userform, sinon tu risquerai de la revoir selon ce qu'il y a dans ton userform...
4) essaye peut-etre : me.visibleúlse au cas ou... set f=new usreform f.show modal mais oublie pas set f=nothing ensuite
MarkoS
c'est juste un pb de recopie dans le message, avant de mettre le contrôle via le message box, tout était OK. je te fais passer l'exemple avec les deux feuilles concernées. Merci encore. "JpPradier" a écrit dans le message de news:%
Ca marchera mieux avec Userform1 et non Userfrom1
j-p
c'est juste un pb de recopie dans le message, avant de mettre le contrôle
via le message box, tout était OK.
je te fais passer l'exemple avec les deux feuilles concernées.
Merci encore.
"JpPradier" <jp.pradier.JVeuxPasDeSpam@wanadoo.fr> a écrit dans le message
de news:%23qGRQ8waEHA.996@TK2MSFTNGP12.phx.gbl...
c'est juste un pb de recopie dans le message, avant de mettre le contrôle via le message box, tout était OK. je te fais passer l'exemple avec les deux feuilles concernées. Merci encore. "JpPradier" a écrit dans le message de news:%
Ca marchera mieux avec Userform1 et non Userfrom1
j-p
MarkoS
c'est possible, car j'ai rajouter le Msg pour valider une valeur. c'est quoi une fenêtre modale ? merci, je vais déja essayer ces pistes A plus. "loko" a écrit dans le message de news:
pas super clair :
A mon avis, y a un mic-mac entre le ok/cancel du form et celui du msgbox, je saisis pas tout...
SaveMesures_Click est appelé par le commandbutton ok du userform ?!? et comment tu ferme la fenetre : seult avec la ligne (1) ou y a un me.hide ailleurs en plus ?
Private Sub SaveMesures_Click() If txtT.Value & txtO.Value & txtH.Value = "" Then rep = MsgBox(".....", vbOKCancel + vbInformation, "Information incomplètes")
If rep = vbOK Then GoTo Fin Else GoTo Saisir End If
Saisir: txtT.SetFocus <<<<<<<< on reste bien ds le userform? >>>> ' **** Souhait : ferme le Msg et >>> affichage / Ré-affichage??? <<<< du User Form pour modif des données
<<<<<<<<<<<<<< faut un exit sub ici !!! >>>> Fin: Call CréerMesures (txtU.Value, txtD.Value, txtR.Value, txtT.Value, txtO.Value, txtH,...) '*** Enregistre les datas <<<<<<<< on sort bien du userform? donc, ou est le me.hide ? dans CréerMesures ? dans commandButtonOK ? >>>
si je pige, apres avoir cliqué sur le ok DU userform : ton msbox apparait si donnees vides, on clique sur cancel DU msgbox pr modifier et le userform disparait malheureusement
OU on clique sur ok et la fenetre réapparait malheureusement ?
diagnostique probable: me.hide mal placé ou qq chose fait ref à un controle et empeche la fenetre de partir vraiment. Ou plusieurs trucs qui se rentrent dedans
==> pistes (pas le tps de verifier)
1) sous VBA surtout (pas toute les methodes dispo comme ds VB -load,...-), faut etre TRES vigilant avec les entrees/sorties d'un userform: ne pas faire gerer par le userform, ce qui doit etre géré par la fonction apellante par ex.
si tu peux deporter ton msgbox ds la fonction appelante, alors ca peut aussi eviter des pbs.
2) souvent aussi, on gère la chose avec UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
commandButtonOK et commandButtoncancel ferment la fenetre avec un me.hide mais :
+ dans commandButtonOK, msgbox qui affectera un flag global bOK + dans UserForm_QueryClose, l'arg Cancel affecté selon bOK (=true ca ferme plus)
3) si ca doit fermer avant le CréerMesures : faut etre sur que ta fonction CréerMesures va pas modifier une des propriétés des controles du userform,
sinon tu risquerai de la revoir selon ce qu'il y a dans ton userform...
4) essaye peut-etre : me.visibleúlse au cas ou... set f=new usreform f.show modal mais oublie pas set f=nothing ensuite
c'est possible, car j'ai rajouter le Msg pour valider une valeur.
c'est quoi une fenêtre modale ?
merci, je vais déja essayer ces pistes
A plus.
"loko" <loko@discussions.microsoft.com> a écrit dans le message de
news:DD58D4B9-E8AD-4E26-A8FC-E7CBB50CE228@microsoft.com...
pas super clair :
A mon avis, y a un mic-mac entre le ok/cancel du form et celui du msgbox,
je saisis pas tout...
SaveMesures_Click est appelé par le commandbutton ok du userform ?!?
et comment tu ferme la fenetre : seult avec la ligne (1) ou y a un me.hide
ailleurs en plus ?
Private Sub SaveMesures_Click()
If txtT.Value & txtO.Value & txtH.Value = "" Then
rep = MsgBox(".....", vbOKCancel + vbInformation, "Information
incomplètes")
If rep = vbOK Then GoTo Fin Else GoTo Saisir
End If
Saisir: txtT.SetFocus <<<<<<<< on reste bien ds le userform? >>>>
' **** Souhait : ferme le Msg et >>> affichage / Ré-affichage??? <<<< du
User Form pour modif des données
<<<<<<<<<<<<<< faut un exit sub ici !!! >>>>
Fin: Call CréerMesures (txtU.Value, txtD.Value, txtR.Value, txtT.Value,
txtO.Value, txtH,...)
'*** Enregistre les datas <<<<<<<< on sort bien du userform? donc, ou est
le me.hide ? dans CréerMesures ? dans commandButtonOK ? >>>
si je pige, apres avoir cliqué sur le ok DU userform :
ton msbox apparait si donnees vides, on clique sur cancel DU msgbox pr
modifier et le userform disparait malheureusement
OU on clique sur ok et la fenetre réapparait malheureusement ?
diagnostique probable:
me.hide mal placé ou qq chose fait ref à un controle et empeche la fenetre
de partir vraiment. Ou plusieurs trucs qui se rentrent dedans
==> pistes (pas le tps de verifier)
1) sous VBA surtout (pas toute les methodes dispo comme ds VB -load,...-),
faut etre TRES vigilant avec les entrees/sorties d'un userform:
ne pas faire gerer par le userform, ce qui doit etre géré par la fonction
apellante par ex.
si tu peux deporter ton msgbox ds la fonction appelante, alors ca peut
aussi eviter des pbs.
2) souvent aussi, on gère la chose avec UserForm_QueryClose(Cancel As
Integer, CloseMode As Integer)
commandButtonOK et commandButtoncancel ferment la fenetre avec un me.hide
mais :
+ dans commandButtonOK, msgbox qui affectera un flag global bOK
+ dans UserForm_QueryClose, l'arg Cancel affecté selon bOK (=true ca
ferme plus)
3) si ca doit fermer avant le CréerMesures : faut etre sur que ta fonction
CréerMesures va pas modifier une des propriétés des controles du userform,
sinon tu risquerai de la revoir selon ce qu'il y a dans ton userform...
4) essaye peut-etre :
me.visibleúlse au cas ou...
set f=new usreform
f.show modal
mais oublie pas set f=nothing ensuite
c'est possible, car j'ai rajouter le Msg pour valider une valeur. c'est quoi une fenêtre modale ? merci, je vais déja essayer ces pistes A plus. "loko" a écrit dans le message de news:
pas super clair :
A mon avis, y a un mic-mac entre le ok/cancel du form et celui du msgbox, je saisis pas tout...
SaveMesures_Click est appelé par le commandbutton ok du userform ?!? et comment tu ferme la fenetre : seult avec la ligne (1) ou y a un me.hide ailleurs en plus ?
Private Sub SaveMesures_Click() If txtT.Value & txtO.Value & txtH.Value = "" Then rep = MsgBox(".....", vbOKCancel + vbInformation, "Information incomplètes")
If rep = vbOK Then GoTo Fin Else GoTo Saisir End If
Saisir: txtT.SetFocus <<<<<<<< on reste bien ds le userform? >>>> ' **** Souhait : ferme le Msg et >>> affichage / Ré-affichage??? <<<< du User Form pour modif des données
<<<<<<<<<<<<<< faut un exit sub ici !!! >>>> Fin: Call CréerMesures (txtU.Value, txtD.Value, txtR.Value, txtT.Value, txtO.Value, txtH,...) '*** Enregistre les datas <<<<<<<< on sort bien du userform? donc, ou est le me.hide ? dans CréerMesures ? dans commandButtonOK ? >>>
si je pige, apres avoir cliqué sur le ok DU userform : ton msbox apparait si donnees vides, on clique sur cancel DU msgbox pr modifier et le userform disparait malheureusement
OU on clique sur ok et la fenetre réapparait malheureusement ?
diagnostique probable: me.hide mal placé ou qq chose fait ref à un controle et empeche la fenetre de partir vraiment. Ou plusieurs trucs qui se rentrent dedans
==> pistes (pas le tps de verifier)
1) sous VBA surtout (pas toute les methodes dispo comme ds VB -load,...-), faut etre TRES vigilant avec les entrees/sorties d'un userform: ne pas faire gerer par le userform, ce qui doit etre géré par la fonction apellante par ex.
si tu peux deporter ton msgbox ds la fonction appelante, alors ca peut aussi eviter des pbs.
2) souvent aussi, on gère la chose avec UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
commandButtonOK et commandButtoncancel ferment la fenetre avec un me.hide mais :
+ dans commandButtonOK, msgbox qui affectera un flag global bOK + dans UserForm_QueryClose, l'arg Cancel affecté selon bOK (=true ca ferme plus)
3) si ca doit fermer avant le CréerMesures : faut etre sur que ta fonction CréerMesures va pas modifier une des propriétés des controles du userform,
sinon tu risquerai de la revoir selon ce qu'il y a dans ton userform...
4) essaye peut-etre : me.visibleúlse au cas ou... set f=new usreform f.show modal mais oublie pas set f=nothing ensuite