OVH Cloud OVH Cloud

Tableau Word

4 réponses
Avatar
Philippe Lienart
Jai un document Word contenant la première ligne d'un tableau.
Ce tableau est vide et je désire le remplir au départ de Windev en
ajoutant, si nécessaire, de nouvelles lignes dans le tableau.
Comment faut-il s'y prendre ?

En fait mon problème est plus complexe car le tableau de base vide se
compose en fait de deux lignes dont certaines cellules ont été
fusionnées dans un des deux lignes.
Les données doivent être reprises dans ce tableau (2 lignes par
enregistrement dans la base de données).

Merci pour votre aide.

--
A+

PhL

4 réponses

Avatar
Gilles TOURREAU
Il se trouve que Philippe Lienart a formulé :
Jai un document Word contenant la première ligne d'un tableau.
Ce tableau est vide et je désire le remplir au départ de Windev en ajoutant,
si nécessaire, de nouvelles lignes dans le tableau.
Comment faut-il s'y prendre ?

En fait mon problème est plus complexe car le tableau de base vide se compose
en fait de deux lignes dont certaines cellules ont été fusionnées dans un des
deux lignes.
Les données doivent être reprises dans ce tableau (2 lignes par
enregistrement dans la base de données).

Merci pour votre aide.



Utilise comme le système D :

Tu enregistres une macros sur une manip dans Word qui manipule un
tableau... Ensuite regarde le code VBA...
Il reste plus qu'a traduire !

Si tu as des difficultés, post ici ton code VBA que tu veux traduire...

Cordialement

--
Gilles TOURREAU
Responsable Informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
André Schütze
Bonjour,

Oui je confirme pour le système D...., ci dessous un extrait de code où je
remplis mon tableau par du copié/collé.... si ça peut aider...
et pour tes deux lignes il suffit normalement de faire un
"Selection.MoveDown(wdLine, 1, wdExtend)"


