Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: vba intelligente tabelle sortieren; Namensproblem

vba intelligente tabelle sortieren; Namensproblem
20.02.2018 18:58:50
Thomas
Hey Leute,
ich arbeite gerade an einer Excel in der ich einige intelligente Tabellen mittels vba erstelle. diese sollen nach erstellung sortiert werden. die namen für die intelligente Tabelle würde ich gerne aus einer Tabelle ziehen (fortlaufend)
das einfügen der tabelle ist kein problem aber das anschließende sortieren klappt nicht. ich denke da ich einen string für den namen vergeben habe, ist die schreibweise des codes falsch
"LO.Sort.SortFields.Add _
Range("strtabN[[#All], [Jahr]]"), _"
Sub TabelleDefinieren()
Dim LO As ListObject
Dim lngZeileMax As Long
Dim strtabN as String
strtabN = Worksheets("tabelle1").range("a1").value
With Worksheets("tabelle2")
lngZeileMax = .Cells(.Rows.Count, 4).End(xlUp).Row
Set LO = .ListObjects.Add(SourceType:=xlSrcRange, _
Source:=Range("A1:AQ" & lngZeileMax), xlListObjecthasheaders:=xlYes)
LO.Name = strtabN
Set LO = Worksheets("tabelle2").ListObjects(strtabN)
LO.Sort.SortFields.Clear
Set LO = Worksheets("tabelle2").ListObjects(strtabN)
LO.Sort.SortFields.Clear
LO.Sort.SortFields.Add _
Range(strtabN"[[#All], [Jahr]]"), _' hier liegt der Fehler begraben, da die "" 'falsch  _
gesetzt wurden, ich weiß aber nicht wie?
SortOn:=xlSortOnValues, Order:=xlAscending
With LO.Sort
.Header = xlYes
.Orientation = xlTopToBottom
.Apply
End With
End with
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vba intelligente tabelle sortieren; Namensproblem
20.02.2018 20:19:48
Luschi
Hallo Thomas,
versuch es mal so: Range(strtabN & "[[#All], [Jahr]]")
Gruß von Luschi
aus klein-Paris
AW: vba intelligente tabelle sortieren; Namensproblem
20.02.2018 21:45:30
Thomas
Hallo Luschi,
oft schon an anderer Stelle verwendet und dennoch dort einfach übersehen, obwohl ich stunden probiert habe.
Genau das ist es gewesen, vielen vielen Dank.
Beste Grüße
Thomas
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Intelligente Tabellen in Excel mit VBA sortieren


Schritt-für-Schritt-Anleitung

Um eine intelligente Tabelle in Excel mit VBA zu sortieren, folge diesen Schritten:

  1. Definiere die Tabelle: Zuerst musst Du die intelligente Tabelle (ListObject) erstellen. Das kannst Du mit dem folgenden VBA-Code tun:

    Sub TabelleDefinieren()
       Dim LO As ListObject
       Dim lngZeileMax As Long
       Dim strtabN As String
       strtabN = Worksheets("tabelle1").Range("A1").Value
    
       With Worksheets("tabelle2")
           lngZeileMax = .Cells(.Rows.Count, 4).End(xlUp).Row
           Set LO = .ListObjects.Add(SourceType:=xlSrcRange, _
                                     Source:=Range("A1:AQ" & lngZeileMax), _
                                     xlListObjectHasHeaders:=xlYes)
           LO.Name = strtabN
           Set LO = Worksheets("tabelle2").ListObjects(strtabN)
    
           ' Sortiere die Tabelle
           LO.Sort.SortFields.Clear
           LO.Sort.SortFields.Add _
               Range(strtabN & "[[#All], [Jahr]]"), _
               SortOn:=xlSortOnValues, Order:=xlAscending
           With LO.Sort
               .Header = xlYes
               .Orientation = xlTopToBottom
               .Apply
           End With
       End With
    End Sub
  2. Sortiere die Tabelle: Achte darauf, dass Du bei der Sortierung den richtigen Bereich angibst. Verwende den von Luschi vorgeschlagenen Code Range(strtabN & "[[#All], [Jahr]]").

  3. Führe das Makro aus: Du kannst das Makro ausführen, um die Tabelle automatisch zu sortieren.


Häufige Fehler und Lösungen

  • Fehler beim Namen der Tabelle: Stelle sicher, dass der Name der intelligenten Tabelle (ListObject) korrekt ist und keine Leerzeichen oder ungültigen Zeichen enthält.

  • Falsche Range-Syntax: Wenn Du den Range nicht richtig angibst, wird ein Fehler auftreten. Achte darauf, die Syntax Range(strtabN & "[[#All], [Jahr]]") zu verwenden.

  • Sortierung funktioniert nicht: Überprüfe, ob die Spalte, die Du sortieren möchtest, auch tatsächlich Werte enthält.


Alternative Methoden

Falls Du keine VBA-Lösungen verwenden möchtest, kannst Du auch die integrierten Sortierfunktionen von Excel nutzen:

  1. Wähle die intelligente Tabelle aus.
  2. Klicke auf die Spaltenüberschrift der Spalte, nach der Du sortieren möchtest.
  3. Nutze die Sortieroptionen im Menüband (Daten > Sortieren).

Praktische Beispiele

Hier ist ein Beispiel, wie Du eine intelligente Tabelle automatisch sortieren kannst:

Sub AutomatischeSortierung()
    ' Definiere und sortiere die Tabelle
    TabelleDefinieren
End Sub

Du kannst auch eine ähnliche Methode verwenden, um Daten in einer PowerPoint-Tabelle zu sortieren, indem Du die entsprechenden VBA-Befehle anpasst.


Tipps für Profis

  • Nutze Notepad++, um Deinen VBA-Code zu formatieren und leserlicher zu machen.
  • Experimentiere mit verschiedenen Sortieroptionen, wie z.B. Order:=xlDescending, um die Daten umgekehrt zu sortieren.
  • Dokumentiere Deinen Code ausführlich, um die Wartbarkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich die Sortierung bei jeder Änderung automatisch ausführen? Du kannst das Worksheet_Change-Ereignis verwenden, um die Sortierung automatisch auszuführen, wenn sich die Daten ändern.

2. Funktioniert das auch in Excel Online? Die VBA-Skripte funktionieren nicht in Excel Online. Du musst die Desktop-Version von Excel verwenden, um VBA nutzen zu können.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige