Microsoft Excel

Herbers Excel/VBA-Archiv

Nicht benötigte Spalten löschen | Herbers Excel-Forum


Betrifft: Nicht benötigte Spalten löschen von: Martin
Geschrieben am: 11.12.2009 15:11:12

Hallo miteinander
Ich habe eine Excel-Tabelle mit etwa 80 Spalten. In Zeile 1 ist jeweils der Titel der Spalte, z.B. Name, Vorname, Strasse, Ort, Nummer etc.
Für gewisse Auswertungen braucht's jedoch nur einen kleinen Teil der vielen Spalten, alle anderen können gelöscht werden.

Ich suche ein schnell laufendes Makro, dass mir alle nicht benötigten Spalten löscht.

Besten Dank im voraus.

  

Betrifft: AW: Nicht benötigte Spalten löschen von: Josef Ehrensberger
Geschrieben am: 11.12.2009 15:24:34

Hallo Martin,

und wie sollen die zu löschenden Spalten erkannt werden?


Gruß Sepp



  

Betrifft: AW: Nicht benötigte Spalten löschen von: Martin
Geschrieben am: 11.12.2009 16:03:57

Hallo Sepp
Danke für die Frage:
In Zeile 1 sind ja die Titel der Spalten, z.B. "Name", "Vorname", "Strasse", "Ort", "Nummer", "Beginn", "Ende" und viele mehr.
Für eine Auswertung benötige ich z.B. die Spalten mit Titel "Name", "Vorname", "Ort", alle anderen sollten gelöscht werden. Das Makro soll also die Zeile 1 durchgehen und die nicht benötigten Spalten löschen.

Besten Dank


  

Betrifft: AW: Nicht benötigte Spalten löschen von: Josef Ehrensberger
Geschrieben am: 11.12.2009 16:26:20

Hallo Martin,

' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub deleteColumns()
  Dim rng As Range, rngDel As Range
  Dim vntColumnsToKeep As Variant
  
  'Überschriften die NICHT gelöscht werdn sollen!
  vntColumnsToKeep = Array("Name", "Vorname", "Strasse", "Ort")
  
  For Each rng In ActiveSheet.UsedRange.Rows(1).Cells
    If IsError(Application.Match(rng, vntColumnsToKeep, 0)) Then
      If rngDel Is Nothing Then
        Set rngDel = rng.EntireColumn
      Else
        Set rngDel = Union(rngDel, rng.EntireColumn)
      End If
    End If
  Next
  
  If Not rngDel Is Nothing Then rngDeldelete
  
  Set rng = Nothing
  Set rngDel = Nothing
End Sub



Gruß Sepp



  

Betrifft: AW: Nicht benötigte Spalten löschen von: Martin
Geschrieben am: 11.12.2009 16:34:55

Super! Besten Dank, Sepp, das ist eine grosse Hilfe. Ich hab's mit einer IF-Schlaufe versucht und bin da irgendwie stecken geblieben. Auf Deine Lösung wäre ich wohl nie im Leben gekommen.....


Beiträge aus den Excel-Beispielen zum Thema "Nicht benötigte Spalten löschen"