Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1548to1552
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
Inhaltsverzeichnis

Wordvorlagen Texte und Tabellen

Wordvorlagen Texte und Tabellen
07.04.2017 10:59:59
Urs
Hallo zusammen
Habe bereits in diesem Forum nach Lösungen gesucht und nicht weitergekommen. Ist eine ziemlich kniffelige Angelegenheit. Ich versuche es noch einmal.
Habe hier eine schreibgeschütze Word-Datei, wo die User ihre Daten eintragen müssen.
Es gibt Textzeilen und Tabellen. Textzeilen können beliebig viele Zeilen haben, Tabellen sind immer gleich gross, können aber auch wieder beliebig viele Tabellen enthalten. Nun möchte man Textzeilen und Tabellen die für die User beschreibbar sind in eine Excel Datei kopieren und zwar so, dass es in eine Zeile erscheint. Die Tabellen müssten aber untereinander erscheinen. So gibt es dann weitere Dokumente, die dann immer wieder unterhalb eingefügt werden.
Ich hoffe ich habe das einigermassen verständlich erklärt. Das Makro kann vom Excel aus erstellt werden, nicht vom Word (im Word ist es fast nicht realisierbar).
Danke vielmals für die Hilfe
Gruss
Urs

31
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Link zum Archiv? (owT)
07.04.2017 11:11:28
Fennek
AW: kleiner Test ...
07.04.2017 13:31:42
Fennek
Hallo,
damals hatte ich die zip-Datei nicht geöffnet, da zip ausführbare Codes eenthalten kann.
Wenn du noch einmal ein docs-Datei hochlädts, sehe ich mir das max 30 Minuten an. Der bestehende Code würde daher nur zum Nachvollziehen zu lange benötigen.
Ich würde testen, ob ein

for i = 1 to activedocuments.tables
next i
funktioniert. Damit könnten evt. beliebig viele Tabellen nach xl kopiert werden und dann weiterverarbeitet. Es ist m.E. egal, ob der Makro in xl oder wd gestartet wird.
Falls ich mehr Zeit benötigen sollte, überlege dir ein Budget.
mfg
Anzeige
AW: kleiner Test ...
07.04.2017 13:47:33
Scheidegger
Hi Fennek
Danke fürs anschauen. Schaue es einfach mal an, wirklich nur 30 Minuten, da ich in einer Verwaltung arbeite habe ich kein Budget. Sonst lassen wir das halt......
Im Excel wäre das Resultat.
https://www.herber.de/bbs/user/112727.zip
Gruss
Urs
AW: zip?!?
07.04.2017 13:59:43
Fennek
Hallo,
auch in der Verwaltung kennt man den Unterschied zwischen zip und xlsx bzw doc.
Für mich war es das dann.
Viel Glück!
mfg
AW: zip?!?
07.04.2017 14:08:04
Scheidegger
Hallo Fennek
OK mein Fehler, hatte das ja schon einmal auf diesem Forum hochgeladen und auf dem Desktop entzippt. Kann ja einmal vorkommen.....
Für mich war es dann auch.....
Danke für die Bemühungen.
Gruss
Urs
Anzeige
AW: Wordvorlagen Texte und Tabellen
07.04.2017 13:56:19
EtoPHG
Hallo Urs,
Das wird deftig, insbesondere aufgrund:
Zitat: Tabellen sind immer gleich gross, können aber auch wieder beliebig viele Tabellen enthalten.
...und deine Aussage: Das Makro kann vom Excel aus erstellt werden, nicht vom Word (im Word ist es fast nicht realisierbar).deutet darauf hin, dass du schon einiges versucht hast.
Voraussetzung zur Realisierung einer 'generischen', d.h. nicht fallbezogenen, Anwendung zur Transformation von Word-Tabellen nach Excel-Tabellen, sind IMHO extrem gute Kentnisse der Objektmodelle von EXCEL und WORD nötig. Dazu genügen die durchschnittlichen VBA-Kenntnisse, wie sie hier im Forum findest, kaum (Klar gibt es einige Cracks, aber zu denen zähl ich mich nicht). Mich würde v.a. die erste Aussage abschrecken, auch wenn ich eine Grundahnung von Rekursionen habe.
Das tönt mir nach einer Auftragsarbeit, die kaum über eine Forumsdiskussion lösbar ist.
Gruess Hansueli
Anzeige
AW: Wordvorlagen Texte und Tabellen
07.04.2017 14:27:22
Scheidegger
Hallo Hansueli
Habe ich mir schon fast gedacht, dass dies nicht so einfach ist. Ich bin schon seit langem daran dies zu realisieren. Im Prinzip wäre es von Vorteil wenn's direkt ab Dokumenten-Makro gehen würde, aber für diesen Fall habe ich im Internet gar nichts gesehen. Daher ist es vermutlich besser ein Excel-Makro zu erstellen.
Es würde mir schon helfen, wenn ich aus dem Word die Tabellen im Excel untereinander einlesen könnte. Einfach in die nächste freie Zeile im Excel.
Wenn du vielleicht dort etwas wüsstet, wäre es toll.
Gruss
Urs
AW: Wordvorlagen Texte und Tabellen
07.04.2017 14:32:35
Scheidegger
Hallo Hansueli
Habe ich mir schon fast gedacht, dass dies nicht so einfach ist. Ich bin schon seit langem daran dies zu realisieren. Im Prinzip wäre es von Vorteil wenn's direkt ab Dokumenten-Makro gehen würde, aber für diesen Fall habe ich im Internet gar nichts gesehen. Daher ist es vermutlich besser ein Excel-Makro zu erstellen.
Es würde mir schon helfen, wenn ich aus dem Word die Tabellen im Excel untereinander einlesen könnte. Einfach in die nächste freie Zeile im Excel.
Wenn du vielleicht dort etwas wüsstet, wäre es toll.
Gruss
Urs
Anzeige
AW: Wordvorlagen Texte und Tabellen
07.04.2017 15:03:35
Scheidegger
Hallo Hansueli
Habe ich mir schon fast gedacht, dass dies nicht so einfach ist. Ich bin schon seit langem daran dies zu realisieren. Im Prinzip wäre es von Vorteil wenn's direkt ab Dokumenten-Makro gehen würde, aber für diesen Fall habe ich im Internet gar nichts gesehen. Daher ist es vermutlich besser ein Excel-Makro zu erstellen.
Es würde mir schon helfen, wenn ich aus dem Word die Tabellen im Excel untereinander einlesen könnte. Einfach in die nächste freie Zeile im Excel.
Wenn du vielleicht dort etwas wüsstet, wäre es toll.
Gruss
Urs
AW: Wordvorlagen Texte und Tabellen
07.04.2017 15:28:36
Scheidegger
Hallo Hansueli
Habe ich mir schon fast gedacht, dass dies nicht so einfach ist. Ich bin schon seit langem daran dies zu realisieren. Im Prinzip wäre es von Vorteil wenn's direkt ab Dokumenten-Makro gehen würde, aber für diesen Fall habe ich im Internet gar nichts gesehen. Daher ist es vermutlich besser ein Excel-Makro zu erstellen.
Es würde mir schon helfen, wenn ich aus dem Word die Tabellen im Excel untereinander einlesen könnte. Einfach in die nächste freie Zeile im Excel.
Wenn du vielleicht dort etwas wüsstet, wäre es toll.
Gruss
Urs
Anzeige
AW: wd-Makro und mangeldes Verständns
07.04.2017 21:00:12
Fennek
Hallo,
ich bin es doch noch einmal.
Da Michael die zip-Datei geöffnet hatte und mein Viren-Scanner friedlich blieb, war die Schadware-Gefahr vielleicht doch nicht so hoch.
Mit folgenden wd-Makros ist es m.E. möglich, alle für xl notwendigen Daten auszulesen:

Sub T1()
Dim Tb As Table
For Each Tb In ActiveDocument.Tables
Tb.Select
Selection.Copy '
Dies nach xl zu übertragen und für alle *.docx zu wiederholen, erscheint mir im Moment als reine Fleißaufgabe, aber technisch nicht zu kompliziert.
Stimmt das?
mfg
AW: xl-Makro
08.04.2017 09:57:56
Fennek
Hallo,
hier ein Beispiel mit einem xl-Makro. Für die Entwicklung wurde "early binding" genutz, das sollte, wenn alles fertig ist, auf "latebinding" geändert werden.
Der Code ist in Office 2016 etestet.

