Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
799 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [WORD 2010] Sélectionner et déplacer une ligne dans un tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[WORD 2010] Sélectionner et déplacer une ligne dans un tableau

n°2179749
iratihel
Posté le 11-03-2013 à 16:25:49  profilanswer
 

Bonjour à toutes et à tous,
 
Débutante en VBA, je cherche à savoir comment sélectionner la 2ème ligne d'un tableau défini, la copier et coller uniquement le contenu 1 ligne en dessous. J'ai un modèle avec ce fameux tableau positionné à la fin du document, et je voudrais que les personnes qui utiliseront le document puissent incrémenter automatiquement la version chaque fois qu'ils auront à modifier leur texte. Petit détail supplémentaire, la ligne que je souhaite recopier contient des champs insérés par signets et ceux-ci doivent rester en place uniquement sur la 2ème ligne, pas sur les autres lignes du tableau (je ne sais pas si je suis très claire... :heink: )  
 
Je pensais utiliser  
 

Code :
  1. WordDocument.Tables(5).Rows(2).Range.Copy


 
mais d'autres tableaux pourront être rajoutés dans mon document, du coup le n° de table risque de changer.
 
J'ai donc défini un signet sur mon tableau mais quand j'utilise le code pour appeler le signet je sélectionne la totalité de la table et non juste la ligne qui m'intéresse
 

Code :
  1. Selection.GoTo What:=wdGoToBookmark, Name:="Tableau_V"


 
J'ai essayé de "bidouiller" avec l'aide de Word (F1) et différentes informations glanées sur le net mais je n'ai obtenu que des erreurs de compilation... Je n'emploie certainement pas les bons arguments au bon endroit. Je reconnais volontiers que je ne sais pas trop quoi placer où.
 

Code :
  1. ActiveDocument.Bookmarks("Tableau_V" ).Selection.Rows (2)
  2. ActiveDocument.Bookmarks("Tableau_V" ).Range.Rows (2)


 
Merci à celles et ceux qui voudront bien me donner quelques explications sur la marche à suivre.

Message cité 1 fois
Message édité par iratihel le 11-03-2013 à 16:26:27
mood
Publicité
Posté le 11-03-2013 à 16:25:49  profilanswer
 

n°2179770
iratihel
Posté le 11-03-2013 à 16:58:07  profilanswer
 

Re Bonjour,
 
J'ai trouvé une solution à mon problème mais il me manque des éléments de code pour arriver exactement au résultat recherché...
 

Code :
  1. Private Sub CommandButton1_Click()
  2.   With Selection
  3.   .GoTo What:=wdGoToBookmark, Name:="Tableau_V_l2"
  4.    .Copy
  5.    .InsertRowsBelow
  6.    .PasteSpecial DataType:=wdPasteText
  7. End With
  8. End Sub


 
J'ai modifié mon signet pour qu'il sélectionne la ligne qui m'intéresse.
Mais je rencontre maintenant un nouveau soucis. La ligne que je copie ne se colle pas correctement. Elle contient des champs automatiques. En début de document, je définis tous les champs qui seront utilisés. En l'occurence, pour ma ligne, il s'agit de la date d'enregistrement (LastSave), du nom de l'auteur, du nom du relecteur et du nom de l'approbateur. Or quand je copie/colle cette ligne, les champs sont copiés n'importe comment. Je mets une image, ça sera plus parlant:
 
http://img15.hostingpics.net/pics/640684tableau.jpg
 
Je fais un collage spécial du texte dans mon code. Si je fais un simple copier/coller, les champs sont collés en même temps, ce qui ne m'intéresse pas car le but du tableau est de conserver l'historique des modifications du document.
 
Quelqu'un aurait une petite idée? Merci!!

n°2179860
Marc L
Posté le 12-03-2013 à 00:18:53  profilanswer
 

 
            Salutations.   Le deuxième message m'a quelque peu refroidi mais déjà je n'avais pas eu le temps de répondre au premier …

iratihel a écrit :

 […]     J'ai donc défini un signet sur mon tableau mais quand j'utilise le code pour appeler le signet
           je sélectionne la totalité de la table et non juste la ligne qui m'intéresse
 

Code :
  1. Selection.GoTo What:=wdGoToBookmark, Name:="Tableau_V"



            Donc à ce stade, il ne faut plus partir du document mais exploiter plutôt la sélection, dans le genre :

      Selection.Tables(1).Rows(2).Copy

            Même si ce n'est pas le premier tableau du document, en utilisant donc la sélection en cours
            il ne peut y avoir qu'un seul tableau, d'où le .Tables(1)
 
            Cela ne solutionne pas hélas le deuxième message mais là je suis dans le brouillard
            car je n'arrive pas à bien visualiser la problématique rencontrée, désolé …
            En espérant qu'un spécialiste de Word passe ici, bonne continuation.
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [WORD 2010] Sélectionner et déplacer une ligne dans un tableau

 

Sujets relatifs
[macro WORD]: extraction de phrases à partir de mot clélsite chainée en ADA avec allocation static des objets dans un tableau
HTML tableau colspanSupprimer la ligne X d'un fichier txt
brobleme: tableau de structureRécupérer une "colonne" d'un tableau
Word VB et calcul sur des objets insérésproblème retour à la ligne
Renommage de fichier avec le contenu de la 1ère ligneSuppression des doublons dans un tableau des chaines des caractères
Plus de sujets relatifs à : [WORD 2010] Sélectionner et déplacer une ligne dans un tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR