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 Bestimmte Spalten belassen, andere löschen

VBA Bestimmte Spalten belassen, andere löschen
14.01.2016 21:29:13
WalterK
Schönen Abend,
der nachfolgende Code aus dem Internet löscht alle Spalten außer die im Array angeführten:
Kann mir jemand den Code so abändern, dass die Spaltennamen nicht im Code namentlich angeführt werden müssen sondern aus Tabelle2!A1:Ax genommen werden.
Option Explicit
Sub SpaltenBelassenLöschen()
Dim rng As Range, rngDel As Range
Dim vntColumnsToKeep As Variant
'Überschriften die NICHT gelöscht werden 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 rngDel.Delete
Set rng = Nothing
Set rngDel = Nothing
End Sub
Besten Dank für die Hilfe, Servus Walter

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Hat sich erledigt! Schönen Abend, Servus, Walter
14.01.2016 21:56:50
WalterK

AW: VBA Bestimmte Spalten belassen, andere löschen
14.01.2016 21:57:02
Sepp
Hallo Walter,
Sub SpaltenBelassenLöschen()
Dim rng As Range, rngDel As Range
Dim vntColumnsToKeep As Variant

With Sheets("Tabelle2")
  vntColumnsToKeep = .Range("A1:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
End With

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 rngDel.Delete

Set rng = Nothing
Set rngDel = Nothing
End Sub

Gruß Sepp

Anzeige
AW: VBA Bestimmte Spalten belassen, andere löschen
14.01.2016 21:58:50
Daniel
HI
einfach bei der Match-Funktion den Zellbereich der durchsucht werden soll direkt angeben:
Match(rng, sheets("Tabelle2").Columns(1), 0)
Gruss Daniel

Besten Dank fürs Helfen. Habe ..
14.01.2016 22:01:21
WalterK
.. es doch noch selbst hinbekommen.
Servus, Walter

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige