Excel vers word - Publipostage via VBA

Oui, j'ai remplacé par l'adresse de mon document Word.

Peut-être est-ce due à ce qu'il y a dans mes cellules Excel ? (chiffres, dates, nom,adresses, etc..) Pourtant, j'ai tout passé en format "texte"

Va dans ta partie éditeur de code, et dans ta macro vba, appuis dans la colonne de gauche afin de faire apparaître un signal rouge de la sorte (Met le au même endroit que sur l'image):

capture

Ensuite retourne sur ton fichier excel et clique sur ton bouton. En appuyant sur F8 tu va pouvoir effectuer ta macro ligne par ligne et ainsi voir à quelle ligne se situe l'erreur et nous le dire

Le bouton créé est sur la même feuille que les infos excel ? ou sur un autre onglet ?

si non, manque l'indication de la feuille avant les Range("..." ) .value

Oui, j'ai bien mi le bouton sur la même feuille que celle ou je met mes données.

Quand je fais ta manipulation Bboutz, je place le marqueur, j'appuis sur mon bouton, j'appuis sur F8, donc une fenêtre s'ouvre avec 3 choix (lecture seule, copie et un troisième choix), je choisi donc lecture seule (si je choisi les autres choix, le résultat est le même). Mon fichier s'ouvre et la page VBA réapparaît, je appuis sur F8, la ligne

WordDoc.Bookmarks("Adresse_facturation").Range.Text = Range("E9").Value

se met en jaune.

J'appuis une nouvelle fois sur F8, et la un message d'erreur " Microsoft Visual Basic For Application" (sans texte supplémentaire) avec une croix s'affiche .

capture

Essaye :

WordDoc.Bookmarks("Adresse_facturation").Range.Text = Worksheets("Nom_De_Ta_Feuille").Range("E9").Value

Le nom de ton signet est exactement pareil ? Avec la majuscule ?

EDIT : C'est normal que la ligne se met en jaune, cela exécute le code ligne par ligne. En revanche je trouve ça louche ton histoire de lecture seul... Tu as les droits de modifications sur le fichier ?

Cela ne change rien...

C'est moi qui ai créé le document donc normalement pas de soucis. Mais ce n'est pas très dérangeant

EDIT : J'ai fait un test avec une cellule sur la ligne 1, et ça semble fonctionner.

Car en fait, mon fichier Excel est réparti sur 26 lignes et jusqu'à la colonne I.

Est-ce faisable avec le code que tu m'as donnée ?

Dois-je reporter ces éléments sur une autre page qui regroupe tout sur une seule ligne, et créer mon bouton à cet endroit ?

Dois-je modifier le code ?

Enlève wordApp.Visible = False de ton code. Maintenant, quand tu lances ta macro, ton fichier word s'ouvre ?

Tu as mis la bonne extension dans ton chemin ? .doc ou .docx ?

Vient de voir ton EDIT, attends

Je ne comprend pas vraiment ce que tu veux me dire...

Normalement il n'y a pas de problèms peut importe l'info, si tu cible la bonne cellule.

Avec ton code envoyé en page 2 de ce post, si tu as toutes ces infos normalement c'est bon, pas obligé d'être sur la ligne 1 !

capture

Je vais essayer d'être un petit peu plus clair

En fait, voilà à quoi ressemble mon fichier Excel (Les cases en noir ne varient pas, le bouton fera uniquement appel aux informations des cases jaunes).

Mon code fait donc appel aux divers cellules jaunes (E4, D12, B16, etc.).

Donc d'après toi Baboutz, cela ne pose pas de soucis, trop bien !

Mais ça ne fonctionne pas

Est-ce que ça peut être du à des options à cocher dans le Word ou Excel ? (type Microsoft Office Library XX.X Object, etc.)

capture

Re,

Pour finir c'est quoi ton code final ? parce que entre les infos de tu nous donnes en page 2 et les infos des lignes soulignés en

jaune c'est plus pareil.

Page 2 tu indique des numéros de signet

Et maintenant c'est des noms de signet avec " _ " en plus ?

Il n'y aurait pas d'erreur sur le nom de ce signet ? tu peux pas juste mettre adresse1 ou adresse2 au lieu de noms avec des espaces ?

WordDoc.Bookmarks("Adresse_facturation").Range.Text = Range("E9").Value

Comme le signal Baboutz si tu remets l'option sur visible alors tu devrais voir si les premiers signets sont remplis ou si cela bloque

dès le premier signet ?

Je n'ai plus trop d'idée là...

Le mieux, si c'est possible, serait d'envoyer uniquement ton excel (ou une copie identique), en modifiant les données des personnes pour ton publipostage afin que ces infos ne fuitent pas évidement.

Cela me serait beaucoup plus facile que d'essayer de trouver l'erreur à distance

Et comme dit le collègue Xmenpl, enlève le marqueur (suffit de cliquer dessus) et enlève le visible du document et regarde comment cela agit

Ok, en fait je pense que mon document word contenait beaucoup trop de bazar (publipostage etc.)

Je reprend tout calmement, parce que cela commence à être chronophage pour vous et pour moi.

Je suis donc repartis à 0 (Nouveau document Excel, plus clair, plus simple & nouveau document Word, sans publipostage, uniquement avec les signets).

J'ai repris ton code, en modifiant l'adresse de mon doc Word ainsi que les signets.

J'insère ligne par ligne, signet par signet, et pour le moment cela semble fonctionner.

Je vais terminer mon document tranquillement en essayant de ne plus vous déranger

Encore un grand merci, et sûrement à bientôt

Aucun soucis Tibo0, c'est avec plaisir

N'hésite pas s'il y a des modifications à faire !

Et si c'est tout bon,

Je vais terminer mon document tranquillement en essayant de ne plus vous déranger

Bonjour, Tibo0 , bonjour, Baboutz

Mon observation n'avait pas pour but de signaler un dérangement mais plutôt un manque d'information qui était

génant pour t'apporter l'aide nécessaire.

Bonjour Xmenpl, bonjour Baboutz,

Je suis face à un nouveau problème (probablement due à une mauvaise manipulation de ma part)

Je créé ma macro (via alt + F11), je la nomme et je tape mon code.

Ensuite j'enregistre et je ferme le document.

Quand je l'ouvre à nouveau, ma macro a disparu...

Des idées ?

Salut Tibo0,

Où crées-tu ta macro ? Quel endroit exactement ?

Voici ma manip:

je fais ALT+F11, je clique sur l'onglet "tools" puis "Macro", je note le nom que je veux donner à ma macro et je fais create.

Quand j'ai terminé, je fais enregistrer, la un message apparaît, je mets "Yes" et je ferme tout.

Peut-être faut il que je mettre "No" et que je l'enregistre quelque part en particulier

capture

Il aurait fallu regarder un tuto sur comment créer une macro avant !

Après avoir fait ALT+F11, clique droit sur ton classeur puis on insert un module.

sans titre

Ensuite dans ton module tu tapes sub bouton () (tu peux l'appeler par un autre nom si tu veux, libre à toi de choisir), tu presses la touche entrée puis il ne te reste qu'a inscrire ton code entre les deux bornes.

capture

Enfin, tu crées une forme (ici un ovale), tu insères le texte que tu veux (ici bouton) puis tu fais cliques droit et insérer la macro et tu choisi la macro que tu as appelé bouton.

sans titre

PS : les macros ne nécessitent pas forcément le clic d'un bouton pour être exécuté

Effectivement !

J'aurai du faire les choses dans l'ordre

Un grand merci à vous !

Je clos le dossier

Bon week end !

Pas de soucis !

Bon we !

Rechercher des sujets similaires à "word publipostage via vba"