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

VB 6 et antérieur Discussion :

Mise en forme tableau word avec VB6


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 63
    Points : 52
    Points
    52
    Par défaut Mise en forme tableau word avec VB6
    Bonjour à tous,

    Je développe une appli en VB6 pour créer des étiquettes dans Word.

    J'ai fait un fichier word avec le tableau correspondant aux étiquettes, jusque là nickel.

    J'ai une procédure qui rempli les cases du tableau, donc les étiquettes et j'aimerais changer l'alignement du texte mais pas de toute l'étiquette. Chaque étiquette comporte trois ligne alignée par des tabulations avec un alignement à gauche.

    j'aimerais que la dernière ligne de chaque étiquette soit centrée ?

    C'est possible de le faire dans word mais faut forcément sélectionner le texte et centrer mais dans VB on ne peux pas sélectionner de texte.

    Si quelqu'un à la solution, merci d'avance

  2. #2
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Ayant parfaitement cerné ton problème vu l'abondance de code que tu nous fourni, je vais tenter de répondre aussi clairement (si jamais on peut répondre à une affirmation)

    dans VB on ne peux pas sélectionner de texte.
    Si on peux
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 63
    Points : 52
    Points
    52
    Par défaut
    Voici le code de ma procédure de mise en forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    Sub mise_en_forme()
    Dim i As Integer, j As Integer, net As Single
    Dim inc As Integer
     
    Set tbl = page.Tables(1)
     
    page.Range.Font.Size = 10
     
    client = Main.Textclient.Text
    param = Main.Textparamètre.Text
    dateetiq = Main.Textdate.Text
    netiq = Main.Textnombre
    entete = Main.Check1.Value
     
    nligne = ((netiq + 1) / 3)
    net = ((netiq + 1) / 3)
    If (net - nligne) > 0 Then nligne = nligne + 1
     
    ncol = CInt((netiq + 1) / 3)
     
    'étiquette en-tête
     
    tbl.Cell(1, 1).Range.Text = vbTab & "de : " & vbTab & "BBB" & vbLf & vbTab _
          & "à : " & vbTab & client & vbLf & vbLf & vbLf & vbLf & "Paramètre : " & _
          vbTab & param & vbLf & "Date de livraison : " & vbTab & dateetiq & _
          vbLf _& "Echantillons : " & vbTab & netiq
     
    'autres étiquettes
    inc = 1
     
    For i = 1 To nligne
        If i = 1 Then
            For j = 2 To 3
                tbl.Cell(i, j).Range.Text = vbTab & "de : " & vbTab & "BBB" & vbLf & _
                    vbTab & "à : " & vbTab & client & vbLf & vbLf & vbLf & vbLf & _ 
                    param & " / " & dateetiq & " / " & inc
                inc = inc + 1
            Next
        ElseIf i = nligne Then
            For j = 1 To ncol
                tbl.Cell(i, j).Range.Text = vbTab & "de : " & vbTab & "BBB" & _ 
                    vbLf & vbTab & "à : " & vbTab & client & vbLf & vbLf & vbLf & _
                    vbLf & param & " / " & dateetiq & " / " & inc
                inc = inc + 1
            Next
        Else:
            For j = 1 To 3
                tbl.Cell(i, j).Range.Text = vbTab & "de : " & vbTab & "BBB" & _
                    vbLf & vbTab & "à : " & vbTab & client & vbLf & vbLf & vbLf & _
                    vbLf & param & " / " & dateetiq & " / " & inc
                inc = inc + 1
            Next
        End If
    Next
    Exit Sub
    Ce que j'aimerais faire c'est que le texte en gras de cette ligne soit centrée horizontalement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tbl.Cell(i, j).Range.Text = vbTab & "de : " & vbTab & "BBB" & vbLf & vbTab _
    & "à : " & vbTab & client & vbLf & vbLf & vbLf & vbLf & param & " / " & _
    dateetiq & " / " & inc
    soit centrée alors que les deux lignes du dessus sont alignées par des tabulations.

    Peut-on mettre un signet pour au début de la ligne et centrer la ligne débutant par le signet ?

    Ou sélectionner cette ligne si tu dis que c'est possible.

    Désolé mais c'est la première fois que je pilote word de VB.

    merci pour vos conseils

  4. #4
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Tu peux mettre ton projet complet en zip ici stp ? (Pas en rar !)
    Je voudrais tester mais pas avoir à écrire le code nécessaire pour piloter Word
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 63
    Points : 52
    Points
    52
    Par défaut
    voilà,

    le temps d'enlever tout ce qui est confidentiel, j'ai mis quelques commentaires au cas où

    merci
    Fichiers attachés Fichiers attachés

  6. #6
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Bon, j'avoue que je patauge gentiment dans la semoule avec VBA

    J'ai simplement réussi à mettre l'ensemble de la cellule centré ce qui n'ets pas le but du jeu.
    Je me mlange totalement les pinceaux avec ls range, select et tout le toutim mais je vois select justement donc on peut sélectionner, je confirme.
    Dans le principe je voulais sélectionner les 2 ou 3 derniers paragraphes de la cellule et y appliquer ensuite le format centré.
    Je peux compter le nombre de paragraphes (de toute façon s'estfigé dans otn code mais sinon avec l'instruction "tbl.Cell(i, j).Range.Paragraphs.Count" c'est ensuite pour sélectionner donc les paragraphs de x à y que je merdoie, désolé depas pouvoir aller plus loin.
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 63
    Points : 52
    Points
    52
    Par défaut
    c'est chiant de toujours bloquer sur une bétise.

    Ce que je ne comprends pas c'est comment utiliser le code des macro car en enregistrant le code commence toujours par "selection" avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        Selection.MoveRight Unit:=wdCell
        Selection.MoveDown Unit:=wdLine, Count:=1
        Selection.MoveRight Unit:=wdCharacter, Count:=1
        Selection.MoveDown Unit:=wdLine, Count:=1
    cela permet de se ballader dans la cellule mais par quoi remplacer ce Selection ???

    j'en suis sur que la solution est proche mais j'ai bloqué toute la journée d'hier sur cte mer...

    Sinon j'ai vu qu'on pouvait insérer un signet pour faire référence à du texte mais je n'ai pas trouvé comment l'insérer sur la bonne ligne.

    Merci quand même pour ton aide

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 63
    Points : 52
    Points
    52
    Par défaut
    C'est bon j'ai trouvé et grâce à toi.

    En fait, en déclarant une variable val qui renvoit le nombre de paragraphe dans la cellule, on trouve 7 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    val = tbl.Cell(1, 2).Range.Paragraphs.Count
    Vu que toutes les étiquettes sont identiques, sauf la première, j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tbl.Cell(1, 2).Range.Paragraphs(7).Alignment = wdAlignParagraphCenter
    Et ça marche.

    En tout cas merci à toi

  9. #9
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Ben j'aurais encore appris quelquechose
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

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

Discussions similaires

  1. [Débutant] Mise en forme tableau dans PDF avec itextsharp
    Par IL-MAFIOSO dans le forum VB.NET
    Réponses: 3
    Dernier message: 07/06/2012, 10h16
  2. Réponses: 1
    Dernier message: 20/04/2009, 16h26
  3. mise en forme tableau word depuis excel
    Par cobol80 dans le forum VBA Word
    Réponses: 2
    Dernier message: 26/02/2008, 13h02
  4. Mise en page d'Excel avec VB6 ?
    Par sebajedi dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/12/2006, 15h01
  5. [VBA] Problème enregistrement mise en forme fichier word
    Par guenfood dans le forum VBA Word
    Réponses: 1
    Dernier message: 07/06/2006, 15h10

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