Visual basic - Enregistré l'onglet en PDF

Bonjour à tous, je m'arrache les cheveux depuis 1h, je vous explique, mon codage fonctionne sur 3 autres onglets mais pas pour celui ci, il me met les 2 dernières ligne ( celle en gras ) en débogage erreur 1004, impossible de savoir ce qui ne fonctionne pas : ( voir capture d'écran jointe )

Dim fichier As String

Date_F = Format(Date, "ddmmmm_")
'adaptez le nom de la feuille
With Worksheets("RAPPORT DE POSTE")
fichier = "\" & Date_F & .Range("B7") & ".pdf"
Dossier = "S:\NORBERT-DENTRESSANGLE\Doc poste de garde\Doc opérateurs\Rapport de poste"
Chemin = Dossier & fichier
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False


End With

16doc1.docx (129.07 Ko)

Bonjour,

Qu'avez vous d'inscrit dans la cellule B7 de votre feuille RAPPORT DE POSTE ? La feuille est-elle correctement notée ? Pas d'espaces qui trainent dans son nom ? Le chemin existe-t-il déjà ? Que vous renvoie la variable fichier ?

Sans avoir le fichier entre les mains, je ne vois que ça.

Cdlt,

Alors

En B7 je n’ai rien

L’onglet est bien noté "RAPPORT DE POSTE"

Le dossier est bien existant

Par contre variable fichier c’est quoi au juste ?

Bonjour,

Vous avez au moins une valeur sur la feuille ? Ou elle est complètement vierge ? Si c'est le cas alors c'est peut être pour ça.

J'ai essayé votre code chez moi avec les même paramètres hormis le nom de Dossier et elle est fonctionnelle.

Dans l'éditeur VBA vous pouvez voir la valeur de chaque variable en affichant la fenêtre adaptée et exécutant en pas à pas (ligne à ligne) votre code à l'aide de la touche F8. Pour afficher la fenêtre des variables :

2021 05 13 09 56 09 microsoft visual basic pour applications classeur1 arret module3 code

Ici j'ai positionné mon curseur en dessous de la 1ère ligne, et ai fait F8 pour exécuter mes lignes 1 à 1 jusqu'à arriver a ExportAsFixedFormat pour voir la valeur de mes différentes variables (3) et voir si elles existaient. Ici J'aurai une erreur car mon chemin est incorrect à cause des ****. Lorsque le message d'erreur apparaît vous avez alors la ligne sur laquelle se trouve l'erreur en jaune et vous permet de deboguer plus facilement.

Cdlt,

Sur la feuille j’ai effectivement des valeurs mais ça fonctionnait très bien avant. Et ça fonctionne sur les autres feuilles qui ont le même codage

Alors quand je fais pas à pas avec F8 pour les variables c’est bien cette ligne qui fait défaut :

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

Bonjour,

- Vous êtes certain que vous avez le bon chemin et le bon nom de feuille et que les 2 existent ?
- Pas de caractères interdits dans le nom de dossier-fichier ? Vous arrivez à y accéder manuellement via l'explorateur de dossier Windows ?
- Si vous retirez .Range("B7") que se passe-t-il ?

Là honnêtement à part ça je ne vois pas ...

Cdlt,

Bonjour Atomiik Loic, Salut Ergotamine,

C'est étrange en effet ! Comme Ergotamine, j'aurais pensé à vérifier la zone d'impression pour m'assurer qu'elle existe et qu'elle n'est pas masquée par exemple...

J'imagine que la feuille non plus n'est pas masquée ?

En attendant, je poste votre code à l'aide des balises </> pour le rendre plus lisible et copiable :

Sub macro()
dim Dossier$, Date_F$, fichier$, Chemin$
Dossier = "S:\NORBERT-DENTRESSANGLE\Doc poste de garde\Doc opérateurs\Rapport de poste"
Date_F = Format(Date, "ddmmmm")
on error resume next
if dir(Dossier, vbdirectory) = "" then msgbox "dossier inexistant", vbcritical: exit sub
if err.number <> 0 then msgbox "Vérifiez l'accès au lecteur", vbcritical: exit sub
With Worksheets("RAPPORT DE POSTE")
    fichier = Date_F & "_" & .Range("B7") & ".pdf"
    Chemin = Dossier & "\" & fichier
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, IgnorePrintAreas:=False
End With
end sub

Il ne faut pas qu'un fichier du même nom soit ouvert et il faut avoir accès au lecteur S pour effectuer cet export.

Cdlt,

j’ai supprimé .range("B7") et alleluia ça fonctionne !
merci pour m’avoir montrer le chemin pour y arriver !
bonne journée à vous !

Rechercher des sujets similaires à "visual basic enregistre onglet pdf"