Access-o-Mania

Office-Forum (Deutsch/German) => Microsoft Excel => Thema gestartet von: Carlos_C am September 21, 2014, 21:45:27

Titel: Bereich aus Excel Sheet mit VBA auf Word kopieren.
Beitrag von: Carlos_C am September 21, 2014, 21:45:27
Guten Abend liebes Forum,

ich habe eine Frage bzgl. Einfügen von einer Excel Tabelle in Word.

Also, ich habe ein Excel Sheet, die ich per Knopfdruck auf Word exportieren möchte.

Das Sheet besteht aus dem Bereich C2:HX. Mit HX meine ich, dass die Länge des Sheets variabel ist.

Wenn ich z.B. den Bereich C2:H37 auf Word kopieren möchte, kann ich folgenden Code benutzen:

Private Sub CommandButton1_Click()
Dim wd As Object
Range("C2:H37").Copy
Set wd = CreateObject("word.application")
wd.documents.Add
wd.Visible = True
wd.activedocument.Range.Paste
End Sub

Den Code habe ich beim googeln gefunden. Funktioniert im Prinzip sehr gut! Damit habe ich aber leider mein Problem noch nicht gelöst. Warum?

1.   Die Tabelle (oder der eingefügte Bereich) ist bei Word breiter als das Word Blatt und muss angepasst werden (also rechte Maustaste auf das Plus Zeichen oben links bei Word, dann auf ,,AutoAnpassen" klicken, dann auf ,,Größe an Fenster anpassen" klicken) und die Spaltenbreiten müssen auch angepasst werden, damit die Tabelle ordentlich aussieht. Das kann ich alles manuell machen, möchte aber, dass VBA sich darum kümmert.
2.   Wie am Anfang erwähnt, ist die Länge der Tabelle variabel. Der Code kopiert den Bereich C2:H37, die Länge kann aber zwischen H9 und H-undendlich sein. Die Tabelle ist so lang, wie die letzte ausgefüllte Zelle in der Spalte C. Also, in diesem Fall ist der letzte Wert in der Spalte C genau in der Zelle C37 und deshalb ist der Bereich C2:H37.

Also, zusammengefasst, der Code, denn ich suche, soll folgendes machen (Beispiel: die letze ausgefüllte Zelle der Spalte C ist die Zelle C80):

1.   Bestimme die letzte ausgefüllte Zelle der Spalte C (Antwort: C80).
2.   Bestimme den zu kopierenden Bereich (Antwort: C2:H80).
3.   Kopiere den Bereich auf Word.
4.   Größe der Tabelle bei Word an Fenster anpassen.
5.   Breite der Spalte C bei Word anpassen (Z.B.: 1 cm).
6.   Breite der Spalte D bei Word anpassen (Z.B.: 6 cm).

Ist das alles mit VBA machbar?

Ich freue mich auf jeden Vorschlag!

Liebe Grüße,

Carlos
Titel: Re: Bereich aus Excel Sheet mit VBA auf Word kopieren.
Beitrag von: Carlos_C am September 23, 2014, 09:05:29
Guten Morgen, liebes Forum,

könnte mir jemand mit diesem Thema helfen? Ich wäre dafür sehr dankbar.

LG,

Carlos
Titel: Re: Bereich aus Excel Sheet mit VBA auf Word kopieren.
Beitrag von: Sebi am September 25, 2014, 16:32:49
Hallo,

zu 1. ja das geht
Public Sub letzte_zeile_1()
'Hier wird die letzte Zeile ermittelt
'Egal in welcher Spalte sich die letzte Zeile befindet
'Es werden alle Spalten geprüft und die letzte Zeile ausgegeben
letztezeile = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
MsgBox letztezeile
End Sub


zu 2. ja das geht auch, die Range kannst du ja dann als Variable übergeben.
zu 3. das hattest du ja gepostet.
zu 4-6 ist jetzt die Frage ob man das zuerst in Excel anpasst vor dem Export oder im Nachgang in Word.
Eingefügte Exceltabellen in Word sind m.W. in Word via VBA nicht ansprechbar.

Titel: Re: Bereich aus Excel Sheet mit VBA auf Word kopieren.
Beitrag von: ebs17 am September 26, 2014, 11:13:12
Als Ansatz:
Private Sub CommandButton1_Click()
    Dim oWrd As Object
    Dim oDoc As Object

    With ActiveSheet
        .Range(.Cells(2, 3), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 8 )).Copy
    End With
   
    Set oWrd = CreateObject("Word.Application")
    Set oDoc = oWrd.Documents.Add
    oWrd.Visible = True
    oDoc.Range.Paste
   
    With oDoc.Tables(1)
        .Columns.AutoFit
    End With
   
End Sub


Durch das Einfügen wird die Tabelle zur Wordtabelle und muss dann entsprechend angesprochen werden.

Innerhalb der Wordtabelle sind Zeilen, Spalten sowie Zellen referenzierbar und somit dann auch änderbar. Ein Blick in die VBA-Hilfe von Word sowie in den Objektkatalog (Taste F2 aus VBA-Editor) zeigen da mögliche Methoden und Eigenschaften.
Titel: Re: Bereich aus Excel Sheet mit VBA auf Word kopieren.
Beitrag von: Sebi am September 27, 2014, 20:20:27
Hallo,

danke für den Tip mit einer Umwandlung in eine Word Tabelle, daran hatte ich gar nicht gedacht.

lg Sebi
Titel: Re: Bereich aus Excel Sheet mit VBA auf Word kopieren.
Beitrag von: Carlos_C am September 30, 2014, 07:54:48
Super! Vielen Dank Sebi und ebs17 für Eure Antworten! Ich werde das heute testen und über das Ergebnis berichten.

Nochmal vielen Dank, Leute!

LG

Carlos
Titel: Re: Bereich aus Excel Sheet mit VBA auf Word kopieren.
Beitrag von: Carlos_C am Februar 25, 2015, 17:12:53
Hallo Leute! Ich habe damals vergessen zu sagen, dass ich es getestet hatte, und es super funktioniert hat. Danke vielmals!