IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

ExportAsFixedFormat PdF Erreur 1004


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Prof Lib
    Inscrit en
    Octobre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Prof Lib
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 11
    Par défaut ExportAsFixedFormat PdF Erreur 1004
    Bonjour,

    Je suis nouvellement inscrit sur ce forum. J'ai toutefois pu trouver de nombreuses réponses à mes questions dans les différents sujets déjà ouverts.

    Je rencontre un problème avec la fonction ExportAsFixedFormat.

    Via une première macro, je crée une quittance de Loyer en passant par la création d'une nouvelle feuille excel, renommée "Quitt Temp". A la fin de cette macro, je cherche à exécuter une exportation au format pdf de la quittance créée (afin de pouvoir l'envoyer automatiquement par mail) en utilisant le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
             With ThisWorkbook
     
            Worksheets("Quitt Temp").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            "Test", Quality:= _
            xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
            From:=1, To:=1, OpenAfterPublish:=False
     
            End With
    Lorsque ce code est exécuté à la suite de ma première macro, il renvoi l'erreur 1004 "Erreur définie par l'application ou par l'objet".

    Une fois l'erreur indiquée, je sauvegarde mon classeur, je quitte excel. Ensuite, Je ré-ouvre mon classeur, j’exécute la seconde macro seule (celle indiquée ci dessus) qui maintenant fonctionne...

    J'ai essayé de faire une sauvegarde du classeur (ActiveWorkbook.Save) entre les deux macros, sans que cela ne change le problème.

    N'étant pas un spécialiste du vba, je m'en remets donc à votre savoir.

    Merci d'avance

    Alexis

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Bonjour,

    bienvenue sur DVP

    Si tu utilises le mot cle With, il faut l'utiliser dans la suite du code (il manque ici un point avant worksheets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With ThisWorkbook
    .Worksheets("Quitt Temp").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "Test", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    From:=1, To:=1, OpenAfterPublish:=False
    End With
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre régulier
    Homme Profil pro
    Prof Lib
    Inscrit en
    Octobre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Prof Lib
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 11
    Par défaut
    Bonjour,

    Merci pour votre réponse rapide!!!

    J'ai donc modifié le code en y ajoutant le point manquant... A nouveau, l’exécution de cette seule macro fonctionne. (En créant manuellement une feuille nommée "Quitt Temp")

    Malheureusement, en passant par une création de cette feuille via une autre macro, même sanction (code erreur 1004) mais le motif de l'erreur change : dimension spécifiée non valide pour le type de graphique en cours.

    A noter qu'à nouveau, après une sauvegarde du classeur tel quel (et donc avec cette feuille créée via la macro) et après avoir complétement quitté l'application Excel, à la ré-ouverture de mon classeur, l’exécution de la macro ne renvoie pas de code d'erreur et crée bien le pdf souhaité...

    Dois je changer quelque chose dans la première macro pour rendre "visible" cette feuille créée pour la seconde macro?

    Pour info, ci dessous la macro utilisée pour création de la feuille à exporter en .pdf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    Private Sub RechercheDate_Change()          'J'ai essayé de supprimer "Private" sans effet sur le pb en question
     
    If RechercheDate = "" Then
        MsgBox "Il faut ajouter le paiement avant d'éditer la quittance !!!", vbInformation, "Mauvaise Manip"
        Unload Me
        Exit Sub
    End If
     
    Worksheets("Modele Quittance").Visible = True
    RechercheDate = RechercheDate.Value
    NomLoc = EditionQuittances.RechercheLocataire.Value
    Quitt = "Quitt Temp"
     Worksheets("Modele Quittance").Copy After:=Sheets(NomLoc)
     
     With ActiveSheet
                .Name = "Quitt Temp" 'on renomme
                'on remplit notre modèle comme on ut...
     
                .Range("C1") = EditionQuittances.NomProprio & " " & EditionQuittances.AdresseProprio & " " & EditionQuittances.CPProprio & " " & EditionQuittances.CmneProprio
     
     
                .Range("A7") = EditionQuittances.NomProprio
                .Range("A8") = EditionQuittances.AdresseProprio
                .Range("A9") = EditionQuittances.CPProprio & " " & EditionQuittances.CmneProprio
     
     
     
                If NomCoLocataire.Value = "" Then
                .Range("G9") = EditionQuittances.RechercheLocataire.Value
                .Range("G10") = EditionQuittances.AdresseLocataire
                .Range("G11") = EditionQuittances.CPLocataire & " " & EditionQuittances.CmneLocataire
     
                    Else
     
                 .Range("G9") = EditionQuittances.RechercheLocataire.Value
                .Range("G10") = EditionQuittances.NomCoLocataire & " " & EditionQuittances.PrenomCoLocataire
                .Range("G11") = EditionQuittances.AdresseLocataire
                .Range("G12") = EditionQuittances.CPLocataire & " " & EditionQuittances.CmneLocataire
     
                End If
     
     
                .Range("A12") = "Bien:" & " " & EditionQuittances.Bien & " de type" & " " & EditionQuittances.TypeBien
                .Range("A13") = EditionQuittances.AdresseLocation
                .Range("A14") = EditionQuittances.CPLocation & " " & EditionQuittances.CmneLocation
                .Range("A19") = EditionQuittances.Bien & " " & EditionQuittances.TypeBien
                .Range("B22") = EditionQuittances.Etage
                .Range("E22") = EditionQuittances.Porte
                .Range("J27") = CDbl(EditionQuittances.APLLocataire)
                .Range("E11") = CDate(RechercheDate)
                .Range("I19") = CDbl(EditionQuittances.LoyerLocataire)
                .Range("I21") = CDbl(EditionQuittances.ChargesLocataire)
                .Range("I36") = CDbl(EditionQuittances.LoyerLocataire)
                .Range("I38") = CDbl(EditionQuittances.ChargesLocataire)
                .Range("A49") = EditionQuittances.RechercheLocataire.Value
                .Range("J43") = CDbl(EditionQuittances.APLLocataire)
                End With
     
                If Sheets(NomLoc).Range("M8").Value > 1 Then
                ActiveSheet.Range("I23") = CDbl(EditionQuittances.Retard)
                ActiveSheet.Range("I40") = CDbl(EditionQuittances.Retard)
     
                Else: ActiveSheet.Range("J25") = -CDbl(EditionQuittances.Retard)
                End If
     
                Application.Dialogs(xlDialogPrint).Show
     
     
     
                     If MsgBox("Souhaitez vous adresser cette quittance par mail ?", vbYesNo, "Demande de confirmation") = vbYes Then
            Call Exportpdf
     
            MsgBox "Quittance Envoyée!"
        End If
     
    Unload Me
     
    Worksheets("Modele Quittance").Visible = False
    Worksheets(Quitt).Delete
    Worksheets("Accueil").Activate
    End Sub

    Merci d'avance,

    Alexis

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    ‼ (cf règles du forum)

  5. #5
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, voir ici

    P.-S. : Balise ton code

  6. #6
    Membre régulier
    Homme Profil pro
    Prof Lib
    Inscrit en
    Octobre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Prof Lib
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 11
    Par défaut
    Bonjour Kiki29,

    Merci pour ta réponse. (J'ai modifié mon précédent message en y ajoutant les balises ;-) )

    C'est effectivement le code de Ron de Bruin que j'utilise afin d'adresser par mail une feuille excel exportée au format pdf.

    Ce code fonctionne très bien lorsque la feuille est créée soit manuellement, soit après un reboot complet de l'application excel, mais je n'arrive malheureusement pas à l'utiliser à la suite du code précédemment joint (et maintenant balisé :-D )

    Il semblerait d'ailleurs que le problème vienne de l'export au format pdf et non de l'envoi par mail (le code renvoi une erreur à cette étape la)

    Une idée de la raison?

Discussions similaires

  1. [XL-2010] Enregistrement PDF - Erreur 1004
    Par Made62 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 19/07/2016, 15h01
  2. [VBA][EXCEL]Erreur '1004' avec "Application.Run"
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/01/2006, 10h50
  3. [Excel] Erreur 1004 avec un search
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/12/2005, 13h54
  4. Insérer une image : Erreur 1004
    Par dp_favresa dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 26/10/2005, 14h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo