Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/09/2008, 15h43   #1
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 1
Points : 1
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
dlecha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2008, 17h29   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 364
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 364
Points : 29 286
Points : 29 286
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 :
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2008, 19h28   #3
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 1
Points : 1
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
dlecha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2008, 21h08   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 364
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 364
Points : 29 286
Points : 29 286
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 :
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2008, 14h18   #5
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 1
Points : 1
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 :
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 :
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
dlecha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2008, 18h13   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 364
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 364
Points : 29 286
Points : 29 286
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2008, 00h48   #7
Rédacteur/Modérateur
 
Avatar de Sepia
 
Homme JF Jousseaume
Inscription : octobre 2007
Messages : 2 390
Détails du profil
Informations personnelles :
Nom : Homme JF Jousseaume
Âge : 48
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 2 390
Points : 3 356
Points : 3 356
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".

@+
Sepia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2008, 12h58   #8
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 1
Points : 1
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
dlecha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2008, 10h15   #9
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 1
Points : 1
J'ai enfin trouvé une solution simple:


Code :
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
dlecha est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h33.


 
 
 
 
Partenaires

Hébergement Web