XL 2013 MsgBox Oui / Non

BALANCIE

XLDnaute Junior
Bonjour,

J'aurais besoin de votre aide pour un petit problème tout simple.

Dans cette macro, j'aimerais avoir le loisir de décider l'ouverture où pas du lecteur PDF Reader.
J'ai mis en place la notion de False, mais j'aimerais avoir ce choix avec la mgbox.

C'est surement simple, mais je cale.
Merci à vous.
Daryl.B


Sub PdfMOIS()
Dim nom As String
Dim dossier As String

If MsgBox(" Générer le PDF du Mois ?", vbYesNo, _
"Demande de confirmation") <> vbYes Then Exit Sub

dossier = ChoixDossier
If dossier = "" Then Exit Sub
nom = dossier & "\" & Range("B2")

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nom _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=TrueFalse

End Sub

Function ChoixDossier()
If Val(Application.Version) >= 10 Then
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ActiveWorkbook.Path & "\"
.Show
If .SelectedItems.Count > 0 Then
ChoixDossier = .SelectedItems(1)
Else
ChoixDossier = "/"
End If
End With
Else
ChoixDossier = InputBox("Quel Répertoire ?")
End If
End Function
 

vgendron

XLDnaute Barbatruc
hello

euh.. désolé.. mais perso.. je vois pas la différence entre le code initial
VB:
If MsgBox(" Générer le PDF du Mois ?", vbYesNo, _
"Demande de confirmation") <> vbYes Then Exit Sub

et le nouveau code proposé
VB:
xRep = MsgBox("Générer le PDF du Mois ?", vbInformation + vbYesNo, "GENERER UN PDF")
    If xRep = vbYes Then
        'onn continue
    Else
        Exit Sub
    End If
il me semble que dans les deux cas. si on répond NON.. alors. on sort de la macro..
sinon (on répond OUI), on déroule la macro...

un truc m'échappe?
ou alors, c'est juste une erreur de syntaxe dans le code initial pour afficher l'info "GENERER UN PDF" ??
du coup.. si rien ne m'échappe.. alors.. je ne comprend pas la question.... :-D
 

BALANCIE

XLDnaute Junior
Bonjour,

Effectivement cela ne fonctionne pas.
Ma demande , j'ai besoin (en cas) de pouvoir choisir entre visionner la feuille en PDF où pas pendant la sauvegarde de du mois.
La macro que j'ai, enregistre le mois (la feuille) et à la fin , ne me laisse pas le choix entre visualise directement la feuille sous Reader où pas.
Cela pour un contrôle car certaines feuilles sont importantes et pas d'autres, d'où la nécessité du contrôle par les personnes chargées de transcrire les données.
Toutes ces personnes travaillent à distance, d'où l'obligation du contrôle avant l'envoi.

Merci à vous.
 

vgendron

XLDnaute Barbatruc
Bon.. je viens de comprendre
ton message box initial sert pour enregistrer en pdf
ensuite. tu souhaites pouvoir ouvrir le pdf créé..

si tu regardes bien cette ligne de ton code
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nom _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=TrueFalse

tu devrais facilement comprendre que la variable "TrueFalse" doit contenir ton choix pour l'ouverture...
1) mettre des noms réservés tels que true et false pour faire le nom de la variable... j'aime pas trop.. ca peut etre source de confusion..
2) il te suffit de rajouter un msgbox comme tu l'as déjà fait pour remplir cette variable "trueFalse"

VB:
Sub PdfMOIS()
Dim nom As String
Dim dossier As String

If MsgBox(" Générer le PDF du Mois ?", vbYesNo, _
"Demande de confirmation") <> vbYes Then Exit Sub
TrueFalse=MsgBox(" Souhaitez vous ouvrir ensuite le PDF Généré?", vbYesNo,"Ouverture du pdf")

dossier = ChoixDossier
If dossier = "" Then Exit Sub
nom = dossier & "\" & Range("B2")

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nom _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=TrueFalse

End Sub

