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

VBA Word Discussion :

Problème de déplacement dans un tableau word


Sujet :

VBA Word

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 47
    Points : 28
    Points
    28
    Par défaut Problème de déplacement dans un tableau word
    Bonjour à toutes et à tous,

    Voici le problème pour lequel je sollicite votre aide :

    Dans un document Microsoft Word depuis Excel je créée un tableau Word
    Et dans ce tableau je place des données.

    J'ai 2 problèmes :
    Avec le code ci-dessous, je ne parviens pas à enregistrer la première série de données de la listbox (je n'obtiens les données qu'à compter de la 2nde ligne de la listbox)
    Avec le code ci-dessous, je parviens à enregistrer la seconde série de données et les autres mais j'ai un problème car les données devraient se placer sur 2 lignes et donc, pour chaque ligne de la listbox il faut placer les 5 données en colonne dans les 4 cases du tableau word ligne i et dans la 1ère case de la ligne i + 1
    En fait ce qui se passe apparemment c'est que les données de la ligne sont enregistrées puis sur la ligne suivante la dernière donnée, mais ensuite la saisie des données suivantes commence à la place où est située la dernière saisie ce qui a pour effet de l'effacer

    Merci pour votre aide

  2. #2
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 865
    Points
    3 865
    Par défaut
    Bonjour,

    Avec le code ci-dessous...
    Où est le code ? Ou y avait un fichier ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 47
    Points : 28
    Points
    28
    Par défaut
    Désolé,

    J'ai progressé, je parviens désormais à placer les données aux bons endroit mais il me reste un problème, je ne sais pas comment fusionner une ligne dans un tableau word.

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Derligne = mytbl.Rows.Count
    With mytbl
    mytbl.Cell(Derligne, 1).Range.Text = me.Lbsynthfrm.Column(0)
    mytbl.Cell(Derligne, 2).Range.Text = me.Lbsynthfrm.Column(1)
    mytbl.Cell(Derligne, 3).Range.Text = me.Lbsynthfrm.Column(2)
    mytbl.Cell(Derligne, 4).Range.Text = me.Lbsynthfrm.Column(3)
    End with
    mytbl.Rows.Add
    Derligne = mytbl.Rows.Count - 1
    with mytbl
    mytbl.Cell(Derligne + 1, 0).Range.Text = me.Lbsynthfrm.Column(4)
    'C'est ici qu'il faudrait ajouter le code pour fusionner la ligne dans laquelle on 'vient de placer me.lbsyntfrm.Column(4)
    Merci pour votre aide



    Citation Envoyé par QuestVba Voir le message
    Bonjour,



    Où est le code ? Ou y avait un fichier ?

  4. #4
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 865
    Points
    3 865
    Par défaut
    Bonjour,

    voici un code pour fusionner les cellules 1 à 5 de la colonne 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ActiveDocument.Tables(1)
        .Cell(1, 1).Merge Mergeto:=.Cell(5, 1)
    End With
    et pour fusionner les cellules 1 à 3 de la ligne1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ActiveDocument.Tables(1)
        .Cell(1, 1).Merge Mergeto:=.Cell(1, 3)
    End With

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 47
    Points : 28
    Points
    28
    Par défaut
    Re Bonjour,

    J'ai corrigé mon code et je parviens à fusionner avec votre code que j'ai du un peu corriger :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mtytl.Cell(derligne, 1).Merge Mergeto:=mytbl.Cell(derlinge, 4)
    Ensuite j'insère une nouvelle ligne et de fait elle est également fusionnée et il faudrait alors que je la fractionne en 4 cellules

    Une idée ?

    Merci

    Citation Envoyé par QuestVba Voir le message
    Bonjour,

    voici un code pour fusionner les cellules 1 à 5 de la colonne 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ActiveDocument.Tables(1)
        .Cell(1, 1).Merge Mergeto:=.Cell(5, 1)
    End With
    et pour fusionner les cellules 1 à 3 de la ligne1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ActiveDocument.Tables(1)
        .Cell(1, 1).Merge Mergeto:=.Cell(1, 3)
    End With

  6. #6
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 865
    Points
    3 865
    Par défaut
    Re-,

    Permet de scinder la cellule en 2 cellules (2 colonnes sur 1 ligne)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.Cells.Split NumRows:=1, NumColumns:=2, MergeBeforeSplit:=True

  7. #7
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 47
    Points : 28
    Points
    28
    Par défaut Code erreur 338 sur cette proposition
    Merci pour votre aide mais je n'y arrive pas avec votre code

    SI je modifie ainsi le mien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    mytbl.Rows.Add
    derligne=mytbl.Rows.Count
    Selection.Cells.Split NumRows:=1, NumColumns:=4, MergeBeforeSplit:=true
    J'obtiens une erreur d'exécution 438 Propriété ou méthode non gérée par cet objet.

    EN fait je dois faire une erreur relative à la sélection de la dernière ligne qu'il faut fractionner.

    Merci pour votre aide encore une fois.

    Citation Envoyé par QuestVba Voir le message
    Re-,

    Permet de scinder la cellule en 2 cellules (2 colonnes sur 1 ligne)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.Cells.Split NumRows:=1, NumColumns:=2, MergeBeforeSplit:=True

  8. #8
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 865
    Points
    3 865
    Par défaut
    Re-

    Comme ceci(scinde la cellule 1,1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ActiveDocument.Tables(1)
       .Cell(1, 1).Split NumRows:=1, NumColumns:=2
    End With

  9. #9
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 47
    Points : 28
    Points
    28
    Par défaut seule la
    Non ça ne marche toujours pas car avec le code ci-dessous ce qui se produit est étrange
    les 2 premières lignes sont correctes (elles contiennent les données de la listbox col 1, 2, 3, 4, 5 pour la ligne 1 de cette liste box
    Ensuite
    une ligne est créée
    puis la première cellule de cette ligne est fractionnée en 4 colonnes et les données de la seconde ligne de la listbox se placent dans les 4 colonne créées dans la 1ère cellule de la 3ème et 4ème ligne

    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
     
    For Z = 0 to Me.LB.Synthese_frm.ListCount - 1
    derligne = mytbl.Rows.Count
    Me.LbSynthese_frm.Selected(z) = true
    With mytbl
    mytbl.Cell(derligne, 1).Range.Text = Me.LBsynthese_frm.Column(0)
    mytbl.Cell(derligne, 2).Range.Text = Me.LBsynthese_frm.Column(1)
    mytbl.Cell(derligne, 3).Range.Text = Me.LBsynthese_frm.Column(2)
    mytbl.Cell(derligne, 4).Range.Text = Me.LBsynthese_frm.Column(3)
    End With
    mytbl.Cell(derligne, 0).Range.Text = Me.LBsynthese_frm.Column(4)
    mytbl.Rows.Add
    derlign = mytbl.Rows.Count
    Mytbl.Cell(derligne, 1).Split NumRows:=1, NumColumns:=4
    Next Z



    Citation Envoyé par QuestVba Voir le message
    Re-

    Comme ceci(scinde la cellule 1,1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ActiveDocument.Tables(1)
       .Cell(1, 1).Split NumRows:=1, NumColumns:=2
    End With

  10. #10
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 865
    Points
    3 865
    Par défaut
    Bonjour,

    Voici un code qui permet de se situer en dernière ligne du tableau d'y insérer un ligne (contenant une cellule) et de scinder cette ligne en 3 colonnes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub insertion_une_ligne_et_fractionnement()
     
    lig = ActiveDocument.Tables(1).Rows.Count
    ActiveDocument.Tables(1).Rows(lig).Select
    Selection.InsertRowsBelow
    Selection.InsertRowsBelow 1
    Selection.Cells.Merge
    Selection.Cells.Split NumRows:=1, NumColumns:=3
     
    End Sub
    Fichiers attachés Fichiers attachés

  11. #11
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 47
    Points : 28
    Points
    28
    Par défaut Insertion ligne
    Bonjour,

    Merci pour ces réponses qui m'aident vraiment à progresser.
    Je suis malade depuis hier soir alors je vais devoir faire une petite pause. Je testerai et reviendrai vers le forum très vite.


    Citation Envoyé par QuestVba Voir le message
    Bonjour,

    Voici un code qui permet de se situer en dernière ligne du tableau d'y insérer un ligne (contenant une cellule) et de scinder cette ligne en 3 colonnes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub insertion_une_ligne_et_fractionnement()
     
    lig = ActiveDocument.Tables(1).Rows.Count
    ActiveDocument.Tables(1).Rows(lig).Select
    Selection.InsertRowsBelow
    Selection.InsertRowsBelow 1
    Selection.Cells.Merge
    Selection.Cells.Split NumRows:=1, NumColumns:=3
     
    End Sub

Discussions similaires

  1. problème couleur dans un tableau Word
    Par marti dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/01/2008, 13h21
  2. Problème d'affichage dans un tableau
    Par claralavraie dans le forum ASP
    Réponses: 13
    Dernier message: 21/12/2005, 15h45
  3. Réponses: 2
    Dernier message: 19/12/2005, 12h23
  4. [débutant]problèmes d'affichage dans un tableau
    Par Hastur dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 16/08/2005, 12h00
  5. Problème d'écriture dans un tableau
    Par Hokagge dans le forum MFC
    Réponses: 46
    Dernier message: 08/07/2005, 16h47

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