msg box

A

agnès

Guest
bonjour

Quelle est la syntaxe en vba pour déclencher une action (par exemple imprimer) à partir de deux boutons (oui et non) d'une msgbox ?

Merci d'avance de vos lumières

agnès
 
A

agnes

Guest
ca marche, ...mais autre petit souci
j'ai toujours 2 boites qui s'ouvrent en suivant: ma msgbox suivie de celle d'excel
pourtant j'ai mis screenupdating ??

Application.ScreenUpdating = True
MsgBox 'Votre saisie a bien été enregistrée. Voulez-vous Imprimer?', vbInformation + vbYesNo + vbDefaultButton2, ' Imprimer ?'
If MsgBox('Votre saisie a bien été enregistrée. Voulez-vous Imprimer?', vbInformation + vbYesNo + vbDefaultButton2, ' Imprimer ?') = vbYes Then
Imprimer
End If
Application.ScreenUpdating = False

'avec
Sub Imprimer()
Sheets('Documents').Select
ActiveSheet.PageSetup.PrintArea = '$AK$65:$AV$128'
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1
ActiveSheet.PageSetup.PrintArea = ''
End Sub
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

Ton screenupdating ne sert à rien car tu n'as pas de modif de ton classeur

par contre il faut supprimer ta première msgbox

il faut seulement

If MsgBox(\\'Votre saisie a bien été enregistrée. Voulez-vous Imprimer?\\', vbInformation + vbYesNo +
vbDefaultButton2, \\' Imprimer ?\\') = vbYes Then
Imprimer
End If

Bon courage
 
A

agnes

Guest
OK ça roule.

si je comprends bien 2 msgbox ds un évènement, ç'est la panique ?

Y a t il un événement ou je pourrais avoir un msgbox qui alerte si la saisie n'est pas complète

(avant la 2°msgbox qui déclenche l'impression sur un click) ?

un evenement beforeclick?
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

Pour ta première partie 2 msgbox ce n'est pas la panique mais si tu mets en mets 2 et bien les 2 vont apparaitre ça c'est de la logique

pour ton autre question il faudrait que tu précises un peu plus mais oui tu peux

du genre

If range('A1') = '' then
Msgbox 'Et la cellule A1 elle compte pour du beurre !'
exit sub
end if

Bon courage
 
A

agnes

Guest
J'avance ...mais je rame

Pour etre plus précise: le cbut est sur mon formulaire:

Private Sub CButImpFacture_Click()
If CBoxCivilité = '' Or TBoxNom = '' Or TBoxAdresse = '' Then
MsgBox 'Vous devez saisir: Civilité, Nom, Adresse', vbExclamation, 'SAISIE(S) INCOMPLETE(S)!'
End If
Exit Sub
If MsgBox(' Avez-vous saisi les éventuels paiements déjà éffectués?', vbInformation + vbYesNo, 'RIEN OUBLIE?') = vbYes Then
Calculer 'me calcule les formules sur formulaire
Sheets('Documents').Select
ActiveSheet.PageSetup.PrintArea = '$BC$65:$BK$128'
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1
ActiveSheet.PageSetup.PrintArea = ''
Worksheets('Plan').Activate
Unload Me
End If
End Sub

la premiere boite s'ouvre si saisie pas complète, mais la 2° ne s'ouvre pas meme si saisie complete...
donc pas d'impression !
 

Hervé

XLDnaute Barbatruc
bonsoir agnes, salut pascal

essaye de placer ton exit sub dans ta condition if...then

En effet, tu veux que ton code s'arrete que si les ctrl sont vides, donc il faut lier les deux

si ctrl='' alors
message
fin du code
fin du si

If CBoxCivilité = '' Or TBoxNom = '' Or TBoxAdresse = '' Then
MsgBox 'Vous devez saisir: Civilité, Nom, Adresse', vbExclamation, 'SAISIE(S) INCOMPLETE(S)!'
Exit Sub
End If


salut
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

Merci Hervé d'avoir pris la relève à une heure où je regardais le foot (j'aurais mieux fait de regarder XLD tiens ;) )

Alors Agnes on ne fait pas attention au morceau de code donné en exemple. Et oui j'avais bien le exit sub avant le end if.

M'enfin c'est pas bien grave Hervé était là

Bonne journée à tous
 

Discussions similaires

Réponses
4
Affichages
222

Statistiques des forums

Discussions
312 508
Messages
2 089 136
Membres
104 044
dernier inscrit
petitchan