POUR k=1 A TableOccurrence(TABLE_REQ_MOUVE)
MaRecherche>>Selection>>GoTo(wdGoToBookmark,*,*,"date")
MaRecherche>>Selection>>SelectCell
MaRecherche>>Selection>>TypeText(DateVersChaîne(TABLE_REQ_MOUVE.xxxxxx[k],"JJ/MM/AAAA"))
MaRecherche>>Selection>>GoTo(wdGoToBookmark,*,*,"libe")
MaRecherche>>Selection>>SelectCell
MaRecherche>>Selection>>TypeText(TABLE_REQ_MOUVE.yyyyyyyy[k])
MaRecherche>>Selection>>GoTo(wdGoToBookmark,*,*,"debi")
MaRecherche>>Selection>>SelectCell
SI TABLE_REQ_MOUVE.DEBIT[k]<> 0 ALORS
MaRecherche>>Selection>>TypeText(NumériqueVersChaîne(TABLE_REQ_MOUVE.DEBIT[k])+"
¤")
SINON
MaRecherche>>Selection>>TypeText(" ")
FIN
MaRecherche>>Selection>>GoTo(wdGoToBookmark,*,*,"cred")
MaRecherche>>Selection>>SelectCell
SI TABLE_REQ_MOUVE.CREDIT[k]<> 0 ALORS
MaRecherche>>Selection>>TypeText(NumériqueVersChaîne(TABLE_REQ_MOUVE.CREDIT[k])+"
¤")
SINON
MaRecherche>>Selection>>TypeText(" ")
FIN
MaRecherche>>Selection>>SelectRow
MaRecherche>>Selection>>Copy
MaRecherche>>Selection>>Paste
FIN



"Philippe Lienart" a écrit dans le message de news:

Jai un document Word contenant la première ligne d'un tableau.
Ce tableau est vide et je désire le remplir au départ de Windev en
ajoutant, si nécessaire, de nouvelles lignes dans le tableau.
Comment faut-il s'y prendre ?

En fait mon problème est plus complexe car le tableau de base vide se
compose en fait de deux lignes dont certaines cellules ont été fusionnées
dans un des deux lignes.
Les données doivent être reprises dans ce tableau (2 lignes par
enregistrement dans la base de données).

Merci pour votre aide.

--
A+

PhL




Avatar
Philippe Lienart
Merci pour ce bout de code dans lequel je me permets quelques remarques
et questions.
Je n'ai pas beaucoup d'expérience avec Word

Dans son message précédent, André Schütze a écrit :
Bonjour,

Oui je confirme pour le système D...., ci dessous un extrait de code où je
remplis mon tableau par du copié/collé.... si ça peut aider...
et pour tes deux lignes il suffit normalement de faire un
"Selection.MoveDown(wdLine, 1, wdExtend)"




Ouverture de Word
Lecture du document Word

POUR k=1 A TableOccurrence(TABLE_REQ_MOUVE)



Positionnement sur un champ avec bookmark date
- cela peut-il être une cellule d'un tableau ?

MaRecherche>>Selection>>GoTo(wdGoToBookmark,*,*,"date")
MaRecherche>>Selection>>SelectCell

MaRecherche>>Selection>>TypeText(DateVersChaîne(TABLE_REQ_MOUVE.xxxxxx[k],"JJ/MM/AAAA"))



Positionnement sur un champ avec bookmark libe

MaRecherche>>Selection>>GoTo(wdGoToBookmark,*,*,"libe")
MaRecherche>>Selection>>SelectCell
MaRecherche>>Selection>>TypeText(TABLE_REQ_MOUVE.yyyyyyyy[k])



Positionnement sur un champ avec bookmark debi

MaRecherche>>Selection>>GoTo(wdGoToBookmark,*,*,"debi")
MaRecherche>>Selection>>SelectCell
SI TABLE_REQ_MOUVE.DEBIT[k]<> 0 ALORS

MaRecherche>>Selection>>TypeText(NumériqueVersChaîne(TABLE_REQ_MOUVE.DEBIT[k])+"¤")
SINON MaRecherche>>Selection>>TypeText(" ")
FIN



Positionnement sur un champ avec bookmark credi

MaRecherche>>Selection>>GoTo(wdGoToBookmark,*,*,"cred")
MaRecherche>>Selection>>SelectCell
SI TABLE_REQ_MOUVE.CREDIT[k]<> 0 ALORS

MaRecherche>>Selection>>TypeText(NumériqueVersChaîne(TABLE_REQ_MOUVE.CREDIT[k])+"¤")
SINON MaRecherche>>Selection>>TypeText(" ")
FIN


Est-ce l'instruction pour créer une nouvelle ligne après la ligne
dernière ligne ?
Comment les bookmark changent-ils de ligne ?
Comment se passe le saut de page ?
Ou fait-il intégrer le movedown ? et comment copier alors les deux
lignes? Ou faut-il gérer les différentes lignes moi-même.

MaRecherche>>Selection>>SelectRow
MaRecherche>>Selection>>Copy
MaRecherche>>Selection>>Paste
FIN



Sauvegarde du fichier crée sous un autre nom
Fermeture de Word
Fermeture du programme


"Philippe Lienart" a écrit dans le message de news:

Jai un document Word contenant la première ligne d'un tableau.
Ce tableau est vide et je désire le remplir au départ de Windev en
ajoutant, si nécessaire, de nouvelles lignes dans le tableau.
Comment faut-il s'y prendre ?

En fait mon problème est plus complexe car le tableau de base vide se
compose en fait de deux lignes dont certaines cellules ont été fusionnées
dans un des deux lignes.
Les données doivent être reprises dans ce tableau (2 lignes par
enregistrement dans la base de données).

Merci pour votre aide.

-- A+

PhL







--
A+

PhL
Avatar
André Schütze
Le bookmark c'est un signet, il peut ainsi être librement placé n'importe où
dans le document, cellule, cadre...
TypeText c'est la fonction pour insérer un texte, comme s'il était saisi
directement...

Mais on peut aussi utiliser un système de type rechercher/remplacer :
MaRecherche>>Selection>>Find>>Execute("{soldeC}",*,*,*,*,*,*,*,*,NumériqueVersChaîne(xSolde)+"
¤",2,*,*,*,*)

Le movedown avec wdExtend est à faire après le SelectRow, pour sélectionner
les deux lignes, qui sont dupliquées ensuite par copie.
Ce ne sont pas les signets mais les valeurs qui sont alors copiées, il faut
peut être ajouter un autre move pour se positionner...

Pour les sauts de page si tu veux les gérer tu peux faire un
Selection.InsertBreak(wdPageBreak), là où ça se gâte c'est si tu veux des
calculs intermédiaires en bas de chaque page...

Dans tous les cas il faut utiliser l'enregistreur de macros et l'éditeur
Visual Basic, notamment pour récupérer les valeurs des constantes et les
déclarer dans Windev (Ctrl - G, puis ? wdPageBreak par exemple donne 7).
Regarder les paramètres et remplacer ensuite la syntaxe pointée par les
">>"...
En fait si tu fais "à la main" toutes les opérations que devra faire
l'appli, il faut juste adapter ensuite la macro que tu récupères...

Pour sauvegarder et fermer tu peux faire :
MaRecherche>>ChangeFileOpenDirectory(sRep)
MaRecherche>>ActiveDocument>>SaveAs(sNomFic+".doc",0, False, "", True, "",
False, False, False, False, False)
MaRecherche>>ActiveDocument>>Close
MaRecherche>>Application>>Quit

Bon courage !
André




"Philippe Lienart" a écrit dans le message de news:

Merci pour ce bout de code dans lequel je me permets quelques remarques et
questions.
Je n'ai pas beaucoup d'expérience avec Word

Dans son message précédent, André Schütze a écrit :
Bonjour,

Oui je confirme pour le système D...., ci dessous un extrait de code où
je remplis mon tableau par du copié/collé.... si ça peut aider...
et pour tes deux lignes il suffit normalement de faire un
"Selection.MoveDown(wdLine, 1, wdExtend)"




Ouverture de Word
Lecture du document Word

POUR k=1 A TableOccurrence(TABLE_REQ_MOUVE)



Positionnement sur un champ avec bookmark date
- cela peut-il être une cellule d'un tableau ?

MaRecherche>>Selection>>GoTo(wdGoToBookmark,*,*,"date")
MaRecherche>>Selection>>SelectCell

MaRecherche>>Selection>>TypeText(DateVersChaîne(TABLE_REQ_MOUVE.xxxxxx[k],"JJ/MM/AAAA"))



Positionnement sur un champ avec bookmark libe

MaRecherche>>Selection>>GoTo(wdGoToBookmark,*,*,"libe")
MaRecherche>>Selection>>SelectCell
MaRecherche>>Selection>>TypeText(TABLE_REQ_MOUVE.yyyyyyyy[k])



Positionnement sur un champ avec bookmark debi

MaRecherche>>Selection>>GoTo(wdGoToBookmark,*,*,"debi")
MaRecherche>>Selection>>SelectCell
SI TABLE_REQ_MOUVE.DEBIT[k]<> 0 ALORS

MaRecherche>>Selection>>TypeText(NumériqueVersChaîne(TABLE_REQ_MOUVE.DEBIT[k])+"¤")
SINON MaRecherche>>Selection>>TypeText(" ")
FIN



Positionnement sur un champ avec bookmark credi

MaRecherche>>Selection>>GoTo(wdGoToBookmark,*,*,"cred")
MaRecherche>>Selection>>SelectCell
SI TABLE_REQ_MOUVE.CREDIT[k]<> 0 ALORS

MaRecherche>>Selection>>TypeText(NumériqueVersChaîne(TABLE_REQ_MOUVE.CREDIT[k])+"¤")
SINON MaRecherche>>Selection>>TypeText(" ")
FIN


Est-ce l'instruction pour créer une nouvelle ligne après la ligne dernière
ligne ?
Comment les bookmark changent-ils de ligne ?
Comment se passe le saut de page ?
Ou fait-il intégrer le movedown ? et comment copier alors les deux lignes?
Ou faut-il gérer les différentes lignes moi-même.

MaRecherche>>Selection>>SelectRow
MaRecherche>>Selection>>Copy
MaRecherche>>Selection>>Paste
FIN



Sauvegarde du fichier crée sous un autre nom
Fermeture de Word
Fermeture du programme


"Philippe Lienart" a écrit dans le message de
news:
Jai un document Word contenant la première ligne d'un tableau.
Ce tableau est vide et je désire le remplir au départ de Windev en
ajoutant, si nécessaire, de nouvelles lignes dans le tableau.
Comment faut-il s'y prendre ?

En fait mon problème est plus complexe car le tableau de base vide se
compose en fait de deux lignes dont certaines cellules ont été
fusionnées dans un des deux lignes.
Les données doivent être reprises dans ce tableau (2 lignes par
enregistrement dans la base de données).

Merci pour votre aide.

-- A+

PhL







--
A+

PhL