6 pièce(s) jointe(s)
Vba copier/coller d'un tableau à l'autre
Bonjour le forum
J'en ai presque honte!
J'ai cherché et recherché pourtant.
Et c'est l'opération la plus basique copier/coller qui me pose problème.
Voilà : J'ai 2 documents avec chacun un tableau
je copie une plage d'un tableau et je la colle dans l'autre je sais faire ca "à la main" mais en vba ça plante (surement le fait de passer d'un doc à l'autre)
je m'explique
je copie ça
Pièce jointe 316987
mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| Sub copier_coller1()
Dim dc As Document
doc = "doc1"
'docbase = ThisDocument.Path & "\" & doc & ".docm"
docbase = "C:\Users\Michel\desktop\Dossier test\" & doc & ".docm"
'Ouverture du fichier à copier
Set dc = Documents.Open(docbase, Visible:=False)
Application.ScreenUpdating = False
Documents(doc & ".docm").Activate
'copier
ActiveDocument.Tables(1).Select
Set myTable1 = ActiveDocument.Tables(1)
Set myRange1 = ActiveDocument.Range(myTable1.Cell(2, 1) _
.Range.Start, myTable1.Cell(2, 3).Range.End)
myRange1.Copy
'fermeture doc1
ActiveDocument.Close savechanges:=False
'coller
ActiveDocument.Tables(1).Select
ActiveDocument.Tables(1).Cell(2, 2).Select
Selection.Paste
End Sub |
j'obtiens ça
Pièce jointe 317010
si je change de code et que je selectionne une plage "d'arrivée"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| Sub copier_coller2()
Dim dc As Document
doc = "doc1"
'docbase = ThisDocument.Path & "\" & doc & ".docm"
docbase = "C:\Users\Michel\desktop\Dossier test\" & doc & ".docm"
'Ouverture du fichier à copier
Set dc = Documents.Open(docbase, Visible:=False)
Application.ScreenUpdating = False
Documents(doc & ".docm").Activate
'copier
ActiveDocument.Tables(1).Select
Set myTable1 = ActiveDocument.Tables(1)
Set myRange1 = ActiveDocument.Range(myTable1.Cell(2, 1) _
.Range.Start, myTable1.Cell(2, 3).Range.End)
myRange1.Copy
'fermeture doc1
ActiveDocument.Close savechanges:=False
'coller
ActiveDocument.Tables(1).Select
Set myTable2 = ActiveDocument.Tables(1)
Set myRange2 = ActiveDocument.Range(myTable2.Cell(2, 2) _
.Range.Start, myTable2.Cell(2, 4).Range.End)
myRange2.Select
myRange2.Paste
End Sub |
j'obtiens
Pièce jointe 317012
alors que je voudrais ca
Pièce jointe 317005
Pouvez vous me dire où ça coince ?
Merci de votre aide