Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1468to1472
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

VBA Excel Tabelle

VBA Excel Tabelle
15.01.2016 20:26:01
Stephan
Hallo zusammen,
ich habe folgendes Problem:
ich möchte gerne per VBA eine Spalte einer als Tabelle formatierten Tabelle löschen. Die Herausforderung hierbei ist, das die Spalte nur gelöscht werden soll wenn das Ergebnis der Spalte 0 (Null) ist .
Per Makrorecorder konnte ich zwar eine Spalte löschen, allerdings habe ich keine Ahnung wie ich das variabel gestalten kann. D.h. ich möchte alle Ergebnisse der einzelnen Spalten der Tabelle prüfen und die mit dem Ergebnis 0 dann löschen.
Hat jemand eine Ahnung wie das geht ?
Gruß
Stephan

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Excel Tabelle
15.01.2016 20:36:34
Sepp
Hallo Stephan,
so?
Sub SpaltenLoeschen()
Dim objColumn As Object

With Sheets("Tabelle1").ListObjects(1) 'Tabellenname anpassen!
  For Each objColumn In .ListColumns
    If Application.Sum(objColumn.Range) = 0 Then
      objColumn.Delete
    End If
  Next
End With

End Sub

Gruß Sepp

Anzeige
AW: VBA Excel Tabelle
15.01.2016 20:50:23
Stephan
Hallo Sepp,
ja, das sieht gut aus und könnte funktionieren, allerdings bekomme ich eine Laufzeitfehler 9 in der With Spalte, obwohl ich das Tabellenblatt angepasst habe.
Gruß
Stephan

AW: VBA Excel Tabelle
15.01.2016 20:54:38
Sepp
Hallo Stephan,
kann ich nicht nachvollziehen, bei mir läufts!
Gruß Sepp

AW: VBA Excel Tabelle
15.01.2016 21:05:50
Stephan
Hallo Sepp,
hab das Problem mit de Laufzeitfehler gefunden, lag daran das ich das Tabellenblatt nicht ausgewählt hatte, sondern per F8 das Makro gestartet habe.
Die Spalten mit der Ergebnis 0 werden jetzt alle gelöscht, so wie ich es mir vorgestellt hatte, allerdings auch die erste Spalte in der meine Namen drin stehen . Hatte vl. vergessen zu erwähnen das ich ein Diagramm mit den Daten erstellen möchte . Sorry.
Gruß
Stephan

Anzeige
AW: VBA Excel Tabelle
15.01.2016 21:13:06
Sepp
Hallo Stephan,
dann so.
Sub SpaltenLoeschen()
Dim objColumn As Object

With Sheets("Tabelle1").ListObjects(1).DataBodyRange 'Tabellenname anpassen!
  For Each objColumn In .Columns
    If Application.Count(objColumn) > 0 Then
      If Application.Sum(objColumn) = 0 Then
        objColumn.Delete
      End If
    End If
  Next
End With

End Sub

Gruß Sepp

Anzeige
AW: VBA Excel Tabelle
15.01.2016 21:22:57
Stephan
Hi Sepp,
bei Variante 2 läuft er in eine Schleife.
Gruß
Stephan

AW: VBA Excel Tabelle
15.01.2016 21:19:36
Stephan
Hi Sepp,
bei mir wird die erste Spalte immer gelöscht, außer wenn ich einen Wert als Ergebnis in die erste Zeile rein schreib, bzw. Auf Anzahl einstelle.
Gruß
Stephan

AW: VBA Excel Tabelle
15.01.2016 21:24:26
Sepp
Hallo Stephan,
wie sieht den Deine Tabelle aus? Im Raten bin ich schlecht und meine Glaskugel ist beschlagen.
Gruß Sepp

AW: VBA Excel Tabelle
15.01.2016 21:56:11
Sepp
Hallo Stephan,
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Sub SpaltenLoeschen()
Dim objColumn As Object

With Me.ListObjects(1)
  .ShowTotals = True
  For Each objColumn In .ListColumns
    objColumn.TotalsCalculation = xlTotalsCalculationNone
  Next
  For Each objColumn In .ListColumns
    If Application.CountA(objColumn.Range) < objColumn.Range.Count - 1 Then
      objColumn.TotalsCalculation = xlTotalsCalculationSum
    End If
  Next
  For Each objColumn In .ListColumns
    If objColumn.Total.HasFormula Then
      If objColumn.Total.Value2 = 0 Then
        objColumn.Delete
      End If
    End If
  Next
  .ShowTotals = False
End With

End Sub

Am sichersten wäre aber, wenn du die Ergebniszeile anzeigen würdest, dann könnte man dort einfach die 0-Werte ermitteln.
Gruß Sepp

Anzeige
AW: VBA Excel Tabelle
15.01.2016 22:08:31
Stephan
Hi Sepp,
DAS IST ES !!!! Vielen Dank.
Die Ergebniszeile könnte ich anzeigen lassen, das wäre kein Problem.
Gruß
Stephan

AW: VBA Excel Tabelle
15.01.2016 22:10:50
Sepp
Hallo Stephan,
wenn du die Ergebniszeile anzeigen lässt und bei allen Spalten die Zahlenwerte enthalten die Summe anzeigen lässt, dann genügt das.
Sub SpaltenLoeschen()
Dim objColumn As Object

With Me.ListObjects(1) 'Tabellenname anpassen!
  For Each objColumn In .ListColumns
    If objColumn.Total.HasFormula Then
      If objColumn.Total.Value2 = 0 Then
        objColumn.Delete
      End If
    End If
  Next
End With

End Sub

Gruß Sepp

Anzeige
AW: VBA Excel Tabelle
15.01.2016 22:17:48
Stephan
Hi Sepp,
ich glaube ich bleib doch bei der ersten Variante, sollte ich mal vergessen die Summe anzeigen zu lassen geht's vl. dann in die Hose ;-)
Danke nochmal.
Gruß
Stephan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige