XL 2019 erreur avec loop de formule vba

  • Initiateur de la discussion Initiateur de la discussion My<3
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

My<3

XLDnaute Junior
Je galère! J'ai ce fichier que je travail et j'avais comme souci de supprimer le contenu de cellule précise (j'ai réussi) mais ca la poser un problème dans une autre formule sans trop savoir pourquoi cette formule fonctionnais avec que je réussi a nettoyer les cellule désiré.

Lorsque j'appuis sur le bouton, un pdf (Feuil1 seulement) s'enregistre dans un dossier, un mail est préparer avec les images fais du fichier (2feuilles), les cellules se nettoie et le ficher Excel se ferme.
la ligne mise en erreur: ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFichier1

VB:
Private Sub EnregistrerPDF()
Dim Nomfichier As String, Chemin As String
Dim LaDate As String
Dim Numero As String, sFichier1 As String

    Application.StatusBar = ""
    Chemin = ThisWorkbook.Path

    With Feuil1
        .Select
        .PageSetup.PrintArea = "$A$1:$J$47"
        LaDate = Format(Date, "yyyy.mm.dd")
        Numero = .Range("A2")
    End With

    Nomfichier = LaDate & "_" & Numero & ".pdf"
    sFichier1 = Chemin & "\" & Nomfichier


    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFichier1
    

    Application.StatusBar = "Création des PDFs effectuée"
End Sub

Aussi j'ai eu la mention que le bouton fonctionne a partir du bureau mais lorsque la personne travail a distance (qui on accès a leur Outlook et le serveur) ca ne marche pas si jamais vous voyer l'erreur c'est la bienvenue
 

Pièces jointes

Solution
Salut, le nom de fichier généré est : 2022.11.30_22000*-DIV02 qui n'est pas valide car il contient un caractère interdit *

VB:
Sub EnregistrerPDF()
Dim Nomfichier As String, Chemin As String
Dim LaDate As String
Dim Numero As String, sFichier1 As String

    Application.StatusBar = ""
    Chemin = ThisWorkbook.Path

    With Feuil1
        .Select
        .PageSetup.PrintArea = "$A$1:$J$47"
        LaDate = Format(Date, "yyyy.mm.dd")
        Numero = .Range("A2")
    End With

    Nomfichier = LaDate & "_" & Numero
    sFichier1 = Chemin & "\" & Nomfichier

    If NomFichierValide(Nomfichier) Then
        Feuil1.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFichier1
    Else
        MsgBox "Nom de fichier invalide"...
Bonjour,

Aussi j'ai eu la mention que le bouton fonctionne a partir du bureau mais lorsque la personne travail a distance (qui on accès a leur Outlook et le serveur) ca ne marche pas si jamais vous voyer l'erreur c'est la bienvenue
Ça me paraît normal car il me semble que, pour faire simple, quand tu travailles dans un classeur ouvert depuis Outlook il y a des problèmes à cause du chemin ThisWorkbook.

Ces personnes ont-elles les mêmes problèmes si elles commencent par enregistrer le classeur joint au mail ?
 
Salut, le nom de fichier généré est : 2022.11.30_22000*-DIV02 qui n'est pas valide car il contient un caractère interdit *

VB:
Sub EnregistrerPDF()
Dim Nomfichier As String, Chemin As String
Dim LaDate As String
Dim Numero As String, sFichier1 As String

    Application.StatusBar = ""
    Chemin = ThisWorkbook.Path

    With Feuil1
        .Select
        .PageSetup.PrintArea = "$A$1:$J$47"
        LaDate = Format(Date, "yyyy.mm.dd")
        Numero = .Range("A2")
    End With

    Nomfichier = LaDate & "_" & Numero
    sFichier1 = Chemin & "\" & Nomfichier

    If NomFichierValide(Nomfichier) Then
        Feuil1.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFichier1
    Else
        MsgBox "Nom de fichier invalide", vbCritical + vbOKOnly
        Exit Sub
    End If
    Application.StatusBar = "Création des PDFs effectuée"
End Sub

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

Peut-être modifier
Code:
Chemin = Environ("USERPROFILE") & "\" & "Documents"
 
Dernière édition:
Ça me paraît normal car il me semble que, pour faire simple, quand tu travailles dans un classeur ouvert depuis Outlook il y a des problèmes à cause du chemin ThisWorkbook.
Je me suis mal exprimer il n'ouvre pas le fichier a partir d'Outlook mais a partir du serveur. La procédure est pourtant la même au bureau ou télétravail mais semble-t-il qu'il y aille un souci.

Le problème c'est l'envois du mail en télétravail
 
Salut, le nom de fichier généré est : 2022.11.30_22000*-DIV02 qui n'est pas valide car il contient un caractère interdit *

VB:
Sub EnregistrerPDF()
Dim Nomfichier As String, Chemin As String
Dim LaDate As String
Dim Numero As String, sFichier1 As String

    Application.StatusBar = ""
    Chemin = ThisWorkbook.Path

    With Feuil1
        .Select
        .PageSetup.PrintArea = "$A$1:$J$47"
        LaDate = Format(Date, "yyyy.mm.dd")
        Numero = .Range("A2")
    End With

    Nomfichier = LaDate & "_" & Numero
    sFichier1 = Chemin & "\" & Nomfichier

    If NomFichierValide(Nomfichier) Then
        Feuil1.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFichier1
    Else
        MsgBox "Nom de fichier invalide", vbCritical + vbOKOnly
        Exit Sub
    End If
    Application.StatusBar = "Création des PDFs effectuée"
End Sub

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

Peut-être modifier
Code:
Chemin = Environ("USERPROFILE") & "\" & "Documents"
Merci du coup de pouce j'avais pas remarque cette fameuse valeur problématique
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
534
Réponses
2
Affichages
403
Réponses
10
Affichages
471
Réponses
3
Affichages
1 K
Réponses
2
Affichages
715
Retour