Enum xCol
ID = 1
iFile = 2
Tit = 2
Tab1 = 6
End Enum
Sub Fen()
'early binding: Verweis auf "MS Word" setzen
'Dim Wd As Object
Dim Wd As Word.Application
Dim Doc As Object
Dim iPath As String, iFile As String
Dim xZ As Integer 'Zeile in xl
'Set Wd = CreateObject("Word.Application")
Set Wd = New Word.Application
iPath = ThisWorkbook.Path & "\"
xZ = 1
iFile = Dir(iPath & "*.docx")
Do While Len(iFile)
xZ = xZ + 1
Cells(xZ, xCol.ID) = xZ - 1
Cells(xZ, xCol.iFile) = iFile
Set Doc = Wd.Documents.Open(iPath & iFile, , 1)
Wd.Visible = True
If Cells(xZ, xCol.Tit + 1) = "" Then
With Doc.Content.Paragraphs
For iP = 1 To .Count
If .Item(iP).Style = "Überschrift 1" Then ' "Formatvorlage1" Then ' Unterpunkte
T = T + 1
Cells(xZ, xCol.Tit + T) = .Item(iP).Range.Text
End If
Next iP
End With
End If
Doc.Close 0
iFile = Dir
Loop
Fin:
Set Wd = Nothing
End Sub
Es ist ziemlich mühsam, diese unterschiedlichen Tabellen nach xl in EINE Zeile zu bringen, mehr als den Weg zeigen, werde ich nicht.
mfg
Anzeige
AW: xl-Makro
10.04.2017 10:33:31
Urs
Hallo Fennek
Danke, dass du dich dem noch einmal angenommen hast. Das xl-Makro ist Super. Es müsste allerdings die Zeilen nicht versetzt sondern immer untereinander ab Spalte C einsetzen. Ist vermutlich eine kleine Sache......
Gruss
Urs
AW: Zitronen-Murkx
10.04.2017 11:23:41
Fennek
Hallo,
am Wochenende habe ich noch einen Code zum Einlesen der anderen Tabellen geschrieben. Als Basis zum Austesten könnte es reichen, als "copy/paste" wohl nicht.
Wer immer die Tabellen 1, 5 und 8 mit mehreren Überschriften in einer Tabelle konzipiert hat, hat richtig "gemurkxst", aber auch das kann man auslesen.
Ich habe eine kurzen Blick in die bereitgestellte xlsm-Datei geworfen: Nach meiner Ansicht MUSS ein Datensatz in EINE Zeile der Auswertung überführt werden!
Auch nach einigem NAchdenken habe ich keine andere Idee als einen Zitronen-Markt: es ist kein Geschäft zu machen, mein Code ist nicht gut genug um ihn zu verkaufen, geschenkt hilft er dir nicht, da du ihn vermutlich nicht anpassen kannst und ca 2 Stunden Prpgrammierarbeit sind für mich genug. Also bedanke ich mich für die realitätsnahe Aufgabe und die Unterhaltung/Übung.
mfg

Sub Fen()
'early binding: Verweis auf "MS Word" setzen
'Dim Wd As Object
Dim Wd As Word.Application
Dim Doc As Object
Dim Tb As Table
'dim Tb as object
Dim wC()
wC = Array(0, 4, 1, 3, 3, 3, 4, 3, 4)
Dim iPath As String, iFile As String
Dim xZ As Integer 'Zeile in xl
'Set Wd = CreateObject("Word.Application")
Set Wd = New Word.Application
iPath = ThisWorkbook.Path & "\"
xZ = 1
iFile = Dir(iPath & "*.docx")
Do While Len(iFile)
xZ = xZ + 1
Cells(xZ, xCol.ID) = xZ - 1
Cells(xZ, xCol.iFile) = iFile
Set Doc = Wd.Documents.Open(iPath & iFile, , 1)
Wd.Visible = True
'### Überschriften
If Cells(xZ, xCol.Tit + 1) = "" Then
With Doc.Content.Paragraphs
For iP = 1 To .Count
If .Item(iP).Style = "Überschrift 1" Then ' "Formatvorlage1" Then ' Unterpunkte
T = T + 1
Cells(xZ, xCol.Tit + T) = .Item(iP).Range.Text
End If
Next iP
End With
End If
'### Tabellen
With Doc
For iT = 1 To .Tables.Count
Select Case iT
Case Is = 1
Sp = xCol.Tab1
Case Is = 3
Sp = xCol.Tab3
Case Is = 4
Sp = xCol.Tab4
Case Is = 5
Sp = xCol.Tab5
Case Is = 6
Sp = xCol.Tab7
Case Is = 7
Sp = xCol.Tab7
Case Is = 8
Sp = xCol.Tab8
End Select
Select Case iT
Case Is = 2
For i0 = 1 To Doc.Tables(iT).Rows.Count
Cells(xZ, xCol.Tab2 + i0 - 1) = .Tables(iT).Cell(i0, wC(iT)). _
Range.Text
Next i0
Case Is = 1, 5, 8
For i0 = 1 To Doc.Tables(iT).Rows.Count
If i0  7 Then Cells(xZ, Sp + i0) = Val(.Tables(iT).Cell(i0, wC( _
iT) + 3).Range.Text)
Next i0
Case Else
For i0 = 1 To Doc.Tables(iT).Rows.Count
Cells(xZ, Sp + i0) = Val(.Tables(iT).Cell(i0, wC(iT)).Range. _
Text)
Next i0
End Select
Next iT
End With
Doc.Close 0
iFile = Dir
Loop
Fin:
Wd.Quit
Set Doc = Nothing
Set Wd = Nothing
End Sub

