Microsoft 365 Cellule avec heure vers pdf

pompaero

XLDnaute Impliqué
Bonsoir le forum,

Dans l'un de mes fichier en cours de construction j'ai une macro qui enregistre une feuille en pdf vers un dossier.
A l'enregistrement du pdf j'y met la date (récupéré dans une cellule) suivi de l'heure (récupéré dans une cellule ) et d'un theme (récupéré dans une cellule), j'ai l'impression d'avoir un souci avec la partie de l'heure car j'ai un bug au moment de l'enregistrement et ne trouve pas le probleme malgrés mes recherche sur le net.
voici ma macro :
VB:
MonPDFFullPath = chemin & Format(Sh.Range("B22"), "dd-mm-yy") & " de " & Format(Sh.Range("B24"), "hh:mm") & " - " & Sh.Range("D19") & ".pdf"
[COLOR=rgb(251, 160, 38)]Sh.ExportAsFixedFormat xlTypePDF, Filename:=MonPDFFullPath[/COLOR]
MsgBox "Rapport intervention validé.", vbInformation, "Enregistrement en PDF"
le bug se produit sur la ligne en orange.
Quand par exemple je supprime les 2 point du format de l'heure la macro fonctionne.
Quelqu'un pourrait m'expliquer le pourquoi, svp.
Merci

Cdlt
 
Bonjour pompaero, le forum

Ce n'est pas un problème Excel mais système, le caractère spécial : n'est pas autorisé dans les noms de fichier.
Mettez un autre séparateur, un espace par exemple ou h
VB:
MonPDFFullPath = chemin & Format(Sh.Range("B22"), "dd-mm-yy") & " de " & Format(Sh.Range("B24"), "hh mm") & " - " & Sh.Range("D19") & ".pdf"
Sh.ExportAsFixedFormat xlTypePDF, Filename:=MonPDFFullPath
MsgBox "Rapport intervention validé.", vbInformation, "Enregistrement en PDF"

Bien cordialement, @+
 
Dernière édition:

pompaero

XLDnaute Impliqué
Bonsoir Yeahou

Effectivement cela fonctionne sans les :
Du coup, je fais sans et ça le fais bien quand même, cool.
Merci pour ton retour , ta rapidité et tes conseils, tout est rentré dans l'ordre pour moi.
Merci à toi.
@ bientôt

Cdlt
 

kiki29

XLDnaute Barbatruc
Salut, à utiliser sur :
VB:
Format(Sh.Range("B22"), "dd-mm-yy") & " de " & Format(Sh.Range("B24"), "hh:mm") & " - " & Sh.Range("D19")

VB:
Private Function NomFichierValide(sChaine As String) As Boolean
Dim i As Long
Const sCaracInterdits As String = """*/:<>?[\]|"
    NomFichierValide = True
    If Len(sChaine) = 0 Then
        NomFichierValide = False
        Exit Function
    End If
    For i = 1 To Len(sCaracInterdits)
        If InStr(sChaine, Mid$(sCaracInterdits, i, 1)) > 0 Then
            NomFichierValide = False
            Exit Function
        End If
    Next i
End Function
 
Dernière édition:

Discussions similaires