Thema Datum  Von Nutzer Rating
Antwort
21.01.2016 17:45:06 Harun Deniz
NotSolved
21.01.2016 19:24:44 Gast16694
NotSolved
21.01.2016 19:32:56 Harun Deniz
NotSolved
21.01.2016 19:43:53 Gast12213
NotSolved
21.01.2016 21:47:55 Gast27527
NotSolved
Blau Word Tabellen in Excel kopieren
23.01.2016 09:59:30 Harun Deniz
Solved
23.01.2016 10:16:32 Gast28215
NotSolved
24.01.2016 11:30:26 Harun Deniz
NotSolved

Ansicht des Beitrags:
Von:
Harun Deniz
Datum:
23.01.2016 09:59:30
Views:
810
Rating: Antwort:
 Nein
Thema:
Word Tabellen in Excel kopieren
Hallo gast, du hast mir wirklich sehr geholfen. Vielen Dank :) Ich habe deinen Code etwas für meine Bedürfnisse angepasst, womit ich eine Hilfstabelle mit Tabellenindex, Kapitel und Kapitelnummer anlege. [code] Sub kapitel() Dim kapitel() Dim tabkap() Dim anzahl Dim i As Long Dim j As Long '------------------------------------------------- Dim wordDokument As Object Dim wordDateiName As Variant Dim tabellennummer As Integer 'Tabellennummer in Word Dim iZeile_Excel As Long 'Zeilenindex in Excel Dim iSpalte_Excel As Integer 'Spaltenindex in Excel Dim iZeile_Excel_gesamt As Long Dim Starttabelle As Integer Dim Anzahl_Tabellen As Integer Dim aktueller_Pfad As String Dim k As Integer Dim strKapitelNr As String Dim compare_number As Integer Dim string_len As Integer Dim Test As String Dim Test2 As String '--------------------------------------------------- Worksheets("EPR_Word").Activate aktueller_Pfad = ActiveWorkbook.Path strDatei = Dir(aktueller_Pfad & "\" & "*.doc") 'wordDateiName = Application.GetOpenFilename("Word files (*.doc),*.doc", , _ '"EPR_Word Datei auswählen: ") wordDateiName = aktueller_Pfad & "\" & strDatei If TypeName(wordDateiName) Like "Boolean" Then MsgBox "Keine Datei gefunden!", vbInformation Exit Sub End If Set wordDokument = GetObject(wordDateiName) 'Worddatei öffnen anzahl = wordDokument.Tables.Count ReDim kapitel(1, 0) kapitel(0, 0) = 0 For Each kap In wordDokument.Paragraphs If kap.OutlineLevel < 10 And kap.Range.Text <> Chr(13) Then kapitel(0, 0) = kapitel(0, 0) + 1 ReDim Preserve kapitel(1, kapitel(0, 0)) kapitel(0, kapitel(0, 0)) = kap.Range.Text kapitel(1, kapitel(0, 0)) = kap.Range.Start End If Next kap If anzahl > 0 Then ReDim tabkap(anzahl) For i = 1 To anzahl For j = 1 To UBound(kapitel, 2) If wordDokument.Tables(i).Range.Start < kapitel(1, 1) Then tabkap(i) = "ohne Kapitel" Else If wordDokument.Tables(i).Range.Start > kapitel(1, j) Then tabkap(i) = kapitel(0, j) End If End If Next j If tabkap(i) = "ohne Kapitel" Then Else Test = tabkap(i) string_len = Len(Test) Test = Left(Test, string_len - 1) Sheets("Hilfstabelle ").Cells(i, 1) = i Sheets("Hilfstabelle ").Cells(i, 2) = Test For k = 1 To wordDokument.ListParagraphs.Count With wordDokument.ListParagraphs(k) Test2 = .Range string_len = Len(Test2) Test2 = Left(Test2, string_len - 1) compare_number = StrComp(Test2, Test) If compare_number = 0 Then strKapitelNr = .Range.ListFormat.ListString & " " Sheets("Hilfstabelle ").Cells(i, 3) = strKapitelNr 'Debug.Print strKapitelNr End If End With Next k End If Next i End If End Sub [/code] Anschließend importiere ich alle Word-Tabellen in Excel und kenne auch dank Hilfstabelle die zugehörigen Kapitelnummer. [code] Option Explicit Sub WordTabellenEinlesen() Dim wordDokument As Object Dim wordDateiName As Variant Dim tabellennummer As Integer 'Tabellennummer in Word Dim iZeile_Excel As Long 'Zeilenindex in Excel Dim iSpalte_Excel As Integer 'Spaltenindex in Excel Dim iZeile_Excel_gesamt As Long Dim Starttabelle As Integer Dim Anzahl_Tabellen As Integer Dim aktueller_Pfad As String Dim Test As String Dim strDatei As String On Error Resume Next Excel.Application.ScreenUpdating = False Clean_EPR_Word.Clean_EPR_Word 'vorheriges Löschen der gesamten Sheet Worksheets("EPR_Word").Activate aktueller_Pfad = ActiveWorkbook.Path strDatei = Dir(aktueller_Pfad & "\" & "*.doc") 'wordDateiName = Application.GetOpenFilename("Word files (*.doc),*.doc", , _ '"EPR_Word Datei auswählen: ") wordDateiName = aktueller_Pfad & "\" & strDatei If TypeName(wordDateiName) Like "Boolean" Then MsgBox "Keine Datei gefunden!", vbInformation Exit Sub End If Set wordDokument = GetObject(wordDateiName) 'Worddatei öffnen With wordDokument tabellennummer = wordDokument.Tables.Count Anzahl_Tabellen = wordDokument.Tables.Count iZeile_Excel_gesamt = 0 For Starttabelle = 1 To Anzahl_Tabellen With .Tables(Starttabelle) Test = Left(Sheets("Hilfstabelle ").Cells(Starttabelle, 3), 1) If Left(Sheets("Hilfstabelle ").Cells(Starttabelle, 3), 1) = "5" Then ActiveDocument.Range.GoTo What:=wdGoToHeading For iZeile_Excel = 1 To .Rows.Count For iSpalte_Excel = 1 To .Columns.Count Cells(iZeile_Excel_gesamt, iSpalte_Excel + 1) = WorksheetFunction.Clean(.Cell(iZeile_Excel, iSpalte_Excel).Range.Text) Test = WorksheetFunction.Clean(.Cell(iZeile_Excel, iSpalte_Excel).Range.Text) Next iSpalte_Excel iZeile_Excel_gesamt = iZeile_Excel_gesamt + 1 Next iZeile_Excel End If End With iZeile_Excel_gesamt = iZeile_Excel_gesamt + 1 Next Starttabelle End With Sheets("Vergleich").Select Excel.Application.ScreenUpdating = True MsgBox "... eingelesen!", , "Fertig" End Sub [/code] Nochmal, vielen Dank und ein schönes Wochenende :)

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
21.01.2016 17:45:06 Harun Deniz
NotSolved
21.01.2016 19:24:44 Gast16694
NotSolved
21.01.2016 19:32:56 Harun Deniz
NotSolved
21.01.2016 19:43:53 Gast12213
NotSolved
21.01.2016 21:47:55 Gast27527
NotSolved
Blau Word Tabellen in Excel kopieren
23.01.2016 09:59:30 Harun Deniz
Solved
23.01.2016 10:16:32 Gast28215
NotSolved
24.01.2016 11:30:26 Harun Deniz
NotSolved