Anzeige
AW: ich gebs auf....
10.04.2017 14:05:58
Urs
Hallo Fennek
Danke noch einmal für die immense Arbeit auch am Wochenende. Der Code bringt ab "Sp = xCol.Tab3" einen Kompilierfehler: Methode oder Datenobjekt nicht gefunden. Da ich den Code sowieso nicht verstehe, lassen wird das.
Ich werde mit den Ansätzen von Michael und deinem Vorherigen Code selber etwas basteln, ansonsten breche ich das Ganze ab.
Danke für deine Hilfe....... und tschüss.
Urs
AW: Einen hab' ich noch...
10.04.2017 14:42:14
Fennek
Hallo Urs,
natürlich bricht es ab ...
Wie wäre es, die Frage noch einmal in "www.clever-excel-forum.de" zu stellen?
Dort
- kannst du mir per PN eine Amazon-Gutschein in angemessener Höhe zuschicken
- hoffen, dass einer der Experten für xl UND wd einen Code liefert, bei dem ich noch etwas lernen kann
mfg
Anzeige
AW: Einen hab' ich noch...
10.04.2017 16:03:00
Urs
Hallo Fennek
Nee, Sorry, wenn es für mich Privat wäre, sofort, aber für die Firma nicht. Gehe sowieso Ende Mai in Pension.......
mfg
AW: Einen hab' ich noch...
10.04.2017 16:12:04
Fennek

Enum xCol
ID = 1
iFile = 2
Tit = 2
Tab1 = 5
Tab2 = 25
Tab3 = 33
Tab4 = 38
Tab5 = 45
Tab6 = 64
Tab7 = 69
Tab8 = 76
End Enum
Enum wdCol
T1 = 19
T2 = 8
T3 = 5
T4 = 7
T5 = 19
T6 = 5
T7 = 7
T8 = 19
End Enum

AW: Einen hab' ich noch...
10.04.2017 16:39:47
Urs
Was bringt der? Sehe keine Veränderung.......
AW: Einen hab' ich noch...
10.04.2017 17:10:48
Fennek
Hallo,
das muss vor "Sub" stehen und gibt an, in welche Spalten der xl die Daten aus wd kopiert werden. Geht sicher auch anderst, aber ich wollte diesen (frisch gelernten) Code mal testen.
mfg
Anzeige
AW: Einen hab' ich noch...
10.04.2017 17:14:38
Urs
Hab ich..... bringt aber nicht mehr als der vorherige Code.
Enum xCol
ID = 1
iFile = 2
Tit = 2
Tab1 = 5
Tab2 = 25
Tab3 = 33
Tab4 = 38
Tab5 = 45
Tab6 = 64
Tab7 = 69
Tab8 = 76
End Enum
Enum wdCol
T1 = 19
T2 = 8
T3 = 5
T4 = 7
T5 = 19
T6 = 5
T7 = 7
T8 = 19
End Enum
Sub Fen()
Dim Wd As Object
Dim Doc As Object
Dim iPath As String, iFile As String
Dim xZ As Integer 'Zeile in xl
Set Wd = CreateObject("Word.Application")
iPath = ThisWorkbook.Path & "\"
xZ = 1
iFile = Dir(iPath & "*.docx")
Do While Len(iFile)
xZ = xZ + 1
Cells(xZ, xCol.ID) = xZ - 1
Cells(xZ, xCol.iFile) = iFile
Set Doc = Wd.Documents.Open(iPath & iFile, , 1)
Wd.Visible = True
If Cells(xZ, xCol.Tit + 1) = "" Then
With Doc.Content.Paragraphs
For iP = 1 To .Count
If .Item(iP).Style = "Überschrift 1" Then ' "Formatvorlage1" Then ' Unterpunkte
T = T + 1
Cells(xZ, xCol.Tit + T) = .Item(iP).Range.text
End If
Next iP
End With
End If
Doc.Close 0
iFile = Dir
Loop
Fin:
Set Wd = Nothing
End Sub

