VBA message box onglet pdf
Bonjour,
Je suis a cours d'idée, j'ai depuis un moment maintenant un fichier avec plusieurs onglets, nommés : 0001, 0002, 0003, 004, 0005, 0006, 0007 et une macro qui me sauvegarde en PDF chaque onglet séparément(voir code ci dessous)
actuellement je n'utilise que deux onglets tout les jours donc ma macro n'est configuré pour sauvegarder que les deux premier (0001-0002)
mais j'aimerai avoir une message Box qui me demande quel onglet je souhaite sauvegardé :
" Quel onglet voulez vous sauvegarder ?
0001*0002*0003...etc"
Voici ma Macro :
Sub pdf()
Dim MSN As String
Dim LHeure As String, LeDate As String
MSN01 = Sheets("0001").Range("C4")
MSN02 = Sheets("0002").Range("C4")
MSN03 = Sheets("0003").Range("C4")
MSN04 = Sheets("0004").Range("C4")
LaDate = Format(Date, "dd" & "." & "mm" & "." & "yyyy")
' Création fichier PDF
Sheets("0001").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Chemin d'accès\ CR ROP " & MSN01 & "- " & LaDate & " .pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=True, _
From:=1, To:=2, OpenAfterPublish:=False
' Création fichier PDF
Sheets("0002").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Chemin d'accès\CR ROP CH.A SUD\CR ROP ARCHIVE\ CR ROP " & MSN02 & "- " & LaDate & " .pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=True, _
From:=1, To:=2, OpenAfterPublish:=False
' Création fichier PDF
Sheets("0003").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Chemin d'accès\ CR ROP " & MSN03 & "- " & LaDate & " .pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=True, _
From:=1, To:=2, OpenAfterPublish:=False
' Création fichier PDF
Sheets("0004").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Chemin d'accès\CR ROP " & MSN04 & "- " & LaDate & " .pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=True, _
From:=1, To:=2, OpenAfterPublish:=False
' Création fichier PDF
Sheets("0005").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Chemin d'accès\CR ROP " & MSN05 & "- " & LaDate & " .pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=True, _
From:=1, To:=2, OpenAfterPublish:=False
' Création fichier PDF
Sheets("0006").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Chemin d'accès\CR ROP " & MSN06 & "- " & LaDate & " .pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=True, _
From:=1, To:=2, OpenAfterPublish:=False
' Création fichier PDF
Sheets("0007").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Chemin d'accès\ CR ROP " & MSN07 & "- " & LaDate & " .pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=True, _
From:=1, To:=2, OpenAfterPublish:=False
' Message de confirmation
MsgBox ("Création du fichier PDF effectué" & vbCrLf & vbCrLf & "Merci ")
End Subhello
essaie ça
Sub pdf()
Dim MSN As String
Dim LHeure As String, LeDate As String
MSN01 = Sheets("0001").Range("C4")
MSN02 = Sheets("0002").Range("C4")
MSN03 = Sheets("0003").Range("C4")
MSN04 = Sheets("0004").Range("C4")
LaDate = Format(Date, "dd" & "." & "mm" & "." & "yyyy")
fichier_a_exporter = InputBox("Quel onglet voulez vous exporter ?")
' Création fichier PDF
Sheets(fichier_a_exporter).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Chemin d'accès\ CR ROP " & MSN01 & "- " & LaDate & " .pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=True, _
From:=1, To:=2, OpenAfterPublish:=False
' Message de confirmation
MsgBox ("Création du fichier PDF effectué" & vbCrLf & vbCrLf & "Merci ")
End SubSi tu veux faire une sélection multiple je te recommande de passer par un onglet ou tu listes dans une colonne ceux que tu veux et après tu fais une boucle dessus.
Hésite pas si tu veux une piste la dessus
@+
Bonjour c3dr1k-31 et
Une petite présentation ICI serait la bienvenue
Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum
Concernant votre demande, tant mieux que vous êtes tombé à cours d'idées, nous allons pouvoir optimiser grandement votre code
Pour créer le PDF, on vérifie que la cellule C4 contient quelque chose
Sub pdf()
Dim Sht As Worksheet
Dim Msn As String, sPath As String, sNomFic As String
Dim LHeure As String, LeDate As String
' Définir le chemin d'enregistrement
sPath = "C:\Chemin d'accès\"
' Pour chaque feuille du classeur
For Each Sht In ActiveWorkbook.Sheets
Msn = Sht.Range("C4")
If Msn <> "" Then
LaDate = Format(Date, "dd" & "." & "mm" & "." & "yyyy")
' Création fichier PDF
sNomFic = "CR ROP " & Msn & "- " & LaDate & " .pdf"
' Exporter la feuill
Sht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath & sfic, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=True, _
From:=1, To:=2, OpenAfterPublish:=False
End If
Next Sht
End SubMerci de votre participation
Cordialement
Edit : Salut Baroute78
Merci pour vos réponses.
présentation effectué (désolé j'ai du refaire un compte)
en effet je souhaite absolument pouvoir faire un choix multiple.
oui, la cellule C4 sert dans le nom du PDF :
le nom du PDF est comme suit : >>compte rendu "VALEUR CELLULE C4" "date du jour".pdf <<
merci à vous
Je me permet de relancer le sujet sais t'on jamais le weekend a peut être fait des merveilles :)
Re,
Vous avez des formations ICI, c'est simple il faut juste faire un test d'une réponse à une question faite avec MsgBox
Sub pdf()
Dim Sht As Worksheet
Dim Msn As String, sPath As String, sNomFic As String
Dim LHeure As String, LeDate As String
' Définir le chemin d'enregistrement
sPath = "C:\Chemin d'accès\"
' Pour chaque feuille du classeur
For Each Sht In ActiveWorkbook.Sheets
Msn = Sht.Range("C4")
If MSgBox("Voulez-vous enregistrer le PDF de " & msn, VbQuestion+VbYesNo,"ATTENTION...") = Vbno then Goto Suite
If Msn <> "" Then
LaDate = Format(Date, "dd" & "." & "mm" & "." & "yyyy")
' Création fichier PDF
sNomFic = "CR ROP " & Msn & "- " & LaDate & " .pdf"
' Exporter la feuill
Sht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath & sfic, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=True, _
From:=1, To:=2, OpenAfterPublish:=False
End If
Suite:
Next Sht
End SubA+
merci beaucoup, ca fonctionne bien même s'il me propose des onglets dont je ne souhaite pas avoir la proposition, je pense que ca sera un bon début.
Peu de temps après un collège aurait trouvé une solution avec un userform, je dois voir avec lui ce que ca donne.
tout de même un grand merci, je vous fait un retour.