Herbers Excel-Forum - das Archiv

Spalten löschen

Bild

Betrifft: Spalten löschen
von: Thorsten

Geschrieben am: 08.04.2005 15:16:53
Hi,
versuche mit untenstehender Prozedur in einem Sheet mit ca. 100 Spalten bestimmte Spalten zu löschen, und zwar diejenigen, bei denen in der ersten Zeile eines der Wörter steht, die in Spalte G im Sheet "Zeichen" aufgeführt sind. Hat bei kleineren Bsp auch funktioniert. Nun werden aber nur knapp die Hälfte der eigentlich zu löschenden Spalten entfernt. Erkennt jemand den Grund?
Sub Spalten_löschen()
Dim Bereich As Range
Set Bereich = Worksheets("Zeichen").Range("G1:G75")
For i = 1 To Range("IV1").End(xlToLeft).Column
If Bereich.Find(what:=Cells(1, i), lookat:=xlWhole) Is Nothing Then
Else
Columns(i).Delete
End If
Next i
End Sub

MfG, Thorsten
Bild

Betrifft: AW: Spalten löschen
von: Thorsten
Geschrieben am: 08.04.2005 15:19:36
Bemerke gerade, dass nur jede zweite Spalte aus der Liste gelöscht wurde. Jetzt verstehe ich gar nix mehr...
Bild

Betrifft: AW: Spalten löschen
von: Stephan
Geschrieben am: 08.04.2005 15:23:53
Hi Thorsten,
wenn du eine spalte löscht darfst du i nicht um eines weiterdrehen da die nächste spalte nach dem löschen dann in der spalte mit dem index i steht. du überspringst mit deinem code immer die nächste spalte wenn eine gelöscht wird. hoffe es hilft
Bild

Betrifft: AW: Spalten löschen
von: ransi

Geschrieben am: 08.04.2005 15:29:11
hallo
versuchs mal so:
(Ungestetest)
Sub Spalten_löschen()
Dim Bereich As Range
Set Bereich = Worksheets("Zeichen").Range("G1:G75")
For i = Range("IV1").End(xlToLeft).Column to 1 step-1
If Bereich.Find(what:=Cells(1, i), lookat:=xlWhole) Is Nothing Then
Else
Columns(i).Delete
End If
Next i
End Sub

dann sollte dein i nicht meht ins straucheln kommen.
deleten mit zähler mache immer von oben nach unten.
ransi
Bild

Betrifft: AW: Spalten löschen
von: ransi

Geschrieben am: 08.04.2005 15:29:22
hallo
versuchs mal so:
(Ungestetest)
Sub Spalten_löschen()
Dim Bereich As Range
Set Bereich = Worksheets("Zeichen").Range("G1:G75")
For i = Range("IV1").End(xlToLeft).Column to 1 step-1
If Bereich.Find(what:=Cells(1, i), lookat:=xlWhole) Is Nothing Then
Else
Columns(i).Delete
End If
Next i
End Sub

dann sollte dein i nicht meht ins straucheln kommen.
deleten mit zähler mache immer von oben nach unten.
ransi
Bild

Betrifft: AW: Spalten löschen
von: Thorsten
Geschrieben am: 08.04.2005 15:44:00
Klappt, danke.
Bild

Betrifft: AW: Spalten löschen
von: WernerB.

Geschrieben am: 08.04.2005 15:23:57
Hallo Thorsten,
klappt es so?
Sub Spalten_löschen()
Dim Bereich As Range
Set Bereich = Worksheets("Zeichen").Range("G1:G75")
For i = Range("IV1").End(xlToLeft).Column To 1 Step -1
If Bereich.Find(what:=Cells(1, i), lookat:=xlWhole) Is Nothing Then
Else
Columns(i).Delete
End If
Next i
End Sub

Gruß
WernerB.
Bild

Betrifft: AW: Spalten löschen
von: Thorsten
Geschrieben am: 08.04.2005 15:44:34
Klappt, danke.
 Bild
Excel-Beispiele zum Thema "Spalten löschen"
Vorkommen von Zahlenreihen in Spalten Funktion ANZAHL2 ohne ausgeblendete Spalten
Spaltenbreite anpassen Spalten einer Mehrbereichsauswahl ausblenden.
Spaltennamen bestimmen Spalten/Zeilen aus- und einblenden
Zeilen und Spalten über ein Drehfeld ein- und ausblenden In einem Dialog ausgewählte Spalten drucken
Spalten bedingt summieren und Zellen formatieren Abfrage der markierten Spalten