Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
"Inhaltsverzeichnis" für Tabellen
zurück: Autotexte nur aus der aktiven Vorlage weiter: Hinzufügen einer Zeile Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Gast



Verfasst am:
30. Jul 2009, 17:53
Rufname:

"Inhaltsverzeichnis" für Tabellen - "Inhaltsverzeichnis" für Tabellen

Nach oben
       Version: Office 2003

Hi!

Ich habe ein Dokument mit mehreren Tabellen, in denen eine Reihe von Daten stehen.
Als eine Art "Inhaltsverzeichnis" für diese Tabellen möchte ihr ihre erste Daten-Zeile verwenden.
Jede Tabelle hat zwei Header-Zeilen, die nicht herangezogen werden sollen.

Die Überblick-Tabelle ist genauso aufgebaut, wie die übrigen Tabellen.

Um die Überblick-Tabelle von den Datentabellen unterscheiden zu können, verwende ich eine Zelle mit einem "hidden"-Wert, den ich abfrage (o für die Übersicht und t für die Datentabellen)

Code:

Sub CreateOverview()

Dim doc As Document
Dim oTableID As Integer

Set doc = ActiveDocument
oTableID = 1

'find overview Table
For i = 1 To doc.Tables.Count
    If Left(doc.Tables(i).Cell(1, 7), 1) = "o" Then
        oTableID = i
    Exit For
    End If
Next i

'    lastrow = doc.Tables(oTableID).Rows.Count
'    Selection.TypeText CStr(lastrow)

For j = 1 To doc.Tables.Count
    'how many rows does the overview table have?
    lastrow = doc.Tables(oTableID).Rows.Count
    ' Check if it's a data-table
    If Left(LCase(doc.Tables(j).Cell(1, 7)), 1) = "t" Then
        'more data tables than rows in overview table?
        '-2 for the header rows in overview table
        If j > lastrow - 2 Then
            'insert row to overview table
            doc.Tables(oTableID).Cell(lastrow, 1).Select
            Selection.InsertRowsBelow 1
            'change lastrow variable to new last row
            lastrow = lastrow + 1
        Else
            'change lastrow to row that belongs to the data table
            'and add 2 rows for the header-row
            lastrow = j + 2
        End If
        For g = 1 To doc.Tables(i).Columns.Count
            'Copy cells individually
            doc.Tables(j).Cell(3, g).Select
            Selection.Copy
            doc.Tables(oTableID).Cell(lastrow, g).Select
            Selection.Paste
        Next g
    End If
Next j

   
End Sub


Der obige Code funktioniert um die Tabelle aufzubauen und auch zu aktualisieren. Allerdings setzt das Makro in der Übersichtstabelle immer eine Zeile zu tief an, d.h. die erste Zeile unterhalb des Tabellenheaders ist immer leer. Ansonsten funktioniert es so, wie es soll.

Sieht jemand, wo mein Fehler ist, ich find ihn nämlich nicht Embarassed

Danke im Voraus

Yvonne
Gast



Verfasst am:
30. Jul 2009, 17:55
Rufname:

AW: "Inhaltsverzeichnis" für Tabellen - AW: "Inhaltsverzeichnis" für Tabellen

Nach oben
       Version: Office 2003

Ach so, falls das noch wichtig ist:

Die Header-zeilen haben horizontale und vertikale verbundene Zellen. Mit Zeile 3 werden aus den Quell-Tabellen aber auch die richtigen Daten geholt.

Yvonne
Gast



Verfasst am:
31. Jul 2009, 17:34
Rufname:


AW: "Inhaltsverzeichnis" für Tabellen - AW: "Inhaltsverzeichnis" für Tabellen

Nach oben
       Version: Office 2003

Ich hab den Fehler gefunden.

Falls es der Vollständigkeit halber jemanden interessiert, die Schleife muss so aussehen:

Code:

