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 :

Déprotéger un document Word, ajouter une ligne de tableau et reprotéger


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Déprotéger un document Word, ajouter une ligne de tableau et reprotéger
    Bonjour

    Je cherche à insérer un bouton dans un document Word(2002) qui permettrai de réaliser les actions suivantes en un seul "click":

    - Déprotéger le document
    - Copier une ligne vierge d'un tableau existant
    - Coller la nouvelle ligne
    - Reprotéger le document

    Merci encore pour votre aide

    David

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Bonjour et bienvenue sur les forums Office de DVP.

    Salut, il y a une chose que je ne comprends pas, pourquoi coller un ligne vierge d'un tableau ? Pourquoi ne pas simplement ajouter un ligne ?

    La macro devrait faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub MaMacro()
    With ActiveDocument
        .UnProtect
        .Tables(1).Rows.Add
        .Protect
    End With
    End Sub
    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
    Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Précisions sur ma demande
    Citation Envoyé par Heureux-oli Voir le message
    Bonjour et bienvenue sur les forums Office de DVP.

    Salut, il y a une chose que je ne comprends pas, pourquoi coller un ligne vierge d'un tableau ? Pourquoi ne pas simplement ajouter un ligne ?
    Hello

    Je souhaite sélectionner une ligne spécifique de mon tableau car celui ci n'est pas constant dans le nombre de colonne. Certaines lignes de mon tableau ont 4 colonnes et d'autres en ont 6.

    Il s'agit en fait d'un document d'entretien annuel et d'évaluation. La fonctionnalité du bouton est de pouvoir rajouter des lignes d'objectifs si nécessaire.

    Merci pour votre aide
    A+
    David

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    On peut ajouter le nombre de cellules que l'on souhaite.
    Il n'est pas utile de copier une ligne vide.

    Toutes fois si tu y tiens.
    Il faut donc ouvrir un second document, et savoir quel est le tableau source.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim oDoc1 as Document, oDoc2 As Document
    Dim oTbl1 As Table, oTbl2 As Table
     
    Set oDoc1 = ActiveDocument
    Set oDoc2 = Documents.Open("LeCheminDeMonDocument")
     
    Set oTbl1 = oDoc1.Tables(1)
     
    'Suivant que l'on veut 4 ou 6 lignes le nr de la table change
    Set oTbl2 =  oDoc2.tables(1).Rows.Last.Select
    Selection.copy
    otbl1.Rows.last.select
    Selection.PasteAppendTable
    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 !

  5. #5
    Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Les champs de formulaire ne sont pas repris lors de l'ajout de la ligne
    Citation Envoyé par Heureux-oli Voir le message
    On peut ajouter le nombre de cellules que l'on souhaite.
    Il n'est pas utile de copier une ligne vide.

    Toutes fois si tu y tiens.
    Il faut donc ouvrir un second document, et savoir quel est le tableau source.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim oDoc1 as Document, oDoc2 As Document
    Dim oTbl1 As Table, oTbl2 As Table
     
    Set oDoc1 = ActiveDocument
    Set oDoc2 = Documents.Open("LeCheminDeMonDocument")
     
    Set oTbl1 = oDoc1.Tables(1)
     
    'Suivant que l'on veut 4 ou 6 lignes le nr de la table change
    Set oTbl2 =  oDoc2.tables(1).Rows.Last.Select
    Selection.copy
    otbl1.Rows.last.select
    Selection.PasteAppendTable
    Merci beaucoup pour ta réponse,

    J'ai réussi à faire un bouton avec la commande suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub CommandButton6_Click()
    ActiveDocument.Unprotect
    ActiveDocument.Tables(2).Rows.Add
    ActiveDocument.Protect Password:="", NoReset:=False, Type:= _
            wdAllowOnlyFormFields
    End Sub
    Après plusieurs tests, le bouton fonctionne correctement, il déprotege le document, ajoute une ligne, puis reprotege le document.

    Malheureusement en utilisant cette commande, il ajoute une ligne avec le bon nombre de colonne, mais il ne reporte pas le texte et/ou les champs de formulaires qui étaient dans le document initial.

    De plus, je souhaiterai si possible ne pas avoir de 2eme document comme le suggère tes lignes de commande précédentes. Je souhaite ainsi éviter d'avoir à adresser plusieurs documents à l'utilisateur final.

    J'espère avoir été suffisement clair dans mes explications.

    Encore merci
    A+
    David

  6. #6
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Citation Envoyé par dlecha Voir le message
    Bonjour



    - Déprotéger le document
    - Copier une ligne vierge d'un tableau existant
    - Coller la nouvelle ligne
    - Reprotéger le document

    Merci encore pour votre aide

    David
    Tu n'avais pas dit que la ligne contenait quelque chose !
    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 !

  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 : 60
    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,


    Utilises directement alors un Copier-Coller de ta ligne de tableau comme ça tu as ton nombre de lignes et leur contenu. Et si tu veux effacer ta ligne, sélectionne-la et utilise la commande "Tableau-Effacer".

    @+

  8. #8
    Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Mes Excuses
    Citation Envoyé par Heureux-oli Voir le message
    Tu n'avais pas dit que la ligne contenait quelque chose !
    Salut Oli

    Je te prie de m'excuser pour la confusion de mon message. Je ne suis vraiment débutant dans Word

    Merci quand même
    David

  9. #9
    Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    J'ai enfin trouvé une solution simple:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub CommandButton1_Click()
    ActiveDocument.Unprotect
    ActiveDocument.Tables(3).Rows.Last.Select
    Selection.Copy
    Selection.Paste
    ActiveDocument.Protect Password:="", NoReset:=False, Type:= _
            wdAllowOnlyFormFields
    End Sub

    Encore merci à tous pour votre aide

    A+
    David

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

Discussions similaires

  1. Ajouter une ligne à un tableau
    Par remrem13 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 16/04/2009, 16h45
  2. Ajouter une ligne à un tableau (adaptation d'un script existant)
    Par beegees dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/10/2008, 11h04
  3. [DOM] Ajouter une ligne à un tableau
    Par Arnard dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/04/2007, 09h59
  4. Ajouter une ligne à un tableau
    Par frog43 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 19/03/2007, 14h39
  5. Ajouter une ligne à un tableau
    Par Oluha dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/02/2005, 15h20

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