WD12 - Encore le publipostage Word

Le
I.G.LOG
Bonjour à tous

Lors de l'exécution d'un publipostage, je rencontre un problème avec les
rubriques qui contiennent de RC (retour chariot + line feed).
En effet, quand je constitue le document de données, les rubriques contenant
ce caractère se retrouvent séparées dans plusieurs cellules du tableau.
Pour contourner le problème, je transforme les RC par "<br/>", je génère le
tableau word par ConvertToTable(1).
Mais, bien sûr, je voudrais ensuite retrouver mes RC !!!

Pour ça j'ai de programmé un rechercher/remplacer avec :

:oWord>>Selection>>Find>>Execute("<br/>",Faux,Vrai,Faux,Faux,Faux,Vrai,1,Faux,Caract(13),2)

qui remplace toutes les occurrences <br/> par caract(13). Mais ça ne marche
pas puisque je me retrouve avec des petits carrés au lieu du retour chariot
!!!
Nota: j'ai essayé avec RC, 13, Caract(13), "^013" sans succès (tjrs ces
carrés)

Quelqu'un a-t-il déjà pû régler ce problème ?

Merci pour vos réponses
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
I.G.LOG
Le #19581131
je craque avec la syntaxe OLE Word !!!

puisque je n'arrive pas à substituer des chaines par des caractères
spéciaux, j'essai de remplir moi-meme le documents de données;
je voudrais donc pouvoir ajouter un tableau puis modifier les cellules une à
une.
Mais là je bloque aussi; voici mon code, qui ne fonctionne pas
malheureusement (erreur sur la méthode cell n° 80020006, nom inconnu)

:oWord>>Selection>>Tables>>Add(:oWord>>ActiveDocument>>Range(0,0),1,y) //
Ca marche miraculeusement
POUR x = 1 A y
:oWord>>ActiveDocument>>Tables(1)>>Rows(1)>>Cell(x,y)>>Range>>InsertAfter("toto")
// Erreur sur Cell()
FIN

Pour résumer, je ne trouve pas le moyen de créer une table, sélectionner les
cellules et leur affecter un texte !!!
Je suis complètemet perdu dans les "range", les documents, les méthodes qui
portent les mêmes noms que les propriétés, les "Selection"... en gros les
délires des savants qui ont inventé tout ça...
Ca devrait pourtant être simple !!!

Merci à tous
I.G.LOG
Le #19583151
... Un heureux connaisseur du VBA Word m'a donné ce bout de code pour
remplir les cellules par programmation:

Sub testCell()

Dim oTbl As Table

Set oTbl = ActiveDocument.Tables.Add(Selection.Range, 2, 2)

oTbl.Rows.Add
oTbl.Cell(oTbl.Rows.Count, 1).Range.Select
Selection.TypeText "Avant" & vbTab & "Après"

End Sub

... que je n'arrive pas du tout à traduire en windev (erreur sur Cell() ).

:oWord>>Selection>>Tables>>Add(:oWord>>ActiveDocument>>Range(0,0),1,y) //
Ca marche miraculeusement
POUR x = 1 A y
:oWord>>ActiveDocument>>Tables(1)>>Rows(1)>>Cell(x,y)>>Range>>InsertAfter("toto")
// Erreur sur Cell()
FIN

Comment sélectionner une cellule ?
Si quelqu'un peut m'aider ?!

Encore merci
Pascal ROY
Le #19583321
I.G.LOG a écrit :
... Un heureux connaisseur du VBA Word m'a donné ce bout de code pour
remplir les cellules par programmation:

Sub testCell()

Dim oTbl As Table

Set oTbl = ActiveDocument.Tables.Add(Selection.Range, 2, 2)

oTbl.Rows.Add
oTbl.Cell(oTbl.Rows.Count, 1).Range.Select
Selection.TypeText "Avant" & vbTab & "Après"

End Sub

... que je n'arrive pas du tout à traduire en windev (erreur sur Cell() ).

:oWord>>Selection>>Tables>>Add(:oWord>>ActiveDocument>>Range(0,0),1,y) //
Ca marche miraculeusement
POUR x = 1 A y
:oWord>>ActiveDocument>>Tables(1)>>Rows(1)>>Cell(x,y)>>Range>>InsertAfter("toto")
// Erreur sur Cell()
FIN

Comment sélectionner une cellule ?
Si quelqu'un peut m'aider ?!

Encore merci




Je crois que l'objet Cell n'appartient pas à Rows mais à Tables !
C'est peut-être de là que vient le probleme !
Dans l'exemple que t'as donné le spécialiste VBA, on voit qu'il
ajoute une ligne en fin tableau et assigne les cellules directement !
--
Pascal ROY
(Service Informatique - SODALEC)
I.G.LOG
Le #19583511
> Je crois que l'objet Cell n'appartient pas à Rows mais à Tables !
C'est peut-être de là que vient le probleme !
Dans l'exemple que t'as donné le spécialiste VBA, on voit qu'il
ajoute une ligne en fin tableau et assigne les cellules directement !
--



Bonjour

Oui en effet (je ne sais pas du tout quel objet appartient à quel autre
objet - c'est bien ça mon problème en VBA)
Mais, après maints efforts, voici le code windev qui fonctionne
parfaitement:

// 1ere ligne
:oWord>>Selection>>Tables>>Add(:oWord>>ActiveDocument>>Range(0,0),1,y)
POUR x = 1 A y
:oWord>>ActiveDocument>>Tables(1)>>Cell(1,x)>>Range = "toto" + x
FIN

// Suite
z++
:oWord>>selection>>Tables(1)>>Rows>>Add()
POUR x = 1 A y
:oWord>>ActiveDocument>>Tables(1)>>Cell(z,x)>>Range = "tutu" + x
FIN

Mais - surtout - ce code permet de s'affranchir des problèmes des caractères
spéciaux lors de la conversion des données dans Word (ingérables par
ConvertToTable() )
Le problème est résolu (faut que je vérifie "en profondeur" quand même)

Merci beaucoup
I.G.LOG
Le #19584201
A tout hasard, quelqu'un sait-il comment rendre word invisible lors du
publipostage ?
En effet, si je met :oWord>>Visible = faux, j'ai une erreur 80020006 !!
J'ai fait des recherches sur ce problème, je ne suis pas seul à l'avoir,
mais pas de solution !
Encore merci
Publicité
Poster une réponse
Anonyme