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

WinDev Discussion :

Pilotage Word (ajustement des colonnes)


Sujet :

WinDev

  1. #1
    Membre émérite
    Femme Profil pro
    .
    Inscrit en
    Janvier 2012
    Messages
    999
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : .
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 999
    Points : 2 526
    Points
    2 526
    Par défaut Pilotage Word (ajustement des colonnes)
    Bonjour à tous,

    Bon, làs de mes recherches, je vous soumet mon problème:

    Pour convertir dans word, du texte en tableau, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Mail>>Selection>>ConvertToTable(TAB,oleignore,3,oleignore,oleignore,oleignore,oleignore,oleignore,...
                                                   oleignore,oleignore,oleignore,oleignore,oleignore,true,oleignore,oleignore)
    et tout va bien, sauf que je ne sais pas du tout redimensionner les colonnes en fonction de la taille du texte de chacune.
    Les 3 colonnes ont toutes la même taille alors que je souhaiterais qu'elles s'ajustent en fonction de leur contenu.
    sachant que
    la 1ère contient 5 caract. maxi,
    la 2ème n caract.
    la 3ème 10 caract. maxi.

    Inutile de vous préciser que Word et moi, ça fait deux.

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    hello serendib,
    tu peux essayer la fonction magique Autoformat.
    Voici un exemple qui ouvre un document word, recherche le premier tableau et ajuste automatiquement les colonnes du tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    WordObj est un objet OLE dynamique
    WordObj = allouer un objet Automation "Word.application"
    TableauObj est un objet OLE dynamique
    WordObj>>Visible = Vrai 
    // On ouvre le document
    WordObj>>Documents>>Open("F:\MonFichierWord.doc") //Fichier Word
    // On affecte le premier tableau du document à TableauObj
    TableauObj = WordObj>>ActiveDocument>>Tables(1)
    // On ajuste les colonnes du tableau
    TableauObj>>AutoFormat()
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  3. #3
    Membre émérite
    Femme Profil pro
    .
    Inscrit en
    Janvier 2012
    Messages
    999
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : .
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 999
    Points : 2 526
    Points
    2 526
    Par défaut
    Salut JP,

    Merci de ta promptitude.

    Avec ton code, aucune erreur, mais mes 3 colonnes restent invariablement identiques en largeur.

  4. #4
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    As-tu plusieurs tableaux dans ton document word ?
    Quelle version de word utilises-tu ?
    Tu utilises mon code tel qu'il est où tu l'as adapté dans ton code ?
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #5
    Membre émérite
    Femme Profil pro
    .
    Inscrit en
    Janvier 2012
    Messages
    999
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : .
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 999
    Points : 2 526
    Points
    2 526
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    As-tu plusieurs tableaux dans ton document word ?
    Quelle version de word utilises-tu ?
    Tu utilises mon code tel qu'il est où tu l'as adapté dans ton code ?
    Non, un seul tableau, mais qui est en fait une "mise en tableau" d'un texte préformaté.
    Il faut de toute façon que ça marche avec toutes les versions de 2000 à ce jour.
    J'ai utilisé ton code tel quel.

    Mais voici ce que j'ai tenté (à tatons) et qui marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SI Mail>>ActiveDocument>>bookmarks>>exists("MesLignes") 
     	Mail>>Selection>>GoTo(-1,0,0,"MesLignes") //Se positionner sur le Signet
    	ListeClient="Qté"+tab+"Designaton + Régie"+tab+"Nb Colis/Cdt."+rc+ListeClient	
    	Mail>>Selection>>Text=ListeClient
    	//Texte en tableau (séparation des champ : TAB)
    	Mail>>Selection>>ConvertToTable(TAB,oleignore,3,oleignore,oleignore,oleignore,oleignore,oleignore,...
    	                                oleignore,oleignore,oleignore,oleignore,oleignore,oleignore,1,1)
    	  
    	Mail>>Selection>>EndKey(6,oleignore) // aller à la fin	
    sinon
    	info(MessTraduit(2001)) //"Il manque le signet 'MesLignes'")
    FIN
    sauf que mon tableau n'utilise plus toutes la largeur de la page, mais c'est déjà mieux...

    Bien sûr si tu as mieux à me proposer...

    En tout cas merci.

  6. #6
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    Ok
    dans ton converttotable les deux paramètres que tu as rajoutés sont apparemment (vu leurs places) AutoFitBehavior et DefaultTableBehavior :
    AutoFit
    Facultatif
    Variante
    True pour diminuer autant que possible la largeur des colonnes du tableau sans modifier la façon dont le texte passe à la ligne dans les cellules.
    AutoFitBehavior
    Facultatif
    Variante
    Définit les règles d'ajustement automatique s'appliquant à la façon dont Word dimensionne un tableau. Il peut s'agir de l'une des constantes WdAutoFitBehavior suivantes. Si ComportementTableauParDéfaut a la valeur wdWord8TableBehavior, cet argument est ignoré.
    DefaultTableBehavior
    Facultatif
    Variante
    Définit une valeur qui spécifie si Microsoft Word redimensionne automatiquement les cellules d'un tableau de façon à les adapter au contenu (Ajustement automatique). Il peut s'agir de l'une des constantes WdDefaultTableBehavior.
    tu n'as pas utilisé le paramètre Autofit (le paramètre 14) mais je crois qu'il est par défaut à vrai.

    tu as mis à 1 AutoFitBehavior et DefaultTableBehavior

    Pour AutoFiBehavior on peut avoir les valeurs :
    wdAutoFitContent The table is automatically sized to fit the content contained in the table. Value is 1 (0x1)
    wdAutoFitFixed The table is set to a fixed size, regardless of the content, and is not automatically sized. Value is 0 (0x0)
    wdAutoFitWindow The table is automatically sized to the width of the active window. Value is 2 (0x2)
    Pour DefaultTableBehavior on peut avoir les valeurs
    wdWord8TableBehavior Disables AutoFit. Default. Value is 0 (0x0)
    wdWord9TableBehavior Enables AutoFit. Value is 1 (0x1)
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  7. #7
    Membre émérite
    Femme Profil pro
    .
    Inscrit en
    Janvier 2012
    Messages
    999
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : .
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 999
    Points : 2 526
    Points
    2 526
    Par défaut
    Merci JP, tes explications vont sans doute m'aider.
    Je vais jongler avec tout celà.

    Mais l'idéal, je crois, serait que je passe plutôt par : (inspiré du code que tu as posté je ne sais plus où, j'ai tellement cherché)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Mail>>ActiveDocument>>Tables>>Add(Mail>>Selection>>Range,n,4) // on crée un tableau dans word n lignes sur 4 colonnes
    Mail>>ActiveDocument>>Tables>>Select  
    Mail>>Selection>>Paste()  //Copier/coller de ma zone texte dans le tableau dans Word
    Mon problème c'est qu'il me créé le tableau en tout début de document et non pas après mon signet.
    Hors il y a des tas de choses avant mon tableau.
    Comment lui indiquer la place désirée ?
    De plus je n'aime pas trop le copier/coller, j'aurais préféré construire mon tableau en dur mais bon...

    Quoi qu'il en soit, ne perd pas trop de temps sur mon truc, c'est déjà très sympa de m'avoir bien aiguillé.

    Cordialement,

Discussions similaires

  1. Ajustement des colonnes du DBGRID au texte
    Par stfanny31 dans le forum Langage
    Réponses: 7
    Dernier message: 07/05/2012, 08h00
  2. [WD16] Pilotage Excel; Taille des colonnes
    Par Jiybee dans le forum WinDev
    Réponses: 2
    Dernier message: 23/08/2011, 08h47
  3. [AC-2003] Ajustement des colonnes formulaire de recherche multi-critères
    Par olivier777 dans le forum IHM
    Réponses: 5
    Dernier message: 07/06/2010, 12h16
  4. [AC-2003] Ajustement des colonnes pour formulaire multi-critères
    Par olivier777 dans le forum IHM
    Réponses: 0
    Dernier message: 06/06/2010, 19h00
  5. ajustement des colonnes d'une table
    Par benja01 dans le forum WinDev
    Réponses: 1
    Dernier message: 29/04/2008, 09h01

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