For j = 1 To doc.Tables.Count
    'how many rows does the overview table have?
    lastrow = doc.Tables(oTableID).Rows.Count
    ' Check if it's a data-table
    If Left(LCase(doc.Tables(j).Cell(1, 7)), 1) = "t" Then
        datatablecount = datatablecount + 1
        'more data tables than rows in overview table?
        '-2 for the header rows in overview table
        If datatablecount > lastrow - 2 Then
            'insert row to overview table
            doc.Tables(oTableID).Cell(lastrow, 1).Select
            Selection.InsertRowsBelow 1
            'change lastrow variable to new last row
            lastrow = lastrow + 1
        Else
            'change lastrow to row that belongs to the data table
            'and add 2 rows for the header-row
            lastrow = datatablecount + 2
        End If
        For g = 1 To doc.Tables(i).Columns.Count
            'Copy cells individually
            doc.Tables(j).Cell(3, g).Select
            Selection.Copy
            doc.Tables(oTableID).Cell(lastrow, g).Select
            Selection.Paste
        Next g
    End If
Next j
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Word Serienbriefe: Tabellen im Word mit Serienbrieffunktion 1 m.moik 191 13. Sep 2013, 17:42
Gast Tabellen im Word mit Serienbrieffunktion
Keine neuen Beiträge Word Serienbriefe: Adressen aus Office tabellen dokument in dokument einfügen 1 Anna-L. 1218 15. Nov 2009, 21:42
charlybrown Adressen aus Office tabellen dokument in dokument einfügen
Keine neuen Beiträge Word Serienbriefe: Excelmappe mit mehreren Tabellen als Seriendruckquelle 2 SunDowner 602 24. März 2009, 08:54
SunDowner Excelmappe mit mehreren Tabellen als Seriendruckquelle
Keine neuen Beiträge Word Formate: Automatisches Inhaltsverzeichnis formatieren 0 PMüller 7608 25. März 2007, 14:27
PMüller Automatisches Inhaltsverzeichnis formatieren
Keine neuen Beiträge Word Formate: Hilfe, kann kein Inhaltsverzeichnis einfügen! 2 Mädchen aus Bonn 7226 01. Jan 2007, 16:20
Mädchen aus Bonn Hilfe, kann kein Inhaltsverzeichnis einfügen!
Keine neuen Beiträge Word Formate: Inhaltsverzeichnis anlegen in aus einer Wordeigenen Vorlage 2 Zion 34283 24. Nov 2006, 14:29
Gast Inhaltsverzeichnis anlegen in aus einer Wordeigenen Vorlage
Keine neuen Beiträge Word Formate: Unterstreichung im Inhaltsverzeichnis 3 Gast1 1031 17. Okt 2006, 10:21
Gast1 Unterstreichung im Inhaltsverzeichnis
Keine neuen Beiträge Word Formate: Inhaltsverzeichnis innerhalb eines Abschnitts 1 bufferix 909 09. Sep 2006, 18:34
bufferix Inhaltsverzeichnis innerhalb eines Abschnitts
Keine neuen Beiträge Word Formate: Word Formatvorlagen für Tabellen 2 buchnase 4139 03. Aug 2006, 12:06
buchnase Word Formatvorlagen für Tabellen
Keine neuen Beiträge Word Formate: Seitenzahlen im Inhaltsverzeichnis alle gleich groß machen 1 DerWalter 2561 17. Jul 2006, 17:06
DerWalter Seitenzahlen im Inhaltsverzeichnis alle gleich groß machen
Keine neuen Beiträge Word Formate: Abstand vor und nach Tabellen 10 designfanatiker 2561 28. Jun 2006, 20:39
designfanatiker Abstand vor und nach Tabellen
Keine neuen Beiträge Word Formate: Immer Grossbuchstaben im Inhaltsverzeichnis 2 PLO 2142 20. Feb 2006, 10:27
PLO Immer Grossbuchstaben im Inhaltsverzeichnis
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Excel-Formeln