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

OpenOffice & LibreOffice Discussion :

Champ de Publipostage [LibreOffice][Tableur]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 5
    Points : 8
    Points
    8
    Par défaut Champ de Publipostage
    Bonjour !

    Je viens vous demander de l'aide car je desespère un petit peu..

    Je travaille sur un document Calc qui sert de "base de donnée" (ce n'est pas super adapté je suis au courant, mais je suis limité à ça) et je voudrais automatiser le publipostage de ces données vers un document modèle (qui regroupe lui même 4 documents) afin que les utilisateurs n'aient même pas à ouvrir ce document, tout se ferait à partir de ce même document Calc ou ils n'auraient qu'a rentrer les infos.

    Le problème est que je n'arrive pas à faire selectionner à ma macro de publipostage "un seul enregistrement". A chaque fois que je lance le publipostage du document calc vers le document writer par ma macro, ma macro va me réaliser autant de documents qu'il y a d'entrées. Vous comprenez ?

    Dans l'idée, l'utilisateur n'aura qu'a selectionner une entrée parmis une liste deroulante et cliquera sur "generer .odt" et c'est bingo.

    Le seul problème c'est que je n'arrive pas à trouver la proprieté - existante, évidemment - qui permet d'indiquer lors du publipostage l'entrée que l'on souhaite publipostée.

    Voici mon code de publipostage :

    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
    Sub PubliPostage()
     
    	Dim nomSource As String 'Base_Publipostage_V3
    	Dim nomTable As String 'Feuille Machine
    	Dim colonnePrefixe As String 'Nom
    	Dim URLmodele As String 
    	Dim repResultats As String
    	Dim monPublipostage As Object, props()
    	Dim Nom As Object
     
    	nomSource = "Base_Publipostage_V3"
    	nomTable = "Feuille Machine"
    	colonnePrefixe = "Nom"
    	'Nom = Event.Source.Context
     
    	URLmodele = ConvertToURL("D:\MonBureau\FICHE REGROUPE.odt")
    	repResultats = ConvertToURL("D:\MonBureau\publipostage")
    	monPublipostage = createUnoService("com.sun.star.text.MailMerge")
     
     
    	With monPublipostage
    		.DataSourceName = nomSource
    		.CommandType = com.sun.star.sdb.CommandType.TABLE
    		.Command = nomTable
    		.OutputType = com.sun.star.text.MailMergeType.FILE
    		.FileNameFromColumn = True
    		.FilenamePrefix = colonnePrefixe
    		'.SaveAsSingleFile = True
    		'.SaveFilter = "writer_pdf_Export" ' exemple d'export en PDF
    		'ici plus tard : pageRange
    		.DocumentURL = URLmodele
    		.OutputURL = repResultats
    		.execute(props()) 'Envoi de la commande de publipostage
    		Xray monPublipostage
    	End With
     
    	MsgBox("Fin du publipostage")
     
    End Sub

    En ésperant que quelqu'un connait la réponse et peut me la communiquer !

    Merci beaucoup !

  2. #2
    Membre éprouvé
    Homme Profil pro
    utilisateur
    Inscrit en
    Janvier 2017
    Messages
    669
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : utilisateur
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2017
    Messages : 669
    Points : 1 109
    Points
    1 109
    Par défaut Champ de Publipostage
    Bonjour,

    J'ajouterais simplement une colonne dans le classeur, avec 1 pour imprimer et vide pour ne pas imprimer
    et bien sur les lignes de commande correspondantes dans la macro
    LibreOffice 7.5.9.2.M1 (x64) FR-YT 05/12/23
    OS : Windows 11.0

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 5
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par njhub Voir le message
    Bonjour,

    J'ajouterais simplement une colonne dans le classeur, avec 1 pour imprimer et vide pour ne pas imprimer
    et bien sur les lignes de commande correspondantes dans la macro
    Tout d'abord merci de ta réponse !

    Il y a un petit problème à ta solution, le publipostage fonctionne même si le champ est égale à 0.
    Et ta solution avec un SI impliquerait que toutes sauf 1 soient égales à 0..

  4. #4
    Membre éprouvé
    Homme Profil pro
    utilisateur
    Inscrit en
    Janvier 2017
    Messages
    669
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : utilisateur
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2017
    Messages : 669
    Points : 1 109
    Points
    1 109
    Par défaut Champ de Publipostage
    Bonjour,

    l'idée c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if "colonne choisie" = 1
    print (.OutputType = com.sun.star.text.MailMergeType.FILE .FileNameFromColumn = True .FilenamePrefix = colonnePrefixe)
    set "colonne choisie" = 2 ou date d'impression
    loop until "colonne choisie" = 1
    exit loop
    LibreOffice 7.5.9.2.M1 (x64) FR-YT 05/12/23
    OS : Windows 11.0

  5. #5
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Points : 160
    Points
    160
    Par défaut Writer Publipostage
    Bonjour,

    Pour le Publipostage il faut mieux passer par Writer en liant sur une feuille de calc . L'avantage est beaucoup plus simple et on peut choisir les enregistrements que l'on souhaite effectuer le publipostage.

    Je me suis basé sur l'aide http://ia71.ac-dijon.fr/chalon2/tuto...ostage_OOo.pdf pour faire mon publipostage.

    Bon courage

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 22/10/2019, 15h26
  2. Réponses: 3
    Dernier message: 26/01/2016, 11h45
  3. Formatage d'un champ de publipostage en $
    Par Flaguette dans le forum Word
    Réponses: 8
    Dernier message: 31/05/2008, 00h10
  4. calculer à partir de champs de publipostage
    Par elland dans le forum Word
    Réponses: 7
    Dernier message: 25/09/2007, 15h28
  5. [vba-access] Test sur valeur des champs puis publipostage
    Par realthunderbolt dans le forum Access
    Réponses: 1
    Dernier message: 01/08/2006, 16h38

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