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 :

Problème VBA publipostage


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 64
    Par défaut Problème VBA publipostage
    Bonjour à tous,

    Je met en place un publipostage automatique par un "boutonclick" à partir d'une base de données Excel.

    Je doit remettre en forme certains champs dans le fichier principal Word de publipostage car Word utilise par défaut la connexion OLE DB.
    Par exemple pour remettre une date au format français il faut inscrire : MERGEFIELD laDate \@ "dd/MM/yyyy"
    J'ai des % dans ma base de données, au lieu de 20%, 0,2 s'affiche dans le fichier de publipostage et je cherche donc à obtenir 20% dans mon fichier Word, j'ai déjà testé des mises en forme, regardé les tutos mais pour les pourcentage je ne trouve rien...

    Ma seconde question est...Comment marche les filtres? Je m'explique!
    J'ai une liste de client dans ma base de données mais je ne veut pas imprimer mon publipostage pour tous les clients, j'ai donc créer dans cette base de données une colonne avec écris un "O" ou rien et je veux, soit dans le publipostage, soit par VBA en insérent le code dans la commande de publipostage effectuer un filtre n'imprimant que les clients où est présent le "O" dans leur ligne.

    Merci pour vos lanternes

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je crois qu'il serait utile de préciser quelle version d'Office vous utilisez car le paramétrage du publipostage a été pas mal modifié si mes souvenirs sont bons à partir d'Office 2003.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 64
    Par défaut
    Désolé,

    J'utilise Office 2007

  4. #4
    Invité
    Invité(e)
    Par défaut
    Désolé aussi, je n'ai qu'Office 2000.

    Mais vous aurez sûrement des précisions avec des utilisateurs de 2007.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 64
    Par défaut
    Oui mais ces petits soucis marchent de la même manière sur 2000 que 2007...

    Il est question d'une mise en forme et de la manière d'utiliser le filtre.... Ce n'est pas forcément dépendant de 2007

  6. #6
    Invité
    Invité(e)
    Par défaut
    Difficile de vous répondre n'ayant plus 2003 (je l'ai utilisé à titre professionnel, il y a 4 ans) mais par exemple pour ce que vous appelez un filtre sous Word 2000 c'est :

    "Outils", "Publipostage" puis "Options de requête" et dans l'onglet "Filtrer les enregistrements" puis sélectionner le champ, en l'occurrence pour vous ce serait le champ qui contient éventuellement le "O", ensuite "Elément de comparaison" vous choisiriez "Est égal à" puis dans "Comparer avec" vous devriez taper O.

    Un premier élément de réponse si vous trouvez l'équivalent sur 2007.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 64
    Par défaut
    Oui, cela se ressemble... 2000 et 2007 reste le même logiciel et ce qui existait avant existe toujours, il n'y a eu qu'un changement d'interface et des nouveautés...

    Votre réponse présente le filtre oui, est-ce que cela suffirait d'inclure ce filtre dans la trame du publipostage et que cela n'imprime que les clients où dans leur ligne est présent le "O"... car la commande que je voudrais inclure est celle-là : "imprime moi les lettres pour les clients que je veux"!

  8. #8
    Invité
    Invité(e)
    Par défaut
    Oui bien sûr que c'est la solution.

    Mais vous avez un outil permettant de vérifier votre publipostage (toujours sous Office 2000 et après avoir cliqué sur "Fusionner") :

    http://sd-1.archive-host.com/membres...185357/pub.JPG

    Vous avez aussi la possibilité d'enregistrer ce résultat dans un fichier (que vous pouvez imprimer et/ou supprimer ensuite).

    Encore un exemple, pour le cas où vous ne connaitriez pas les possibilités du publipostage (cela ne vous servira peut-être pas aujourd'hui, mais demain ?)

    Vous pouvez personnaliser vos courriers, exemple :

    -pour tous les enregistrements dont le champ peut contenir "O" vous avez aussi un champ "Titre" qui peut contenir soit "M" ou "Mme" ou "Mlle" et vous voulez que chaque courrier contienne une phrase spécifique pour les hommes (M) ou les femmes (Mme ou Mlle) : il suffit d'utiliser "Insérer un mot clé".
    Dernière modification par Invité ; 10/09/2008 à 22h17.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 64
    Par défaut
    Effectivement il me semble l'avoir vu dans les tutos, merci pour les conseils. Je n'arrive cependant pas à cerner votre concept, le concept en général?

    Je crée mon document principal avec ma base de données qui varie et évolue au cour du temps ce qui à chaque fois va changer les champs de mon publipostage. C'est pourquoi je crée une macro enclencher par un bouton dans mon doc Excel
    qui va d'abord créer les enregistrement, fusionne et envoie les lettres vers l'imprimante.
    Pour le trie il suffit juste de rentrer les paramètres que vous m'indiquez si je comprend et cela suffit à instituer la règle rechercher!

    Si c'est bien ça je vous en suis très reconnaissant, merci! Auriez vous une idée de la façon de convertir les pourcentage comme indiqué dans mon premier message... quand je prévisualise les courriers, au lieu de voir 20% par exemple, j'ai 0,20000000111. Bizarre mais cela vient de OLE DB et il faut, d'après les tutos modifiés manuellement.

    En vous remerciant encore!

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Comment sont formatés tes pourcentages dans ton classeur ? Est-ce par l'option "format -> cellule -> Pourcentage" ou bien le pourcentage est-il renseigné manuellement "60%" ?

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je viens d'essayer avec une colonne contenant les formules de calcul et les cellules au format "Pourcentage" et j'ai bien dans les documents de fusion le format défini, exemple 33%.

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Hello Jacques-Jean,
    Tu as raison mais ça dépend de la manière dont sont saisis les pourcentages dans la base de données (par format ou par saisie manuelle avec "%")
    Bonne journée

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 64
    Par défaut
    C'est bien par format et pourcentage que je les aient insérer.

    Est-ce qu'au niveau de mes calculs j'obtiendrais le même résultat en marquant dans mes cellules 20% directement en laissant "format standard"...sinon cela voudrait dire qui faut que je modifie le format directement dans le publipostage.

    Merci de votre aide et puisqu'il est midi, bon apétit

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 64
    Par défaut
    Je viens d'essayer en modifiant et en marquant 20% directement mais cela ne se modifie pas dans le publipostage, j'ai toujours 0,200000111 donc je pense qu'il faut que je modifie directement sur le champ si c'est possible...

    Parce que j'ai pas envie de modifier la connexion OLE DB, je ne sait pas les conséquences que cela aurait à l'avenir...et puis juste changer le format au niveau du publi me paraît plus facile et sans risque.

  15. #15
    Invité
    Invité(e)
    Par défaut
    Je ne pense pas que la solution soit d'entrer directement la valeur avec le caractère "%". Vous imaginez le temps à passer avec plusieurs centaines de lignes.

    Bien sûr, il est possible de copier la valeur du résultat au format texte dans une autre colonne en y accolant la caractère "%", mais là encore, ce ne doit être qu'un dernier recours, puisque chez moi cela fonctionne directement avec le résultat de la formule.

    Par contre vous avez écrit :

    Je dois remettre en forme certains champs dans le fichier principal Word de publipostage car Word utilise par défaut la connexion OLE DB.
    je précise donc :

    dans "Ouvrir la source de données" je choisis bien sûr "Feuille de calcul Ms Excel (*.xls)" et la case "Choisir l'importation" est cochée.

    Ensuite dans la boite de dialogue "Confirmer la source de données" je sélectionne "Feuille de calcul Microsoft Excel via un convertisseur".

    Est-ce que la différence viendrait de là ?

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 64
    Par défaut
    Dans Office 2007, on choisit les destinataires, c'est à dire que l'on choisit un fichier source pour importer la table, on choisit la table qui nous convient contenu dans ce fichier source Excel et...et pas plus, la table s'importe et il n'y a pas de demande de convertisseur ou pas. Par contre si chez vous, le fait de mettre 20% directement marche, chez moi cela ne marche pas...

    C'est pourquoi je souligne que dans mes com que la solution la plus simple et de modifier, si c'est possible et si cela fonctionne, le formet champs directement dans le publi

    Alt F9 permet d'entrevoir le code champ sur le publi est de rajouter un format comme expliciter dans mes tous premier commentaires.

    Déjà il faut que je règle ce petit problème qui bousille mon doc... dans mon doc Excel si je rentre manuellement 20%, le format % ce met automatiquement, est-ce que je peut l'éviter? Ce qui peut être réglerait la question!

    Ensuite pour l'automatisation, suis-je obliger d'activer la référence "Microsoft Word xx.x Object Library" pour pouvoir écrire ma macro?

    Pour cette macro, il y en a une longue dans le tuto "publipostage Word/excel de Silky Road" et une version plus récente de Olivier Lebeau "Fusion et publipostage par l'interface VBA" et si je comprend il suffit d'inscrire une fois que la base de données est définit et que votre doc principal de fusion est complet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub DocPublipostage ()
    ActiveDocument.MailMerge=wdSendToPrinter
    End Sub
    Merci pour votre soutien

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 64
    Par défaut
    Vu le casse tête, j'ai trouvé un subterfuge :

    MERGEFIELD Champs \# ,-#0% et ça ressemble à quelque chose...

    Pour la macro quelqu'un aurait-il une réponse

  18. #18
    Invité
    Invité(e)
    Par défaut
    Vous avez bien regardé ici :

    http://silkyroad.developpez.com/Exce...eWordExcel/#LX

    vous devriez trouver votre réponse particulièrement pour votre dernière question au paragraphe X.

    Ensuite au paragraphe IV vous pouvez trouver aussi comment ne pas utiliser la connexion par défaut (OLE DB).


  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 64
    Par défaut
    Oui c'est exactement celui-là...

    Je me sert d'ailleurs de la Macro qui y est marqué pour l'impression. Je ne sais pas si elle marche encore (je suis entrain de testé), la seule modif que je voudrais y apporter serais de lancer 2 impression pour chaque client.

    Merci encore de votre aide

  20. #20
    Invité
    Invité(e)
    Par défaut
    Il y a toujours plusieurs solutions :

    - une première que je vois et pour rester simple avec :

    placé au bon endroit de la procédure vous lancerez 2 fois l'impression mais bien évidemment vous n'aurez pas 2 lettres imprimées l'une derrière l'autre mais 2 fois l'ensemble des lettres.

    -la 2ème : au lieu de choisir la fusion vers l'imprimante vous choisissez "dans un nouveau document" et là vous pourrez choisir les paramètres d'impression et vous fermez le nouveau document sans l'enregistrer.

    Vous pouvez créer ce code vous-même pour l'intégrer dans la procédure :

    "Outils", "Macro" puis "Nouvelle macro" et vous effectuez les opérations nécessaires et vous arrêtez la macro.

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

Discussions similaires

  1. [AC-2007] Problème de publipostage entre Access & Word via VBA
    Par sebaci972 dans le forum VBA Access
    Réponses: 0
    Dernier message: 12/05/2009, 20h10
  2. Réponses: 2
    Dernier message: 17/01/2007, 09h22
  3. problème de publipostage
    Par emma07 dans le forum Access
    Réponses: 9
    Dernier message: 05/07/2006, 11h50
  4. Problèmes avec publipostage
    Par DiabloZizi dans le forum Excel
    Réponses: 4
    Dernier message: 09/03/2006, 16h54
  5. Probléme VBA Word et SQL server
    Par andrau dans le forum VBA Word
    Réponses: 2
    Dernier message: 12/10/2005, 11h52

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