[Résolu][Calc] Export PDF : Erreur BASIC '423'

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Laetitia Amblamex
Fraîchement OOthentifié
Messages : 4
Inscription : 13 janv. 2025 12:46

[Résolu][Calc] Export PDF : Erreur BASIC '423'

Message par Laetitia Amblamex »

Bonjour à tous,

Ceci est mon premier message, j'espère ne pas faire d'impair et je vous remercie par avance pour votre aide !

Je tente depuis ce matin de créer un code pour exporter une feuille sous format pdf avec des éléments précis (numéro facture_nom client).
J'ai demandé à Chat GPT, à Gemini IA avant de solliciter votre aide, j'ai lu plusieurs messages de ce forum, mais mon problème reste entier.
Je suis sous Apache 4.1.15, windows 7.

Voici le code saisi :

Code : Tout sélectionner

Sub ExporterFeuilleEnPDF()

    oDoc = ThisComponent
    oSheet = oDoc.Sheets.getByName("Facture2024")
    sNumFacture = oSheet.getCellByPosition(6,4).String
    sNomClient = oSheet.getCellByPosition(6,8).String
    sNomFichier = sNumFacture & _ & sNomClient & ".pdf"
    sFileName = ("C:\Users\MSI\Documents\Amblamex\CCA\Retrocession\Factures retro CCA2024" & sNomFichier)

oDoc.exportPDF(File:=sFileName, ExportFilterName:="writer_pdf_Export")

End Sub

J'ai essayé, suite aux réponses de l'IA de mettre un chemin plus court, d'enlever "sNomfichier" à la fin du FileName, j'ai cherché si "writer_pdf_Export" était le bon nom de filtre pour ma version d'OpenOffice, mais impossible de trouver l'info nulle part.
J'ai enlevé les " " sur le nom du FileName, enlever les ( ) , mis l'un ou l'autre puis aucun ... rien n'y fait, le message d'erreur reste le même :
Erreur d'exécution du BASIC '423' Export PDF