AW: xl und wd in einem Ordner? owT
10.04.2017 17:21:54
Fennek
AW: xl und wd in einem Ordner? owT
10.04.2017 17:37:24
Urs
Ja im selben Ordner, bringt in unserem Beispiel den folgenden Text:
1 Test.docx "Produktgruppe: 505 Jugend- u. Familienbetreuung" "Produkt, Kostenstelle / -träger: 951000 Schulsozialarbeit" "Produkt, Kostenstelle / -träger: 951005 Jugend- u. Familienbetreuung Anteil Emmen"
AW: passt doch?
10.04.2017 17:48:55
Fennek
Hallo,
in Zeile 2, Spalte 1-4, hatte ich das auch. Dies entspricht deiner xl, sofern man noch ein "split (:)" macht und dann 505...;951... und 951... erhält.
mfg
AW: passt doch?
11.04.2017 08:39:56
Urs
Hallo Fennek
Immer noch fest am überlegen? Müsstest ja schon lange nicht mehr dran sein, aber trotzdem vielen Dank für deine Hilfe. Dein Code ist ja nur ein Teil, aber ein wichtiger. Was ich im Moment mache, ist der Wd-Code von Michael einlesen in das Excel, danach wird im Excel der eingelesene WD-Code weiterverarbeitet und mit deinem Code das Ganze zusammengeführt. Der Wd-Code brauche ich um die Tabellen einzulesen, dein Code um den Gruppentitel zuzuordnen und dann irgendeinmal würde dann alles richtig zugeordnet sein. Ich hätte auch lieber einen Code, der mir alles auf einmal erledigt.....aber eben. Wenn's nicht geht blase ich das Ganze ab......
Und du schickst mir dann ebenfalls...
11.04.2017 08:32:39
EtoPHG
eine Gutschein, Fennek?
Für das Lernen!
Was ist das für eine Heuschrecken-Einstellung in einem Hilfeforum?
Lass es doch lieber, wenn es dir nur ums Geld geht.
Ich würde jedenfalls höchsten 50Cents ausgeben, für Code, den ich bis jetzt von dir gesehen habe!
Gruess Hansueli
AW: Und du schickst mir dann ebenfalls...
11.04.2017 08:53:21
Urs
Hallo Hansueli
Habe inzwischen deine Meldung auch bekommen. Hast du denn evtl. auch eine Lösung? Also um es noch einmal zusammenzufassen: Ab Word werden in den ungeschützten Felder Einträge von den Usern eingegeben, die man in einem Einzeiler untereinander sichten möchte. Das Problem ist eben, dass die Textfelder unterschiedlich lang sind und es unterschiedliche Anzahl Tabellen gibt, die Tabellen dafür immer gleich gross sind. Ein Beispiel wie es aussehen müsste habe ich ja im Forum bereitgestellt.
Danke und Gruss
Urs
AW: Letzter Aufruf
12.04.2017 09:32:03
Urs
Hallo
Hat jetzt jemand noch einen Vorschlag oder eine zündende Idee?
Gruss
Urs
AW: Letzter Aufruf
12.04.2017 10:21:02
Fennek
Hallo Urs,
das Auslesen der Wd-Dateinen ist in meinem (auch von Michael) gezeigt, wie du dies in xl arrangieren möchtest, ist entweder zu kompliziert für ein Forum oder einfach zuviel Aufwand. Deswegen nutze die Möglichkeit und bringe die Daten nach xl, falls du nicht selbst die gewünschte Struktur hinbekommst, gibt es immer noch Dientsleister.
mfg
AW: Letzter Aufruf
12.04.2017 10:40:08
Urs
Hallo Fennek
Besten Dank für die Hilfe und die Info. In dem Fall beende ich nun definitiv diesen Thread.
Gruss
Urs

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige