msgbox ok tout va bien non ça foire

Y

Yvon

Guest
Bonjour, à tous,

J'ai un enième souci de syntaxe, j'ai crée un useform pour lancer une impression, durant cette impression l'utilisateur doit changer de style de papier, si il répond oui à toute les questions cela se passe nickel, si'il répond nous la prcédure ne se déroule pas comme prévue, je vous livre le code si quelqu'un à une propo à ce problème je suis preneur

bon week-end à tous
Yvon

Private Sub OK_Click()

'Impression de : synthèse, fiche satisfaction client, fiche controle salle'

Sheets(Array(6, 12, 13)).PrintOut
intresponse = MsgBox('L 'impression est elle correcte ?', vbYesNo + vbQuestion + vbDefaultButton2, 'Impression')
If intresponse = vbYes Then MsgBox 'Insérez dans l'imprimante la fiche bienvenue', vbExclamation, 'Impression'
If intresponse = vbYes Then Sheets(14).PrintOut
intresponse = MsgBox('L 'impression est elle correcte ?', vbYesNo + vbQuestion + vbDefaultButton2, 'Impression')
If intresponse = vbNo Then MsgBox 'Insérez dans l'imprimante la fiche bienvenue', vbExclamation, 'Impression'
If intresponse = vbNo Then Sheets(14).PrintOut
If intresponse = vbYes Then Unload Me

End Sub
 

soft

XLDnaute Occasionnel
La réponse Non de la première question n'est pas interprétée, donc le code contine et pose la 2e question.

Pour plus de clarté dans ton code écris plutôt directement tout ce qu'il faut faire si c'est oui sans répéter si réponse Oui à chaque ligne

Private Sub OK_Click()

'Impression de : synthèse, fiche satisfaction client, fiche controle salle'

Sheets(Array(6, 12, 13)).PrintOut
intresponse = MsgBox('L 'impression est elle correcte ?', vbYesNo + vbQuestion + vbDefaultButton2, 'Impression')
If intresponse = vbYes Then
MsgBox 'Insérez dans l'imprimante la fiche bienvenue\\', vbExclamation, 'Impression'
Sheets(14).PrintOut
Else
'c'est ici qu'il faut indiquer quoi faire si c'est non à la 1ère question
End If
intresponse = MsgBox('L 'impression est elle correcte ?', vbYesNo + vbQuestion + vbDefaultButton2, 'Impression')

If intresponse = vbNo Then
MsgBox 'Insérez dans l'imprimante la fiche bienvenue\\', vbExclamation, 'Impression'
Sheets(14).PrintOut
Else
Unload Me
End If
End Sub
 

soft

XLDnaute Occasionnel
Et pourtant ...

Est-ce que tu as bien les mêmes lignes et en particulier plus rien après les Then ?

Autrement il y a peut-être des '/' qui se sont rajoutés et qu'il faut supprimer.
En regardant ton code, je me demande si c'est normal que tu poses 2 fois la question.

Si je comprends bien ce que tu veux faire :

- Si la réponse est oui, l'utilisateur à mis le papier qu'il faut et tu lances l'impression de la feuille
- Si c'est non, tu abandonnes.

Dans ce cas, le code devrait être avec une seule fois la question et les 2 réponses possibles vbYes et Else.

Private Sub OK_Click()

'Impression de : synthèse, fiche satisfaction client, fiche controle salle'

Sheets(Array(6, 12, 13)).PrintOut
intresponse = MsgBox('L 'impression est elle correcte ?', vbYesNo + vbQuestion + vbDefaultButton2,
'Impression')
If intresponse = vbYes Then
MsgBox 'Insérez dans l'imprimante la fiche bienvenue', vbExclamation, 'Impression'
Sheets(14).PrintOut
Else
Unload Me
End If
End Sub
 
Y

Yvon

Guest
Bonjour Soft,

Non si l'impression foire, le mesgbox doit libérer l'écran, pour relancer l'impression voila le cycle:

Userform : Impression
L'impression est elle correcte /non
Userform : Impression
L'impression est elle correcte /oui
Insérez dans l'imprimante la fiche 'bienvenue'
L'impression est elle correcte /non
Insérez dans l'imprimante la fiche 'bienvenue'
L'impression est elle correcte /oui
Userform ferme.

Cela te parait il plus clair
a++
Yvon
 

Discussions similaires

Statistiques des forums

Discussions
312 810
Messages
2 092 304
Membres
105 344
dernier inscrit
dlug