Imprimer en Pdf des feuilles sous condition de valeur de cellule
Bonjour à tous .
Je suis nouveau et surtout novice, et je viens de passer la journée sur mon problème....
La personne qui à crée ce fichier n'ai plus dans ma société, et j'aimerai l'améliorée.
A l'origine, on imprimait au format PDF, que 2 feuilles. "1" et "2".
J'ai rajouter 2 autres feuilles, ce qui me fait 4 feuilles : "1", "2", "DynamiqueAvantAjustage", "DynamiqueAprèsAjustage"
J'aimerai imprimer les feuille 1 et 2 tout le temps,
mais la feuille "DynamiqueAvantAjustage" que si ma cellule R113 = 1 et ma feuille "DynamiqueAprèsAjustage" que si ma cellule R113 = 1
J'ai rajouté mes 2 feuilles, mais ça me les imprimes tout le temps.
La personne avait créer ça (ne pas tenir compte de mes 2 feuilles), et ça fonctionnait très bien :
(Sub pdf()
Sheets(Array("1", "2", "DynamiqueAvantAjustage", "DynamiqueAprèsAjustage")).Select
Sheets("1").Activate
Dim NomFichier As String
FileSaveName = Application.GetSaveAsFilename
FileSaveName = Range("BB109") & Range("BK109") & Range("BM109") & " - " & Range("Q32") & " - " & Range("Q34") & "-" & Range("Q36") & "-" & Range("Q38")
If FileSaveName <> False Then
Sheets("1").ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileSaveName, Quality:=lQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End If
'Message Box non obligatoire,
'MsgBox ("PDF")
Sheets("1").Select
If Range("'2'!N98") = "X" Then MsgBox ("ATTENTION NON CONFORME")
Call impact
End Sub
SI vous pouviez m'aider.
- Messages
- 1'089
- Excel
- 2021 FR
- Inscrit
- 17/12/2018
- Emploi
- Technicien maintenance robot Retraité
Bonjour,
Pour une aide adaptée, joindre un classeur (pas une image!) anonymisé et représentatif
Slts
Bonjour PLC, boss_68, le forum,
Un essai (à tout hasard) après quelques recherches le net...
Il conviendra de définir le zoom ainsi que la zone à imprimer de chaque feuille....vu que tes données vont jusqu'à la colonne BM, pas certain que cela tienne sur une feuille
Sub PDF()
Dim F1 As Worksheet, F2 As Worksheet, F3 As Worksheet, F4 As Worksheet
Dim feuillesAImprimer As Collection
Dim feuille As Worksheet
Dim feuillesArray()
' Définir les feuilles
Set F1 = ThisWorkbook.Sheets("1")
Set F2 = ThisWorkbook.Sheets("2")
Set F3 = ThisWorkbook.Sheets("DynamiqueAvantAjustage")
Set F4 = ThisWorkbook.Sheets("DynamiqueAprèsAjustage")
FileSaveName = Application.GetSaveAsFilename
FileSaveName = F1.Range("BB109") & F1.Range("BK109") & F1.Range("BM109") & " - " & F1.Range("Q32") & " - " & F1.Range("Q34") & "-" & F1.Range("Q36") & "-" & F1.Range("Q38")
If FileSaveName <> False Then
'Créer un tableau pour stocker les feuilles à imprimer
Set feuillesAImprimer = New Collection
'Ajouter les feuilles 1 et 2
feuillesAImprimer.Add F1
feuillesAImprimer.Add F2
'Ajouter les autres feuilles si =1
If F3.Range("R113").Value = 1 Then feuillesAImprimer.Add F3
If F4.Range("R113").Value = 1 Then feuillesAImprimer.Add F4
'Définir feuilles pour PDF
ReDim feuillesArray(0 To feuillesAImprimer.Count - 1)
For i = 1 To feuillesAImprimer.Count
Set feuille = feuillesAImprimer(i)
feuillesArray(i - 1) = feuille.Name
Next i
'Exporter en PDF
ThisWorkbook.Sheets(feuillesArray).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=FileSaveName, Quality:=lQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End If
F1.Select
MsgBox "Les feuilles ont été imprimées en PDF avec succès !", vbInformation
End SubCordialement,
Bonjour,
@boss_68, Je viens de comprendre votre post en regardant celui de X-OR.
C'est pour faire comme X-OR avec le fond gris.
Par contre, je ne sais pas comment vous faite pour mettre le classeur ? J'ai fait que copier collé dont l'image...
@Xorsankukai, Je te remercie de ton aide le shérif
Je vais essayer et je reviendrais t'informer du résultat.
Merci beaucoup.
Bonjour,
Comme promis voici mon retour concernant ton aide X-OR. Tout fonctionne super bien. Merci beaucoup.
J'ai modifié la localisation de certaines cellules qui ont bougées de part mes modifs, et rajouté des messages d'alertes d'informations sur les non-conformités.
Par contre avant quand j'imprimais, mon PDF final s'ouvrait, et plus maintenant.Il y a t il une raison ? Mais ce n'est pas très grave.
Voici la programmation finale. (Dslé, je ne sais faire que copier coller)
Sub PDF()
Dim F1 As Worksheet, F2 As Worksheet, F3 As Worksheet, F4 As Worksheet
Dim feuillesAImprimer As Collection
Dim feuille As Worksheet
Dim feuillesArray()
' Définir les feuilles
Set F1 = ThisWorkbook.Sheets("1")
Set F2 = ThisWorkbook.Sheets("2")
Set F3 = ThisWorkbook.Sheets("DynamiqueAvantAjustage")
Set F4 = ThisWorkbook.Sheets("DynamiqueAprèsAjustage")
FileSaveName = Application.GetSaveAsFilename
FileSaveName = F1.Range("BB110") & F1.Range("BK110") & F1.Range("BM110") & "-" & F1.Range("Q33") & "-" & F1.Range("Q35") & "-" & F1.Range("Q37") & "-" & F1.Range("Q39")
If FileSaveName <> False Then
'Créer un tableau pour stocker les feuilles à imprimer
Set feuillesAImprimer = New Collection
'Ajouter les feuilles 1 et 2
feuillesAImprimer.Add F1
feuillesAImprimer.Add F2
'Ajouter les autres feuilles si =1
If F3.Range("N113").Value = 1 Then feuillesAImprimer.Add F3
If F4.Range("N113").Value = 1 Then feuillesAImprimer.Add F4
'Définir feuilles pour PDF
ReDim feuillesArray(0 To feuillesAImprimer.Count - 1)
For i = 1 To feuillesAImprimer.Count
Set feuille = feuillesAImprimer(i)
feuillesArray(i - 1) = feuille.Name
Next i
'Exporter en PDF
ThisWorkbook.Sheets(feuillesArray).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=FileSaveName, Quality:=lQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End If
'Message Box non obligatoire,
'MsgBox ("PDF")
Sheets("1").Select
If F2.Range("N98") = "X" Then MsgBox ("ATTENTION NON CONFORME en Statique")
If F3.Range("N86") = "X" Then MsgBox ("ATTENTION NON CONFORME en Dynamique Avant Ajustage")
If F4.Range("N86") = "X" Then MsgBox ("ATTENTION NON CONFORME en Dynamique Après Ajustage")
F1.Select
MsgBox "Les feuilles ont été imprimées en PDF avec succès !", vbInformation
Call impact
End Sub
Bonjour PLC, le forum,
Merci pour le retour 🙂
Par contre avant quand j'imprimais, mon PDF final s'ouvrait, et plus maintenant.Il y a t il une raison ?
Essaie :
OpenAfterPublish:=TrueCordialement,