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 :

Code VBA Utiliser UserForm et incrementation de tableau Word


Sujet :

VBA Word

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Par défaut Code VBA Utiliser UserForm et incrementation de tableau Word
    Bonjour,

    Je me lance dans la programmation sous VBA. J'ai réalisé un UserForm sous Word et j'aimerai me servir des données saisies dans le UserForm pour les intégrer à un tableau word.

    Il faudrait pouvoir ajouter une ligne à ce tableau pour intégrer les données saisies à chaque validation du USerForm.

    Pour l'instant, j'arrive à intégrer mes données sur une ligne dans lequel j'ai intégrer des bookmarks mais lorsque j'ajoute une ligne au tableau les bookmarks ne suivent pas.

    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
    Private Sub Valider_Click()
     
        Dim x As Integer
        ActiveDocument.Tables(8).Rows.Add
        x = ActiveDocument.Tables(8).Rows.Count
        ActiveDocument.Tables(8).Rows(x - 1).Range.Copy
        ActiveDocument.Tables(8).Rows(x).Range.Paste
     
    With ActiveDocument
          .Bookmarks("TextRef").Range.Text = TextRef.Value
          .Bookmarks("TextActivite").Range.Text = TextActivite.Value
          .Bookmarks("TextRessource1").Range.Text = ComboBox1.Value
          .Bookmarks("TextRessource2").Range.Text = TextDefinitionRessource.Value
            .Bookmarks("TextPeril1").Range.Text = ComboBox2.Value
          .Bookmarks("TextPeril2").Range.Text = TextBox1.Value
           .Bookmarks("TextObjectif").Range.Text = ComboBox3.Value
          .Bookmarks("TextGravite").Range.Text = ComboBox4.Value
          .Bookmarks("TextFrequence").Range.Text = ComboBox5.Value
          .Bookmarks("TextCriticite1").Range.Text = TextCriticiteBrute.Value
          .Bookmarks("TextMaitrise1").Range.Text = ComboBox6.Value
          .Bookmarks("TextMaitrise2").Range.Text = TextBox2.Value
          .Bookmarks("TextCriticite2").Range.Text = TextBox3.Value
     
     
    End With
     
     Unload Me
     
    End Sub
    Comment faire ?

    *Merci*

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Pourquoi utiliser des bookmarks alors que tu as un tableau ?

    Si tu ajoutes une ligne, je suppose que les données seront écrites les unes sous les autres.

    Utilise l'adressage des cellules du tableau.


    http://heureuxoli.developpez.com/off...rd/?page=page6

    Jette un oeil à ce tuto.
    Si tu ajoutes une ligne à un tableau, tu peux l'adresser en comptant le nombre de ligne du tableau.
    La colonne sera toujours la même.

    Un tout petit exemple en passant.

    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
    Sub ajouterLigne()
    Dim otbl As Table
    Dim intI As Integer
     
    If ActiveDocument.Tables.Count = 0 Then ActiveDocument.Tables.Add Range:=Selection.Range, numrows:=1, numcolumns:=2
     
     
    Set otbl = ActiveDocument.Tables(1)
    otbl.Rows.Add
    intI = otbl.Rows.Count
     
    With otbl
        .Cell(intI, 1).Range.Text = "Col 1 - Ligne " & intI
        .Cell(intI, 2).Range.Text = "Col 2 - Ligne " & intI
    End With
    Set otbl = Nothing
     
     
    End Sub
    si ton document ne contient pas de table, la table est ajoutée au document.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Par défaut
    Merci beaucoup pour l'info et la réacativité...c'est beaucoup plus simple et ça marche !

    Très bien le tutoriel...Surtout pour les personnes qui débute comme moi !!!!


    Pour info...le code que j'ai finalisé :

    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
    Private Sub Valider_Click()
     
       Dim otbl As Table
    Dim intI As Integer
     
    Set otbl = ActiveDocument.Tables(8)
     
    otbl.Rows.Add
     
    intI = otbl.Rows.Count
     
    With otbl
     
    .Cell(intI, 1).Range.Text = TextRef.Value
    .Cell(intI, 2).Range.Text = TextActivite.Value
    .Cell(intI, 3).Range.Text = ComboBox1.Value
    .Cell(intI, 4).Range.Text = TextDefinitionRessource.Value
    .Cell(intI, 5).Range.Text = ComboBox2.Value
    .Cell(intI, 6).Range.Text = TextBox1.Value
    .Cell(intI, 7).Range.Text = ComboBox3.Value
    .Cell(intI, 8).Range.Text = ComboBox4.Value
    .Cell(intI, 9).Range.Text = ComboBox5.Value
    .Cell(intI, 10).Range.Text = TextCriticiteBrute.Value
    .Cell(intI, 11).Range.Text = ComboBox6.Value
    .Cell(intI, 12).Range.Text = TextBox2.Value
    .Cell(intI, 13).Range.Text = TextBox3.Value
     
     
    End With
     
    Set otbl = Nothing
     
     Unload Me
     
    End Sub

Discussions similaires

  1. [AC-2010] Erreur sur Code VBA pour enregistrement d'un document publiposté word
    Par AudREN dans le forum VBA Access
    Réponses: 3
    Dernier message: 25/09/2014, 13h22
  2. Code VBA/ Macro/ UserForm
    Par irwinurpo dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 11/03/2014, 11h07
  3. [XL-2003] Reecriture de code VBA utilisant 1D-Array en 2D array
    Par jeo13 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 11/03/2011, 12h58
  4. Code VbA pour effacer ligne d'un tableau
    Par carottemémé dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/01/2011, 07h09
  5. [XL-2007] Code VBA pour lire données d'un tableau dans Excel
    Par PierreL dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/10/2009, 19h31

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