Même si certains éléments sont en rouge (cf. image en PJ), j'ai corrigé au fur et à mesure des messages d'erreur affichés depuis ce matin (j'ai arrêté de les compter) et cela "semble" fonctionner (... ou pas :shock: ), sauf ma dernière ligne.

Je vous remercie infiniment par avance pour votre aide.
Bonne journée
Laëtitia
Dernière modification par Laetitia Amblamex le 16 janv. 2025 08:24, modifié 2 fois.
Apache open Office 4.1.15
Windows 7
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9821
Inscription : 28 août 2010 08:45

Re: [MACRO] Export PDF : Erreur BASIC '423'

Message par micmac »

Bonjour et bienvenue,
j'espère ne pas faire d'impair
La balise [MACRO] ne fait pas partie de notre nomenclature.
S'il s'agit du tableur ; la balise [Calc] s'impose alors, sinon, [Basic]. (voir les règles de cette section dans le bandeau rose). Veillez à respecter la présentation (Première lettre majuscule, le reste en minuscules, le tout entre crochets).

Pour faciliter la lecture du code, balisez-le comme tel.
Insérer du code :
Sélectionnez-le et cliquez sur ce bouton Image

Bonne continuation
Touche Ctrl de Windows = touche cmd⌘ sur Mac
OpenOffice > Outils > Options sur Windows = OpenOffice > Préférences sur macOS
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25976
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [MACRO] Export PDF : Erreur BASIC '423'

Message par Dude »

Salut,

Merci de corriger le balisage de ton titre comme le demande le modo afin de continuer à recevoir des réponses.
Laetitia Amblamex a écrit : 13 janv. 2025 13:19 J'ai demandé à Chat GPT, à Gemini IA avant de solliciter votre aide
ChatProut génère surtout n'importe quoi :

Code : Tout sélectionner

oDoc.exportPDF(File:=sFileName, ExportFilterName:="writer_pdf_Export")
Cette ligne n'est pas du Basic et il est donc normal qu'elle génère une erreur.
Surtout avec le filtre "writer_pdf_Export" pour exporter depuis... Calc. :lol:

Une petite recherche dans ce forum sur la fonction ExportDirectToPDF te fournira du code valide fait par de vrais humains.

Si tu n'y arrives pas, tu joins un document sur lequel on puisse travailler.
Laetitia Amblamex
Fraîchement OOthentifié
Messages : 4
Inscription : 13 janv. 2025 12:46

Re: [Calc] Export PDF : Erreur BASIC '423'

Message par Laetitia Amblamex »

Bonjour et merci pour vos réponses.
J'ai corrigé le balisage, j'espère que c'est maintenant ok.
En effet Dude, j'avais bien vu que writer semblait bizarre. J'avais essayé avec Calc, mais ça n'avait pas plus marché.

Ayant lu sur le forum qu'il fallait essayé déjà de trouver par soi-même, et étant absolument nulle en informatique, j'ai fait avec ce que j'avais entre le forum et les outils à dispo .... loin de moi l'idée de vous vexer :D

Après avoir lu des rubriques susceptibles de m'intéresser sur le forum, et je me suis basée sur la macro de Sébastien C.
Sébastien C.:

Code : Tout sélectionner

'Macro obtenue sur le forum officiel Apache OpenOffice 
'https://forum.openoffice.org/fr/forum/viewtopic.php?p=57727#p57727
'Auteur : Sébastien C.
Sub convertPDFcell()
 Dim monDocument As Object : Dim nomFichier As String
 Dim propFich(0) As New com.sun.star.beans.PropertyValue

 monDocument = thisComponent
 propFich(0).Name = "FilterName" : propFich(0).Value = "calc_pdf_Export"
 
 ' Feuille1 = nom de la feuille ; D4 = adresse de la cellule. ; "/Users/vincent/Desktop/" : adresse du fichier.
 nomFichier = monDocument.Sheets.getByName("Feuille1").getCellRangeByName("D4").String
 monDocument.storeToURL(convertToURL("/Users/vincent/Desktop/" & nomFichier & ".pdf"), propFich()) 
end sub
Mais ça enregistrait tout le document et pas avec les noms de cellules que je souhaitais.
Alors j'ai essayé de garder ma trame de départ qui semble correspondre à ce que je cherche, et je me retrouve maintenant avec un souci de prop fich, et je ne sais absolument pas ce que c'est.

Voilà où j'en suis (et merci Sébastien C. au passage pour ta macro):

Code : Tout sélectionner

Sub ExporterFeuilleEnPDF()

    monDocument = ThisComponent
    nomFichier = monDocument.Sheets.getByName("Facture2024")
    sNumFacture = nomFichier.getCellByPosition(6,4).String
    sNomClient = nomFichier.getCellByPosition(6,8).String
    sNomFichier = sNumFacture & _ & sNomClient & ".pdf"
    sFileName = ("C:\Users\MSI\Documents\Amblamex\CCA\Retrocession\Factures retro CCA2024" & sNomFichier)
    propFich = com.sun.star.beans.PropertyValue
    propFich(0) = "FilterName" : [b][color=#FF0000]propFich(0).Value = "calc_pdf_Export"[/color][/b]
    
monDocument.storeToURL(convertToURL("C:\Users\MSI\Documents\Amblamex\CCA\Retrocession\Factures retro CCA2024" & nomFichier & ".pdf"), propFich()) 

End Sub
Ca me surligne ça, avec message "91 Variable d'objet non définie"

Je sens que je suis pas loin, mais je bloque.
Je n'ai rien trouvé d'autre qui puisse répondre à ma connaissance. Merci à tous pour votre aide :super:
Laëtitia
Dernière modification par Oukcha le 16 janv. 2025 11:59, modifié 5 fois.
Raison : Correction code pour citation auteur
Apache open Office 4.1.15
Windows 7
Avatar de l’utilisateur
Noonours
PassiOOnné
PassiOOnné
Messages : 529
Inscription : 11 mai 2013 00:11
Localisation : Aix en Provence

Re: [Calc] Export PDF : Erreur BASIC '423'

Message par Noonours »

Bonjour
Remplace la ligne:

Code : Tout sélectionner

propFich = com.sun.star.beans.PropertyValue
par:

Code : Tout sélectionner

dim propFich(0) as new com.sun.star.beans.PropertyValue
Cordialement,
Noonours procrastinateur perfectionniste: "Je fais rien, mais demain je l'ferai mieux"

Pour obtenir la réponse la plus précise possible, VEUILLEZ JOINDRE UN FICHIER

LibO 24.8.7.2 et OpenOffice 4.1.15 sous Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25976
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Export PDF : Erreur BASIC '423'

Message par Dude »

Laetitia Amblamex a écrit : 15 janv. 2025 15:56 et étant absolument nulle en informatique, j'ai fait avec ce que j'avais entre le forum et les outils à dispo
Dans ce cas, tu installes zBasic et tu fais ça en quelques lignes :

Code : Tout sélectionner

Sub Main
  GlobalScope.BasicLibraries.loadLibrary ("zBasic")
  
  sFeuille = "Feuille4"
  sRep = "c:\Users\MSI\Documents\Amblamex\CCA\Retrocession\Factures retro CCA2024\"
  sNumFac = zCellule.Lit (sFeuille, "G5", "C")
  sNomClient = zCellule.Lit (sFeuille, "G9", "C")
  sNomFichier = sNumFacture & _ & sNomClient & ".pdf"

  zFeuille.EnPDF (sFeuille, sRep & sNomFichier)
End Sub
Laetitia Amblamex a écrit : 15 janv. 2025 15:56Voilà où j'en suis (et merci Sébastien C. au passage pour ta macro)
Il est dans ce cas d'usage de citer la source dans le code de la macro que tu publies.
C'est une question de respect pour son auteur.
Laetitia Amblamex
Fraîchement OOthentifié
Messages : 4
Inscription : 13 janv. 2025 12:46

Re: [Calc] Export PDF : Erreur BASIC '423'

Message par Laetitia Amblamex »

Bonjour à tous,

Merci Noonours pour ta réponse. Malgré tout, je continuais d'avoir un message d'erreur sur la dernière ligne.

J'ai donc utilisé le mode opératoire de Dude et installé zBasic.
Et ça fonctionne !!!!! :D
Donc mille mercis à vous tous d'avoir pris le temps de me répondre et d'avoir cherché.
Et mille Mercis à Dude pour la solution finale !

Je passe donc en résolu.
Et je veux bien appliquer "Il est dans ce cas d'usage de citer la source dans le code de la macro que tu publies." J'ai mentionné Sébastien C. juste avant de donner le code macro que j'avais utilisé venant de lui "je me suis basée sur la macro de Sébastien C." : comment puis-je l'intégrer autrement ? Dans l'objet du sujet ?
Dude, que je te cite ;)

Bonne journée à tous et encore merci merci merci
Apache open Office 4.1.15
Windows 7
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25976
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Export PDF : Erreur BASIC '423'

Message par Dude »

Laetitia Amblamex a écrit : 16 janv. 2025 08:23comment puis-je l'intégrer autrement ?
Dude a écrit : 16 janv. 2025 07:42 dans le code de la macro que tu publies
Laetitia Amblamex
Fraîchement OOthentifié
Messages : 4
Inscription : 13 janv. 2025 12:46

Re: [Résolu][Calc] Export PDF : Erreur BASIC '423'

Message par Laetitia Amblamex »

Voilà, c'est fait !

Encore merci beaucoup à tous !! :)
Apache open Office 4.1.15
Windows 7
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 4260
Inscription : 06 oct. 2008 08:03

Re: [Résolu][Calc] Export PDF : Erreur BASIC '423'

Message par Oukcha »

Bonjour,

Pour mettre des commentaires dans une macro, ceux-ci doivent être précédés d'une quote simple.

J'ai corrigé pour vous,

Cordialement
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image