[Résolu][Calc] Créer un fichier après impression
Modérateur : Vilains modOOs
Règles du forum
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 !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
Roby68
- Membre OOrganisé

- Messages : 66
- Inscription : 09 oct. 2013 21:12
[Résolu][Calc] Créer un fichier après impression
Bonjour le Forum,
Ne trouvant pas la solution adéquat à mon problème, je me tourne vers vous.
Le fichier joint sert à sortir 5 formulaires automatiquement.
- au lancement de celui-ci la feuille "Couverture" est vierge, chaque opérateur la remplit et toutes les informations sont réparti ensuite sur les autres feuilles automatiquement.
- après la saisie l'opérateur lance l'impression en cliquant sur le bouton "Edition du dossier (5 feuilles)" et tous les formulaires sont édités sur l'imprimante.
- après la fermeture du fichier les données sont perdues.
J'aimerai si c'est possible:
- Faire une copie de la feuille "Attribution" (tous les champs saisies doivent être figés - pas de "lien") dans un fichier avec comme nom de fichier le nom et prénom du dossier saisie (Cellules D13 et D15 dans la feuille Couverture ou bien plus facile dans la cellule E43 de la feuille Attribution) après avoir cliqué sur le bouton "Edition..." .
- Que le Fichier soit dans un répertoire spécifique (cellule D2 de la feuille Config pour l'exemple).
- et sans que l'opérateur ne fasse des manipulation supplémentaires, que cela soit transparent et non visible pour l'opérateur.
Finalité, avoir en quelque sorte une visualisation de tous les dossiers saisis.
Merci d'avance à tous ceux qui prendront la peine de m'aider.
Roby
Ne trouvant pas la solution adéquat à mon problème, je me tourne vers vous.
Le fichier joint sert à sortir 5 formulaires automatiquement.
- au lancement de celui-ci la feuille "Couverture" est vierge, chaque opérateur la remplit et toutes les informations sont réparti ensuite sur les autres feuilles automatiquement.
- après la saisie l'opérateur lance l'impression en cliquant sur le bouton "Edition du dossier (5 feuilles)" et tous les formulaires sont édités sur l'imprimante.
- après la fermeture du fichier les données sont perdues.
J'aimerai si c'est possible:
- Faire une copie de la feuille "Attribution" (tous les champs saisies doivent être figés - pas de "lien") dans un fichier avec comme nom de fichier le nom et prénom du dossier saisie (Cellules D13 et D15 dans la feuille Couverture ou bien plus facile dans la cellule E43 de la feuille Attribution) après avoir cliqué sur le bouton "Edition..." .
- Que le Fichier soit dans un répertoire spécifique (cellule D2 de la feuille Config pour l'exemple).
- et sans que l'opérateur ne fasse des manipulation supplémentaires, que cela soit transparent et non visible pour l'opérateur.
Finalité, avoir en quelque sorte une visualisation de tous les dossiers saisis.
Merci d'avance à tous ceux qui prendront la peine de m'aider.
Roby
Dernière modification par Bidouille le 19 mai 2014 07:33, modifié 3 fois.
Raison : [Résolu] remplace [Resolu]
Raison : [Résolu] remplace [Resolu]
LibreOffice 5.2.6.2 / LibreOffice 5.3 ( au Bureau ) "Par obligation de version".
Win 7 Pro
LibreOffice 6.2.5.2 ( Maison )
Win 10 Pro
Win 7 Pro
LibreOffice 6.2.5.2 ( Maison )
Win 10 Pro
-
SPPP
- Membre OOrganisé

- Messages : 94
- Inscription : 14 août 2012 15:53
Re: [Calc] Créer un fichier après impression
Bonjour,
J'ai modifié le code qui sert à effacer le formulaire.
J'ai ajouter un bout de code pour enregistrer le fichier sous le format "ods" et sous le format "PDF".
J'ai modifié le chemin dans la feuille config pour qu'il soit accepté.
COOrdialement,
SPPP.
J'ai modifié le code qui sert à effacer le formulaire.
J'ai ajouter un bout de code pour enregistrer le fichier sous le format "ods" et sous le format "PDF".
J'ai modifié le chemin dans la feuille config pour qu'il soit accepté.
Code : Tout sélectionner
REM ***** BASIC *****
Sub Lance
call efface
End sub
Sub Dossier
call Edition
call Efface
'Indique que le document n'est pas modifié,
'permet d'éviter la boite de dialogue qui demande si l'on veut enregistrer le document.
ThisComponent.Modified = 0
End Sub
sub Edition
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
Dim oChemin as String
Dim oNom as String
Dim PropPDF(0) as new com.sun.star.beans.PropertyValue
Dim oDoc as Object
Dim dummy()
Dim URL as String
oDoc = ThisComponent
rem ----------------------------------------------------------------------
rem get access to the document
document = oDoc.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Print", "", 0, Array())
'Recupere l'adresse du fichier
URL = ThisComponent.URL
'configuration de l'exportation du fichier PDF
PropPDF(0).Name = "FilterName"
PropPDF(0).Value = "calc_pdf_Export"
'Lecture du chemin
oChemin = oDoc.Sheets.GetByName("Config").GetCellRangeByName("D2").String
'Lecture du nom et du prénom
oNom = oDoc.Sheets.GetByName("Couverture").GetCellRangeByName("D13").String & " - " & oDoc.Sheets.GetByName("Couverture").GetCellRangeByName("D15").String
'exporte au format PDF
oDoc.StoreToURL("file:///" & oChemin & oNom & ".pdf" ,PropPDF())
'Enregistre le fichier dans le dossier
oDoc.StoreAsURL("file:///" & oChemin & oNom & ".ods" ,dummy())
'Restaure l'adresse d'origine du fichier, afin d'eviter d'ecraser la sauvegarde.
oDoc.StoreAsURL(URL ,dummy())
End Sub
Sub Efface
rem define variables
Dim Document as object
Document = ThisComponent.Sheets.GetByName("Couverture")
Document.GetCellRangeByName("E3").clearContents(5)
Document.GetCellRangeByName("G3").String = "PSE"
Document.GetCellRangeByName("I3").String = "H"
Document.GetCellRangeByName("J3").String = "Colmar"
Document.GetCellRangeByName("E5").String = "RB"
Document.GetCellRangeByName("F5").clearContents(5)
Document.GetCellRangeByName("E8").String = "NON"
Document.GetCellRangeByName("G8").clearContents(5)
Document.GetCellRangeByName("E10").clearContents(5)
Document.GetCellRangeByName("D13").clearContents(5)
Document.GetCellRangeByName("D15").clearContents(5)
Document.GetCellRangeByName("D17").clearContents(5)
Document.GetCellRangeByName("D19").clearContents(5)
Document.GetCellRangeByName("J13").clearContents(5)
Document.GetCellRangeByName("J15").clearContents(5)
Document.GetCellRangeByName("J19").clearContents(5)
Document.GetCellRangeByName("D21:J21").clearContents(5)
Document.GetCellRangeByName("D24").String = "NON"
Document.GetCellRangeByName("F24").clearContents(5)
Document.GetCellRangeByName("J24").String = "NON"
Document.GetCellRangeByName("F26").clearContents(5)
Document.GetCellRangeByName("H26").clearContents(5)
Document.GetCellRangeByName("G28").clearContents(5)
Document.GetCellRangeByName("J28").clearContents(5)
Document.GetCellRangeByName("D29").clearContents(5)
Document.GetCellRangeByName("J29").clearContents(5)
Document.GetCellRangeByName("F31").clearContents(5)
Document.GetCellRangeByName("F33").clearContents(5)
Document.GetCellRangeByName("J35").String = "NON"
Document.GetCellRangeByName("C37").clearContents(5)
Document.GetCellRangeByName("C40").clearContents(5)
Document.GetCellRangeByName("M3").clearContents(5)
Document.GetCellRangeByName("M5").clearContents(5)
Document.GetCellRangeByName("M8").clearContents(5)
Document.GetCellRangeByName("M13").String = "GSM"
Document.GetCellRangeByName("M15").clearContents(5)
End SubSPPP.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Lubuntu 14.04 - OOo 4.1.1
XP SP3 - OOo 4.1.0
XP SP3 - LOo 4.4.5.2
XP SP3 - OOo 4.1.0
XP SP3 - LOo 4.4.5.2
-
Roby68
- Membre OOrganisé

- Messages : 66
- Inscription : 09 oct. 2013 21:12
Re: [Resolu][Calc] Créer un fichier après impression
Bonjour le Forum, SPPP
Merci pour ta solution, je testerai au bureau et espère que cela fonctionnera sur un répertoire réseau.
Bon dimanche à tous
Roby
Merci pour ta solution, je testerai au bureau et espère que cela fonctionnera sur un répertoire réseau.
Bon dimanche à tous
Roby
LibreOffice 5.2.6.2 / LibreOffice 5.3 ( au Bureau ) "Par obligation de version".
Win 7 Pro
LibreOffice 6.2.5.2 ( Maison )
Win 10 Pro
Win 7 Pro
LibreOffice 6.2.5.2 ( Maison )
Win 10 Pro
-
SPPP
- Membre OOrganisé

- Messages : 94
- Inscription : 14 août 2012 15:53
Re: [Resolu][Calc] Créer un fichier après impression
Bonjour,
En relisant, je me suis aperçu que j'avais fait des erreurs.
j'ai modifié le code :
- Seule la feuille attribution est exportée au format PDF.
- Dans le précédent code, une copie du fichier était enregistrée.
Le problème c'est que les macros restent activées et un appui sur le bouton efface le formulaire.
La copie sous la forme d'un fichier ".ods" est tout simplement supprimée.
Bon dimanche.
SPPP.
En relisant, je me suis aperçu que j'avais fait des erreurs.
j'ai modifié le code :
Code : Tout sélectionner
sub Edition
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
Dim oChemin as String
Dim oNom as String
Dim PropPDF(1) as new com.sun.star.beans.PropertyValue
Dim FiltrePDF(0) as new com.sun.star.beans.PropertyValue
Dim args(0) as new com.sun.star.beans.PropertyValue
Dim oDoc as Object
Dim oFeuille as Object
Dim oDoc2 as Object
Dim dummy()
Dim URL as String
Dim NoFeuilleTravail as Integer
oDoc = ThisComponent
rem ----------------------------------------------------------------------
rem get access to the document
document = oDoc.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Print", "", 0, Array())
'Recupere l'adresse du fichier
URL = ThisComponent.URL
'configuration de l'exportation du fichier PDF
FiltrePDF(0).Name = "PageRange"
FiltrePDF(0).Value = "2"
PropPDF(0).Name = "FilterName"
PropPDF(0).Value = "calc_pdf_Export"
PropPDF(1).Name = "FilterData"
PropPDF(1).Value = FiltrePDF
'Lecture du chemin
oChemin = oDoc.Sheets.GetByName("Config").GetCellRangeByName("D2").String
'Lecture du nom et du prénom
oNom = oDoc.Sheets.GetByName("Couverture").GetCellRangeByName("D13").String & " - " & oDoc.Sheets.GetByName("Couverture").GetCellRangeByName("D15").String
'exporte au format PDF
oDoc.StoreToURL("file:///" & oChemin & oNom & ".pdf" ,PropPDF())
End Sub- Dans le précédent code, une copie du fichier était enregistrée.
Le problème c'est que les macros restent activées et un appui sur le bouton efface le formulaire.
La copie sous la forme d'un fichier ".ods" est tout simplement supprimée.
Bon dimanche.
SPPP.
Lubuntu 14.04 - OOo 4.1.1
XP SP3 - OOo 4.1.0
XP SP3 - LOo 4.4.5.2
XP SP3 - OOo 4.1.0
XP SP3 - LOo 4.4.5.2
-
Roby68
- Membre OOrganisé

- Messages : 66
- Inscription : 09 oct. 2013 21:12
Re: [Résolu][Calc] Créer un fichier après impression
Re bonjour le Forum, SPPP
Un peu trop vite dans l'option résolu.
j'ai effectué des essais au bureau et il ne prend pas apparement le répertoire réseau.
Pourtant j'ai choisi le plus simple possible ("K:\Fiches").
L'erreur affichée concerne la ligne suivante:
'exporte au format PDF
oDoc.StoreToURL("file:///" & oChemin & oNom & ".pdf" ,PropPDF())
Erreur: Erreur d'éxécution du basic:
Une exception s'est produite:
Type: com.sun.star.task.errorcodeIOException
Message: .
Merci
Un peu trop vite dans l'option résolu.
j'ai effectué des essais au bureau et il ne prend pas apparement le répertoire réseau.
Pourtant j'ai choisi le plus simple possible ("K:\Fiches").
L'erreur affichée concerne la ligne suivante:
'exporte au format PDF
oDoc.StoreToURL("file:///" & oChemin & oNom & ".pdf" ,PropPDF())
Erreur: Erreur d'éxécution du basic:
Une exception s'est produite:
Type: com.sun.star.task.errorcodeIOException
Message: .
Merci
LibreOffice 5.2.6.2 / LibreOffice 5.3 ( au Bureau ) "Par obligation de version".
Win 7 Pro
LibreOffice 6.2.5.2 ( Maison )
Win 10 Pro
Win 7 Pro
LibreOffice 6.2.5.2 ( Maison )
Win 10 Pro
-
SPPP
- Membre OOrganisé

- Messages : 94
- Inscription : 14 août 2012 15:53
Re: [Résolu][Calc] Créer un fichier après impression
Bonjour,
il faut mettre des "/" au la place des "\" dans les liens.
Si c'est un emplacement réseau, il faut mettre un "//" en tout premier.
EDIT : après essais
Si le lecteur se trouve sur un réseau, il faut utiliser
//nom du PC/lecteur/dossier/ (par exemple //Serveur/K/fiches/)
Mais comme dans ton cas le lecteur est monté et qu'il est identifie par la lettre K, il faut que tu utilises "K:/fiches/"
COOrdialement,
SPPP.
il faut mettre des "/" au la place des "\" dans les liens.
Si c'est un emplacement réseau, il faut mettre un "//" en tout premier.
EDIT : après essais
Si le lecteur se trouve sur un réseau, il faut utiliser
//nom du PC/lecteur/dossier/ (par exemple //Serveur/K/fiches/)
Mais comme dans ton cas le lecteur est monté et qu'il est identifie par la lettre K, il faut que tu utilises "K:/fiches/"
COOrdialement,
SPPP.
Dernière modification par SPPP le 19 mai 2014 09:05, modifié 3 fois.
Lubuntu 14.04 - OOo 4.1.1
XP SP3 - OOo 4.1.0
XP SP3 - LOo 4.4.5.2
XP SP3 - OOo 4.1.0
XP SP3 - LOo 4.4.5.2
-
Dude
- IdOOle de la suite

- Messages : 26128
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Résolu][Calc] Créer un fichier après impression
Prends l'habitude de te servir du BBcode pour rendre lisible ton message :
Pour compléter les propos de SPPP :
Regarde si le chemin est correct en mettant cela dans une variable et en l'affichant par un Print.
Utilise la fonction ConvertToUrl pour t'assurer que la notation passée est valide.
Enfin, fais le test sur ton propre disque afin d'écarter un problème de réseau.
Code : Tout sélectionner
oDoc.StoreToURL("file:///" & oChemin & oNom & ".pdf" ,PropPDF())Regarde si le chemin est correct en mettant cela dans une variable et en l'affichant par un Print.
Utilise la fonction ConvertToUrl pour t'assurer que la notation passée est valide.
Enfin, fais le test sur ton propre disque afin d'écarter un problème de réseau.
-
Roby68
- Membre OOrganisé

- Messages : 66
- Inscription : 09 oct. 2013 21:12
Re: [Résolu][Calc] Créer un fichier après impression
Bonjour le Forum, SPPP, Dude,
Ok merci pour les astuces. Cela fonctionne.
Bonne journée à tous.
Roby
Ok merci pour les astuces. Cela fonctionne.
Bonne journée à tous.
Roby
LibreOffice 5.2.6.2 / LibreOffice 5.3 ( au Bureau ) "Par obligation de version".
Win 7 Pro
LibreOffice 6.2.5.2 ( Maison )
Win 10 Pro
Win 7 Pro
LibreOffice 6.2.5.2 ( Maison )
Win 10 Pro