Function ChoixDossier()
If Val(Application.Version) >= 10 Then
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ActiveWorkbook.Path & "\"
.Show
If .SelectedItems.Count > 0 Then
ChoixDossier = .SelectedItems(1)
Else
ChoixDossier = "/"
End If
End With
Else
ChoixDossier = InputBox("Quel Répertoire ?")
End If
End Function
 

Lolote83

XLDnaute Barbatruc
Re salut,
En reprenaant le code de VGENDRON (que je salue au passage), on pourrait avoir du coup un truc comme ça
Code:
Sub PdfMOIS()
Dim nom As String
Dim dossier As String

If MsgBox(" Générer le PDF du Mois ?", vbYesNo, _
"Demande de confirmation") <> vbYes Then Exit Sub
xOuvre = MsgBox(" Souhaitez vous ouvrir ensuite le PDF Généré?", vbYesNo, "Ouverture du pdf")

dossier = ChoixDossier
If dossier = "" Then Exit Sub
nom = dossier & "\" & Range("B2")
If xOuvre = vbYes Then
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nom _
    , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
    :=False, OpenAfterPublish:=True
End If

End Sub
Si toutefois, j'ai encore bien compris la consigne !!!!
@+ Lolote83
 

BALANCIE

XLDnaute Junior
Bonjour,

Merci à vous 2, vraiment.
Mais cela ne marche pas et je n'ai plus vraiment le temps de m'occuper de cette petite modification.
Cela marche lorsque je lui confirme que je veux voir le PDF, mais ne marche pas si je lui dis Non, pas de sauvegarde...
A l'inverse avec la Macro actuelle (sans visibilité immédiate du PDF), cela marche .

Bon, ce n'est pas gra^ve. En fait, je voulais avoir la liberté de Sauvegarder le Mois avec l'option de voir après la sauvegarde en direct sans manip le PDF.

Les personnes qui remplissent les informations à distance (Europe), n'ont qu'une feuille (tableau) avec des commandes Macros pour telle où telle info. Cela dans un but de sécurité d'infos qui est centralisée par la suite.

Je suis chargé de les faire travailler et comme ils sont à la "tâche" j'essaie à mon petit niveau de leur apporter le maxi de confort de telle sorte qu'ils puissent gagner plus et non pour des résultats pour moi. C'est mon équipe et je les apprécie. Donc tout clic supplémentaire est une tâche rémunératrice en moins pour eux.

Merci pour vos efforts, j'apprécie réellement.
Daryl.B
 

BALANCIE

XLDnaute Junior
Re-bonjour,

Par contre, j'ai trouvé une macro que je me sers à mon niveau mais que je ne peux employer pour les intervenants puisse qu'on multiplie les actions.
Elle fonctionne très bien dans la sauvegarde avec l'ouverture où pas du PDF après la sauvegarde.
Je pense qu'on peut l'adaptée avec comme début la Macro d'origine , à savoir le mois du Mois prit automatiquement pour la sauvegarde.
Sinon je resterai ainsi.
Je trouverais bien un moment pour leur faire gagner un peu de temps supplémentaire.

Merci à vous.

Le code :



Sub sauv_pdf()

Dim dossier As String
Dim ws As Object
Dim nom, feuille As String

'emplacement a derterminée
If MsgBox(" Générer PDF Mois ?", vbYesNo, _
"Demande de confirmation") <> vbYes Then Exit Sub

Set ws = Sheets(InputBox("Quelle feuille souhaitez-vous sauvegarder?"))

dossier = ChoixDossier
If dossier = "" Then Exit Sub
nom = dossier & "\" & InputBox("Nom du fichier :")

If MsgBox("Souhaitez-vous ouvrir le fichier dans Reader?", vbYesNo) = vbNo Then
ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nom _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Else
ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nom _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
End If

End Sub
 

Discussions similaires

Réponses
2
Affichages
233
Réponses
6
Affichages
196

Membres actuellement en ligne

Statistiques des forums

Discussions
312 196
Messages
2 086 100
Membres
103 116
dernier inscrit
kutobi87