Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
820to824
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
820to824
820to824
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Große Excel-Tabelle an Word übergeben...
17.11.2006 12:46:33
Ben
Hallo zusammen,
habe folgendes Problem.
Habe eine Excel-Tabelle mit mehr als 450 Zeilen, die von Spalte A bis Spalte DY voll mit Werten sitzt. (Eine Zeile entspricht einem Datensatz mit entsprechenden Vorgangsvermerken und Informationen.
Gibt es eine Möglichkeit, dass mir ein Makro jetzt immer die Überschrift aus Zeile 1 in folgender Form schonmal in Word überträgt:
(Zeile1, Spalte1): XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
(Zeile1, Spalte2): YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
und die XXXXXXXXXXXXXXXXXXXXXXX - entsprechend auffüllt...
zuerst (Zeile2, Spalte1) mit XXXX, dann (Zeile2, Spalte2) mit YYYYY etc.
kennt da einer ne Möglichkeit?
Es sollte als Bericht quasi dienen...und es Übersichtlich darstellen...
Gruß + Danke vorab.
Ben

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Große Excel-Tabelle an Word übergeben...
17.11.2006 15:36:13
fcs
Hallo Ben,
das folgende Makro fügt Inhalte aus Excel ab der Cursorposition im aktiven Worddokument ein.
Das Makro fügst du im VBA-Editor in einem allgemeinen Modul deiner Exceldatei ein. Im Makro muss du ggf. noch den Namen der Tabelle anpassen
Im VBA-Editor muss du für die Datei, in der das Makro eingefügt wird, unter Extras-Verweise zusätzlich "Microsoft Word xy.z Object Library" als verfügbaren Verweis markieren.
Gruß
Franz

Sub Daten_nach_Word_uebertragen()
'Fügt Daten aus Excel ab der Cursorposition im aktiven Worddokument ein
Dim doc As Document, wks As Worksheet, Zelle As Range, I As Long, Zeile As Long, strText As String
Set wks = ActiveWorkbook.Worksheets("Tabelle2") 'Tabelle mit zu exportierenden Daten
Application.ActivateMicrosoftApp xlMicrosoftWord
Set doc = ActiveDocument
With doc
'Daten in Worddokument einfügen
For Zeile = 2 To 2   'wks.Cells(wks.Rows.Count, "A").End(xlUp).Row
'Inhalte eines Datensatzes in eine Text-String einlesen
strText = "Datensatz: " & Zeile - 1 & vbLf
For I = 1 To 129
Set Zelle = wks.Cells(Zeile, I)
'nächste Zeile überträgt Zellwerte
'strText = strText & "(" & wks.Cells(1, I).Text & "): " & Zelle.Value & vbLf
'nächste Zeile überträgt in der Tabelle angezeigte Werte (so wie formatiert, wichtig bei Datum und Prozent)
strText = strText & "(" & wks.Cells(1, I).Text & "): " & Zelle.Text & vbLf
Next I
'Datensatz in Word einfügen
.Application.Selection.TypeText strText
.Application.Selection.TypeText vbLf
Next Zeile
.Application.WindowState = wdWindowStateMinimize
End With
MsgBox "Daten sind übertragen"
End Sub

Anzeige
AW: Große Excel-Tabelle an Word übergeben...
17.11.2006 21:32:09
Ben
Hallo, vielen Dank für die Rückmeldung. Hab das ganze mal eingefügt, dummerweise wird nur der allererste Datensatz übertragen....Mit Auswahl ist nichts zu machen (=Cursor Standpunkt)
Gruß
AW: Große Excel-Tabelle an Word übergeben...
18.11.2006 06:32:11
fcs
Hallo Ben,
ich hatte den Zeilen-Zähler vorsichtshalber mal nur auf 2 gesetzt, damit nicht gleich ein 600-Seiten-Worddokument generiert wird, wenn die 450 Datensätze rüberrauschen.

Ändere Zeile
For Zeile = 2 To 2   'wks.Cells(wks.Rows.Count, "A").End(xlUp).Row
in
For Zeile = 2 To wks.Cells(wks.Rows.Count, "A").End(xlUp).Row

Dann wird die Zahl der zu übertragenden Zeilen an Hand der letzten ausgefüllten Zelle in Spalte A berechnet.
Falls du nur bestimmte Zeilen übertragen willst dann sag mal genau was du möchtest schau ich wie der Start bzw. Endwert der Schleife am besten gesetzt werden kann.
Gruss
Franz
Anzeige
AW: Große Excel-Tabelle an Word übergeben...
18.11.2006 16:16:24
Ben
Super, hat mir jetzt (nach etwas zeit) dann auch tatsächlich 47 seiten erzeugt! ;-)
ist halt etwas unübersichtlich...aber...immernoch viel viel besser als alles in einer spalte zu haben ;-)
wäre es möglich die spalten zu überspringen
m-q
ao-at
bj-bo
ci-cn
dp-dt
dann wäre das perfekt!
grundsätzliche frage, mit
for zeile = 5 to 30 könnte ich dann z.b. zeile 5 bis zeile 30 übertragen lassen?
richtig?
könnte ich ja jedesmal fix von hand wählen.
gruß
AW: Große Excel-Tabelle an Word übergeben...
18.11.2006 17:17:19
fcs
Hallo Ben,
hab das Makro nochmal an deine Wünsche angepasst. Das Makro fragt jetzt in 2 Eingabeboxen die zu übertragenden Zeilen ab.
Gruss
Franz

