Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ergebniszeile & VBA

Forumthread: Ergebniszeile & VBA

Ergebniszeile & VBA
09.12.2020 14:31:43
A-Ron
Hallo an alle :)
Ich habe ein kleines Problem und möchte euch fragen, ob ihr mir damit helfen könnt.
Mit meinem VBA Code fülle ich über eine ListBox in einer UF eine intelligente Tabelle (List.Object mit X Zeilen und 3 Spalten). Dabei variieren die Daten ständig, sodass die Anzahl der Zeilen nicht konstant ist. Bis dahin kein Problem. Nun möchte ich aber eine Ergebniszeile mit einbauen, um die Summe der 3. Spalte meiner Tabelle herauszufinden. Dabei tritt folgendes Problem auf: Wenn ich mehr Zeilen als zuvor habe, wird die letzte Zeile abgeschnitten, Wenn ich aber weniger habe, gibt es nach der eigentlichen Tabelle eine Zeile zu viel.
Kann mir jemand eine Lösung oder alternative Herangehensweise zeigen?
'Bestätigen und Beenden
Private Sub cmdBB_Click()
Dim lngLastRow As Long
Dim objLO As ListObject
Range("E3:G50").ClearContents
Set objLO = ActiveWorkbook.Worksheets("Neue Vorlage").ListObjects("Tabelle7")
With objLO
.Resize .Range.Resize(Me.ListBox7.ListCount + 1, Me.ListBox7.ColumnCount)
.DataBodyRange.Value = Me.ListBox7.List
.ListColumns("Mengenanteil").TotalsCalculation = xlTotalsCalculationSum
End With
'*****************Dies dient der Schönheit*************************
lngLastRow = ThisWorkbook.Worksheets("Neue Vorlage").Range("E" & Rows.Count).End(xlUp).Row + 1
With Range("E" & lngLastRow & ":G50")
With .Interior
.ColorIndex = 15
.Pattern = xlSolid
End With
End With
Unload Me
frmAnteil.Show 'Nächste Userform aufrufen
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Ergebniszeile & VBA
09.12.2020 14:38:38
A-Ron
Kleines Update. Die Zeile die zu viel war, lag an meiner Schönheitsformatierung und ist behoben. Das Problem ist also konkret, dass wenn eine oder mehr Zeilen hinzukommen, die letzte Zeile abgeschnitten wird. Wenn ich weniger Zeilen als zuvor habe, dann passt die Tabelle und ist, wie sie sein sollte.
Anzeige
AW: Ergebniszeile & VBA
09.12.2020 15:12:11
onur
Ja, auf "intelligente" Tabellen verzichten.
;
Anzeige

Infobox / Tutorial

Ergebniszeile in Excel mit VBA erstellen


Schritt-für-Schritt-Anleitung

Um eine Ergebniszeile in Excel mithilfe von VBA zu erstellen, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11 und füge ein neues Modul hinzu.

  2. Füge den folgenden Code ein, um deine Tabelle zu bearbeiten und die Ergebniszeile hinzuzufügen:

    Private Sub cmdBB_Click()
       Dim lngLastRow As Long
       Dim objLO As ListObject
       Range("E3:G50").ClearContents
       Set objLO = ActiveWorkbook.Worksheets("Neue Vorlage").ListObjects("Tabelle7")
       With objLO
           .Resize .Range.Resize(Me.ListBox7.ListCount + 1, Me.ListBox7.ColumnCount)
           .DataBodyRange.Value = Me.ListBox7.List
           .ListColumns("Mengenanteil").TotalsCalculation = xlTotalsCalculationSum
       End With
       lngLastRow = ThisWorkbook.Worksheets("Neue Vorlage").Range("E" & Rows.Count).End(xlUp).Row + 1
       With Range("E" & lngLastRow & ":G50")
           With .Interior
               .ColorIndex = 15
               .Pattern = xlSolid
           End With
       End With
       Unload Me
       frmAnteil.Show
    End Sub
  3. Ersetze die Range und ListBox nach Bedarf, um sie an deine Daten anzupassen.

  4. Teste den Code, um sicherzustellen, dass die Ergebniszeile korrekt erscheint und die Summen in der Excel-Tabelle angezeigt werden.


Häufige Fehler und Lösungen

  • Letzte Zeile wird abgeschnitten: Achte darauf, dass die Größe der Tabelle korrekt angepasst wird. Überprüfe die ListBox-Anzahl und stelle sicher, dass die .Resize-Methode richtig konfiguriert ist.

  • Zusätzliche Zeile nach der Tabelle: Dies kann durch eine falsche Berechnung der letzten Zeile passieren. Achte darauf, dass lngLastRow korrekt gesetzt wird.

  • Tabellenreferenzen: Stelle sicher, dass die Tabelle in deinem Arbeitsblatt den gleichen Namen hat wie im Code.


Alternative Methoden

Wenn du keine intelligente Tabelle verwenden möchtest, kannst du auch die Standard-Excel-Funktionen nutzen:

  1. Direkt in der Excel-Tabelle: Verwende die Funktion =SUMME(G:G) in der letzten Zeile deiner Tabelle.
  2. Pivot-Tabellen: Für eine dynamische Berechnung der Summen kannst du auch Pivot-Tabellen in Betracht ziehen.

Praktische Beispiele

Angenommen, du hast eine Excel-Tabelle mit Verkäufen:

Produkt Menge Preis
A 10 5
B 5 10

Für die Summe der Menge in der Ergebniszeile:

  1. Füge in der letzten Zeile die Formel =SUMME(B2:B3) hinzu, um die Gesamtmenge zu berechnen.
  2. In deinem VBA-Code kannst du die letzte Zeile ebenfalls anpassen, um die Ergebniszeile oben anzuzeigen.

Tipps für Profis

  • Sichtbarkeit der Ergebniszeile: Du kannst die Ergebniszeile immer oben anzeigen, indem du sie in eine separate Zeile über der Tabelle verschiebst.
  • Verwendung von Application.WorksheetFunction: Damit kannst du auch komplexere Berechnungen direkt im VBA durchführen.
  • Dynamische Anpassungen: Achte darauf, dass die Tabelle sich automatisch anpasst, wenn neue Daten hinzugefügt werden.

FAQ: Häufige Fragen

1. Wie kann ich die Ergebniszeile immer sichtbar machen?
Du kannst die Ergebniszeile in eine separate Zeile über der Tabelle verschieben und die Zeilen fixieren.

2. Was passiert, wenn ich die Daten in der ListBox ändere?
Die Ergebniszeile wird sich automatisch anpassen, solange der VBA-Code korrekt implementiert ist.

3. Welche Excel-Version benötige ich für diese Funktionen?
Die beschriebenen Methoden sind in Excel 2010 und höher verfügbar, insbesondere wenn du VBA verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige