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 01/06/2011, 17h41   #1
Invité régulier
 
Homme
Étudiant
Inscription : juin 2011
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 20
Points : 8
Points : 8
Par défaut Problème transfert tableau

Bonjour,

Je suis débutant avec VBA dans Word et j'essaie de trouver une manière de déplacer mes tableaux un par un dans un autre document word à l'aide d'un bouton.

J'ai présentement le code ci-dessous pour déplacer un de mes tableaux dans un nouveau document:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Graph1_Click()
If ActiveDocument.Tables.Count >= 1 Then
    ActiveDocument.Tables(1).Range.Copy
    Documents.Add.Content.Paste
End If
End Sub
 
Private Sub Graph2_Click()
If ActiveDocument.Tables.Count = 2 Then
    ActiveDocument.Tables(2).Range.Copy
    Documents.Add.Content.Paste
End If
End Sub

Le problème, c'est que j'aimerais que mon transfert de tableau lorsque je clique sur mes boutons se fasse dans le même document, alors que présentement, à chaque fois que je transfère un de mes tableaux avec cette fonction, il créer un nouveau document pour afficher mon tableau.

Merci beaucoup!
Alexandre Drouin
Alex.d est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 17h55   #2
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
bonjour,
Il suffit de sélectionner une zone dans le nouveau document.
Citation:
Code :
1
2
3
4
5
6
7
Private Sub Graph1_Click()
If ActiveDocument.Tables.Count >= 1 Then
    ActiveDocument.Tables(1).Range.Copy
'Crée un nouveau document et y colles le contenu du presse papier
    Documents.Add.Content.PasteEnd If
End Sub
remplace cette zone commentée par
Code :
1
2
3
4
5
6
7
8
9
Private Sub Graph1_Click()
dim myrange as range 'Déclarer une nouvelle zone pour l'insertion
If ActiveDocument.Tables.Count >= 1 Then
    ActiveDocument.Tables(1).Range.Copy
   set myrange=activedocument.range(start:=activedocument.range.end-1, end:=activedocument.range.end-1) 'Zone où insérer le tableau (ici la fin du document)
   myrange.paste  
End If
End Sub
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 19h53   #3
Invité régulier
 
Homme
Étudiant
Inscription : juin 2011
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 20
Points : 8
Points : 8
Merci pour la réponse rapide. Cela a été très utile!

Si vous me permettez une autre question, j'aimerais savoir comment-est-ce que c'est possible de sélectionner tous les tables du document et non seulement une table spécifique, car j'aimerais copier toutes les tables de mon document actif en même temps. Ou sinon, existe t'il un macro qui permet de cacher les Boutons dans word.

Code :
1
2
3
4
5
6
7
8
 
Private Sub Graph3_Click()
If ActiveDocument.Tables.Count >= 1 Then
    ActiveDocument.Tables(1).Range.Copy
    ActiveDocument.Range.Copy
    Documents.Add.Content.Paste
End If
End Sub
Merci beaucoup!!
Alex.d est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 20h55   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 323
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 323
Points : 29 225
Points : 29 225
Salut,

Toutes en une seule fois, ce ne sera pas possible, par contre, on peut le faire une à une.
On peut faire une boucle sur une collection d'objets.
On peut donc faire une boucle sur les tables d'un document.
Le code devrait ressembler à ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim oTbl as Table
Dim oDocSource as Document
Dim oDocCible as Document
 
set oDocSource = ActiveDocument
set odocCible = Document.add
For Each oTbl in odocsource.Tables
oTbl.select
Selection.Copy
oDocCible.Select
Selection.paste
Selection.EndKey unit:=wdstory
selection.typeparagraph
next otbl
__________________
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 03/06/2011, 20h30   #5
Invité régulier
 
Homme
Étudiant
Inscription : juin 2011
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 20
Points : 8
Points : 8
Par défaut Merci!

Merci pour le réponse!
j'aurais une dernière question par rapport à ce sujet.

j'ai le code suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
Private Sub Graph3_Click()
Dim oTbl As Table
Dim oDocSource As Document
Dim oDocCible As Document
 
Set oDocSource = ActiveDocument
Set oDocCible = Documents.Add
For Each oTbl In oDocSource.Tables
oDocCible.Select
oTbl.Select
Selection.Copy
oDocCible.Select
Selection.Paste
Selection.EndKey unit:=wdStory
Selection.TypeParagraph
Next oTbl
End Sub
Le seul problème qu'il me reste, c'est que lorsque je fait l'action, cela colle les graphiques dans mon autre document un par dessus l'autre.
Est-ce qu'il y a un moyen de faire un saut de page avec entre les [Paste]???

Merci!
Alex
Alex.d est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2011, 21h15   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 323
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 323
Points : 29 225
Points : 29 225
Salut,


Je pense que
Code :
Selection.InsertBreak (wdPageBreak)
devrait t'aider.
__________________
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 23/07/2011, 20h16   #7
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 54
Points : 17
Points : 17
Super,

la réponse de Carden m'a bcp aidée dans le sens où elle permet ensuite de reselectionner le contenu collé pour lui affecter un signet.

Je galerais depuis plusieurs heures pour trouver un moyen, alors merci

Code :
1
2
3
4
5
6
7
8
9
10
 
Dim tabSelection, zoneDest as Range
 
Set tabSelection = DOCMatriceFields.Bookmarks("tabGal").Range
tabSelection.Copy
Set zoneDest = DOCMatriceText.Bookmarks("tabGal").Range
zoneDest.Paste
 
zoneDest.Select
DOCMatriceText.Bookmarks.Add Name:="tabGal", Range:=zoneDest
AliochaBada 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 18h09.


 
 
 
 
Partenaires

Hébergement Web