Sub Daten_nach_Word_uebertragen()
'Fügt Daten aus Excel ab der Cursorposition im aktiven Worddokument ein
Dim doc As Document, wks As Worksheet, Zelle As Range, I As Long, Zeile As Long, strText As String
Set wks = ActiveWorkbook.Worksheets("Tabelle2") 'Tabelle mit zu exportierenden Daten
'Eingabe der zu übertragenden Zeilen
Zeile1 = Val(InputBox("1. Zeile die übertragen werden soll?", "Datentransfer nach Word", 2))
If Zeile1 < 2 Then Exit Sub
Zeile2 = Val(InputBox("Letzte Zeile die übertragen werden soll?", "Datentransfer nach Word", 2))
If Zeile2 <= Zeile1 Then Exit Sub
Application.ActivateMicrosoftApp xlMicrosoftWord
Set doc = ActiveDocument
With doc
'Daten in Worddokument einfügen
For Zeile = Zeile1 To Zeile2   'wks.Cells(wks.Rows.Count, "A").End(xlUp).Row
'Inhalte eines Datensatzes in eine Text-String einlesen
strText = "Datensatz: " & Zeile - 1 & vbLf
For I = 1 To 129
Select Case I
Case 13 To 17, 41 To 46, 62 To 67, 87 To 92, 120 To 124
'do nothing,
'Daten in diesen Spalten nicht übertragen
'm -q, ao -at, bj -bo, ci -cn, dp -dt
Case Else
Set Zelle = wks.Cells(Zeile, I)
'nächste Zeile überträgt Zellwerte
'strText = strText & "(" & wks.Cells(1, I).Text & "): " & Zelle.Value & vbLf
'nächste Zeile überträgt in der Tabelle angezeigte Werte (so wie formatiert, wichtig bei Datum und Prozent)
strText = strText & "(" & wks.Cells(1, I).Text & "): " & Zelle.Text & vbLf
End Select
Next I
'Datensatz in Word einfügen
.Application.Selection.TypeText strText
.Application.Selection.TypeText vbLf
Next Zeile
.Application.WindowState = wdWindowStateMinimize
End With
MsgBox "Daten sind übertragen"
End Sub

Anzeige
AW: Große Excel-Tabelle an Word übergeben...
18.11.2006 18:25:06
Ben
super! 1000 DANK!!!! einfacher geht's nicht! - kennst du noch einen trick, wie ich die statischen werte fett schreiben lassen kann (aus zeile 1?)
gruß

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige