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

Problème avec une Msgbox

4 réponses
Avatar
access13090
Bonjour à toute la communauté,

Je viens vers vous pour trouver une solution à ma problématique.
Je suis en train de créer une application de gestion de commandes et je
voudrais automatiser certaines actions et notamment le transfert de
pièces (devis en bon de commande, bon de commande en bon de réception,
etc.)
Sur ce lien, vous trouverez une vue de la syntaxe qui me pose problème.
http://cjoint.com/?hcgCrvgpo6

Pour pouvoir tranférer par exp. un devis en bon de commande via un
formulaire, l'utilisateur doit impérativement cocher une case et saisir
une date. Les 3 blocs If ... Then ... End If s'exécutent très bien.

J'ai voulu ajouter l'exécution d'un MsgBox afin que l'utilisateur
confirme le transfert. Et là, je rencontre des difficultés. Mon niveau
en VB étant un peu léger.

Grâce à votre aide, je voudrais que la MsgBox s'affiche qu'une et une
seule fois lorsque l'utilisateur va cliquer sur le bouton de commande
"Transférer", que lorsque l'utilisateur va cliquer sur "Oui" pour
confirmer le transfert s'exécute les 3 blocs d'instruction If ... Then
... End If selon les conditions remplies.

Si quelqu'un avait une idée.
Merci d'avance.

4 réponses

Avatar
Fabien
access13090 wrote:
Bonjour à toute la communauté,

Je viens vers vous pour trouver une solution à ma problématique.
Je suis en train de créer une application de gestion de commandes et je
voudrais automatiser certaines actions et notamment le transfert de
pièces (devis en bon de commande, bon de commande en bon de réception,
etc.)
Sur ce lien, vous trouverez une vue de la syntaxe qui me pose problème.
http://cjoint.com/?hcgCrvgpo6

Pour pouvoir tranférer par exp. un devis en bon de commande via un
formulaire, l'utilisateur doit impérativement cocher une case et saisir
une date. Les 3 blocs If ... Then ... End If s'exécutent très bien.

J'ai voulu ajouter l'exécution d'un MsgBox afin que l'utilisateur
confirme le transfert. Et là, je rencontre des difficultés. Mon niveau
en VB étant un peu léger.

Grâce à votre aide, je voudrais que la MsgBox s'affiche qu'une et une
seule fois lorsque l'utilisateur va cliquer sur le bouton de commande
"Transférer", que lorsque l'utilisateur va cliquer sur "Oui" pour
confirmer le transfert s'exécute les 3 blocs d'instruction If ... Then
... End If selon les conditions remplies.

Si quelqu'un avait une idée.
Merci d'avance.




Salut,
Le plus facile c'est de déclarer Reponse au niveau du module et non pas
dans la fonction.
Ainsi son contenu sera consultable partout.
Du coup il suffira de tester le contenu de Reponse avant de poser la
question de confirmation.
If nz(Reponse,VbNo)<>VbYes then
Reponse=Msgbox ...
end if
Reste a initialiser Reponse lors d'un nouvel enregistrement dans
l'evenement On_current par exemple.
@+
Avatar
access13090
Fabien a écrit :

Salut,
Le plus facile c'est de déclarer Reponse au niveau du module et non pas dans
la fonction.
Ainsi son contenu sera consultable partout.
Du coup il suffira de tester le contenu de Reponse avant de poser la question
de confirmation.
If nz(Reponse,VbNo)<>VbYes then
Reponse=Msgbox ...
end if
Reste a initialiser Reponse lors d'un nouvel enregistrement dans l'evenement
On_current par exemple.
@+



Bonjour Fabien,
Merci pour cette réponse, mais je dois avouer que je ne comprends pas
trop bien.
@+
Avatar
Fabien
access13090 wrote:
Fabien a écrit :

Salut,
Le plus facile c'est de déclarer Reponse au niveau du module et non
pas dans la fonction.
Ainsi son contenu sera consultable partout.
Du coup il suffira de tester le contenu de Reponse avant de poser la
question de confirmation.
If nz(Reponse,VbNo)<>VbYes then
Reponse=Msgbox ...
end if
Reste a initialiser Reponse lors d'un nouvel enregistrement dans
l'evenement On_current par exemple.
@+



Bonjour Fabien,
Merci pour cette réponse, mais je dois avouer que je ne comprends pas
trop bien.
@+




Bon
tu declare reponse aprés les clauses
Option explicit
Dim Reponse as Integer 'Declaration pour que la variable soit connue
dans tout le module

Ensuite dans
Private Sub On_Current()
Reponse=0 ' Remise a 0 pour chaque nouvel enregistrement
end sub

et dans ta
Private Sub Btn_Transfert_Click()
Dim msg,style,title
If Nz(Reponse,0)=0 then
Reponse=msgbox(...)
end if
If Reponse=VbYes then
.
.
.
End if
End Sub

Remarque que les déclaration et affectation ne servent pas a grand chose.
Tu aurais tout aussi bien pu ecrire
Reponse=MsgBox("Confirmation du Transfert" & VbCrlf & "du devis en Bon
de commande !",VbyesNo+Vbinformation,"Avertissement!")
@+
Avatar
access13090
> Bon
tu declare reponse aprés les clauses
Option explicit
Dim Reponse as Integer 'Declaration pour que la variable soit connue dans
tout le module

Ensuite dans
Private Sub On_Current()
Reponse=0 ' Remise a 0 pour chaque nouvel enregistrement
end sub

et dans ta
Private Sub Btn_Transfert_Click()
Dim msg,style,title
If Nz(Reponse,0)=0 then
Reponse=msgbox(...)
end if
If Reponse=VbYes then
.
.
.
End if
End Sub

Remarque que les déclaration et affectation ne servent pas a grand chose.
Tu aurais tout aussi bien pu ecrire
Reponse=MsgBox("Confirmation du Transfert" & VbCrlf & "du devis en Bon de
commande !",VbyesNo+Vbinformation,"Avertissement!")
@+



Bonjour Fabien,
Merci beaucoup
@+