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 :

Bouton Ajout de ligne Tableau dans Formulaire


Sujet :

VBA Word

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2013
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 76
    Points : 39
    Points
    39
    Par défaut Bouton Ajout de ligne Tableau dans Formulaire
    Bonjour,

    Sur un formulaire Word j'ai inséré un tableau incorporé de champ formulaire dont l'utilisateur peut ajouter ou supprimer des lignes par le biais de bouton radio.

    Mon problème est que la ligne ajoutée ne se glisse pas en dessous de la première, mais elle s'ajoute au dessus.

    Ci-joint un exemple pour être plus clair.

    Ainsi j'aimerais que les lignes s'ajoute à la suite de haut en bas.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut operaq,

    C'est parce que dans le code de ta procédure "...5" que tu inverses : tu copies à partir de "ligne+1" et tu recopies dans "ligne".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
                     ActiveDocument.Tables(1).Cell(nb_ligne + 1, 2).Select
                     Selection.Copy
                     ActiveDocument.Tables(1).Cell(nb_ligne, 2).Select
                     Selection.Paste
     
                     ActiveDocument.Tables(1).Cell(nb_ligne + 1, 1).Select
                     Selection.Copy
                     ActiveDocument.Tables(1).Cell(nb_ligne, 1).Select
                     Selection.Paste
    Inverse tes lignes "nb_ligne + 1" et "nb_ligne" du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ActiveDocument.Tables(1).Cell(nb_ligne, 2).Select
                     Selection.Copy
                     ActiveDocument.Tables(1).Cell(nb_ligne + 1, 2).Select
                     Selection.Paste
     
                     ActiveDocument.Tables(1).Cell(nb_ligne, 1).Select
                     Selection.Copy
                     ActiveDocument.Tables(1).Cell(nb_ligne + 1, 1).Select
                     Selection.Paste

    @+

  3. #3
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Points : 10 166
    Points
    10 166
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Ceci marche avec le premier tableau d'un document

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub LigneÀLaFinDuTableau()
        Dim tableau As Table
        Set tableau = ActiveDocument.Tables(1)
        tableau.Select
        Selection.InsertRowsBelow 1
    End Sub

    Je n'ai pas ouvert ton document pour vérifier; d'autant plus que l'enregistreur de macros t'aurait probablement donné le code le temps de le dire.

    1 ) Tu lances l'enregistreur de macros.
    2 ) Tu sélectionnes au clavier la dernière de ton tableau
    3 ) Tu te sers des menus (ou du ruban) et des boîtes de dialogues disponibles pour ajouter une ligne au-dessous de la ligne que tu as sélectionnée.
    4 ) Tu cliques sur Arrêter l'enregistrement.
    5 ) Bingo !

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juillet 2013
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 76
    Points : 39
    Points
    39
    Par défaut
    Pour la macro, tout bête mais je n'arrive pas à ajouter de ligne lorsque je passe en enregistrement macro, clic droit impossible...

    Pour l'inversement des lignes du code, ça semble fonctionner mais je m'y perds du coup par rapport aux champs formulaires imbriqué dedans, qui devraient être copiés automatiquement dans les nouvelles lignes ajoutées.

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Points : 10 166
    Points
    10 166
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par operaq Voir le message
    Pour la macro, tout bête mais je n'arrive pas à ajouter de ligne lorsque je passe en enregistrement macro, clic droit impossible...
    Relis ce que j'ai écris au point 3. Je n'ai pas écrit cela pour rien.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juillet 2013
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 76
    Points : 39
    Points
    39
    Par défaut
    Yes merci à vous deux;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            ActiveDocument.Tables(2).Cell(nb_ligne, 2).Select
            Selection.MoveRight Unit:=wdCell
            ActiveDocument.Tables(2).Cell(nb_ligne, 2).Select
            Selection.Copy
            ActiveDocument.Tables(2).Cell(nb_ligne + 1, 2).Select
            Selection.Paste
     
            ActiveDocument.Tables(2).Cell(nb_ligne, 1).Select
            Selection.Copy
            ActiveDocument.Tables(2).Cell(nb_ligne + 1, 1).Select
            Selection.Paste

  7. #7
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut

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

Discussions similaires

  1. recopier la ligne precedente dans formulaire
    Par zeloutre dans le forum IHM
    Réponses: 4
    Dernier message: 03/07/2007, 12h50
  2. Réponses: 4
    Dernier message: 21/09/2006, 08h25
  3. tableau dans formulaires et états
    Par gadjou dans le forum IHM
    Réponses: 2
    Dernier message: 20/07/2006, 13h32
  4. Ajout de ligne dynamique dans un tableau (Incompatible IE)
    Par seb34 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 26/05/2006, 11h03
  5. ajout d'un tableau dans une page html après un clic
    Par jehlg dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/02/2006, 17h37

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