Exporter un fichier en PDF et enreg sous chemin précis
Bonjour à tous,
Je pense que ce sujet à déjà était ouvert mais je ne trouve absolument pas de réponse à ma question !
J'ai donc créer une grande partie de ce code moi même en apprenant sur le tas à coder.
Je voulais donc arriver à ce que lorsque que j'appuie sur ctrl + t, ma macro s’exécute mais n'ouvre pas la boite de dialogue de mon chemin où je dois simplement cliquer sur "Ok" pour qu'excel enregistre mon fichier en PDF sous ce répertoire.
Ci-dessous mon code :
Sub BCD()
Dim NomDossier As String
Dim CheminDossier As String
CheminDossier = "G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES\"
'.InitialFileName = "G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES"
'Application.FileDialog(msoFileDialogFolderPicker).Show
If Val(Application.Version) >= 10 Then
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ActiveWorkbook.Path & "\"
.Show
If .SelectedItems.Count > 0 Then
ChoixDossier = "BONS DE COMMANDES"
Else
ChoixDossier = "BONS DE COMMANDES"
End If
End With
Else
ChoixDossier = InputBox("G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES\")
End If
If ActiveCell.Range("D1").Value = "20" Then GoTo 1
If ActiveCell.Range("D1").Value <= 20 Then GoTo 3
If ActiveCell.Range("D1").Value < 21 > 40 Then GoTo 3
If ActiveCell.Range("D1").Value > 48 Then GoTo 3
If ActiveCell.Range("D1").Value = "40" Or "41" Or "42" Or "43" Or "44" Or "45" Or "46" Or "47" Or "48" Then GoTo 2
1
' ImpBcdHMbc Macro
'
' Touche de raccourci du clavier: Ctrl+r
'
ActiveCell.Range("A1:AJ1").Select
Selection.Copy
Sheets("PAS TOUCHE").Select
Range("A6").Select
ActiveSheet.Paste
Sheets("Hors MBC Démat").Select
Application.CutCopyMode = False
NomDossier = (Range("Num").Value & "_" & Range("Initiales") & "_" & Range("Bat").Value & "_" & Range("Design").Value & "_" & Range("Compt").Value & ".pdf")
CheminDossier = "G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES\"
'MsgBox NomDossier
'MsgBox CheminDossier
ChDir CheminDossier
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
NomDossier, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
GoTo 4
2
' Form_Fourniture_Print Macro
' Création du formulaire de demande d'achat dématérialisé
'
' Touche de raccourci du clavier: Ctrl+f
'
' Impression de la fiche de renseignements du technicien au comptable pour l'élaboration du commande dans le cadre
' des marchés à bon de commande de fourniture
ActiveCell.Range("A1:u1").Select
Selection.Copy
Sheets("PAS TOUCHE").Select
Range("A6").Select
ActiveSheet.Paste
Sheets("Dmd Achat Fourniture DEMAT").Select
Application.CutCopyMode = False
NomDossier = (Range("Num").Value & "_" & Range("Initiales") & "_" & Range("Bat").Value & "_" & Range("Design").Value & "_" & Range("Compt").Value & ".pdf")
CheminDossier = "G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES\"
'MsgBox NomDossier
'MsgBox CheminDossier
ChDir CheminDossier
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
NomDossier, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
GoTo 4
3
' BcdMBCPrint Macro
' Création de la demande de bon de commande démat MBC
'
' Touche de raccourci du clavier: Ctrl+b
'
ActiveCell.Range("A1:AJ1").Select
Selection.Copy
Sheets("PAS TOUCHE").Select
Range("A6").Select
ActiveSheet.PasteSpecial xlPasteValuesAndNumberFormats
Sheets("MBC Démat").Select
Application.CutCopyMode = False
NomDossier = (Range("A1").Value & "_" & Range("AO10") & "_" & Range("AX3").Value & "_" & Range("AR9").Value & "_" & Range("AO9").Value & ".pdf")
CheminDossier = "G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES\"
'MsgBox NomDossier
'MsgBox CheminDossier
ChDir CheminDossier
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
NomDossier, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
GoTo 4
4
Shell "explorer.exe " & CheminDossier, 1
Sheets("Commandes").Select
End SubMon soucis proviens du .Show que je ne peux changer.
Sachant que si celui-ci ne s'active pas mon fichier ne s'enregistre pas dans mon dossier ...
Dans l'attente de votre aide,
Bonjour,
Désolé mais sans fichier test difficile de comprendre ce code
-Le chemin est indiqué en dur dès les premières déclarations :
CheminDossier = "G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES\" ...Donc déjà inutile de le répéter X fois.
- Idem pour les if choix du dossier …. aucun intérêt puisque cela ne va pas servir apparemment
- Beaucoup trop de lignes inutiles.
Activecell.range(" ").select
Evites de tout mettre dans la même macro on comprendra peut-être un peut mieux.
Fais une deuxième macro uniquement pour l'enregistrement en pdf.
Ensuite dans ta première macro quand les conditions que je n'ai pas compris à la lecture de ton code
sont remplies alors ajoute la ligne de commande pour lancer la macro 2.
Un fichier test avec les explications de ce que tu souhaites obtenir serait souhaitable.
Bonjour,
Comme je l'ai dit, je suis encore débutant et me suis débrouillé pour que tout cela fonctionne.
J'avais supprimé ce chemin intempestif sur ma fiche test mais en le collant sur le bon classeur cela s'est mis a déconner et en le mettant de nouveau cela a fonctionné.
Mes conditions sont la car en fonction du code métier nous passons d'un MBC (marché à bon de commandes) ou un HMBC(hors marché) ou MBC Fourniture.
Dim NomDossier As String
Dim CheminDossier As String
CheminDossier = "G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES"
ChDir CheminDossier
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
NomDossier, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=FalseVoilà mon code pour le PDF, il fonctionne mais ne s'enregistre pas sous me chemin. A savoir que je travaille sur un serveur ...
En sois, toutes les données que j'ai entrée sont censés fonctionner mais si sur cette partie du codage :
If Val(Application.Version) >= 10 Then
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ActiveWorkbook.Path & "\"
.Show
If .SelectedItems.Count > 0 Then
ChoixDossier = "BONS DE COMMANDES"
Else
ChoixDossier = "BONS DE COMMANDES"
End If
End With
Else
ChoixDossier = InputBox("G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES\")
End IfJe "gèle" le .Show alors il enregistre les bons dans mes documents et pas dans le répertoire renseigné : "G:\D13\ST-TRANSVERSAUX\TABLEAUX SUIVI MARCHES\TRAVAUX_TECH\2020\BONS DE COMMANDES\"
Mon problème est surtout porté sur ce .Show. En effet, si je ne le laisse pas agir et donc que je ne clique pas sur la terminaisons de mon chemin celui-ci n'est pas validé et le fichier pdf qui en sort ne va pas dans le chemin que j'ai pourtant renseigné.
Je ne peux vous joindre un fichier d'exemple car même compressé il prend trop de place ...