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

Forumthread: Spalten löschen bei Wert in 1 leer

Spalten löschen bei Wert in 1 leer
20.05.2009 08:55:29
Michael
Liebe Gemeinde,
wenn in Zeile 1 nicht der Wert x steht, wird die Spalte gelöscht.
Das funktioniert auch prima. Allerdings bedeutet das auch eine gewisse rechenzeit, da diese Aktion 255 mal ausgeführt wird.
so sieht es bisher aus:
....
range ("a1").select
For i = 1 To 255 Step 1
If ActiveCell.Value = "x" Then
ActiveCell.Offset(0, 1).Range("A1").Select
Else
Selection.EntireColumn.Delete
End If
Next i
...
meine frage:
geht das auch schneller?
Also erst alle entsprechenden Spalten markieren und dann diese löschen?
Vielen Dank schonmal.
Grüße
Michael
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten löschen bei Wert in 1 leer
20.05.2009 09:02:07
David
Hallo Michael.
versuch's mal so, das sollte klappen:

Option Explicit
Sub del()
Dim i
GetMoreSpeed True
For i = 255 To 1 Step -1
If Cells(1, i)  "x" Then
Columns(i).EntireColumn.delete
End If
Next
GetMoreSpeed False
End Sub
Sub GetMoreSpeed(bYesNo As Boolean)
Application.ScreenUpdating = Not (bYesNo)
Application.EnableEvents = Not (bYesNo)
Application.Calculation = IIf(bYesNo, xlCalculationManual, xlCalculationAutomatic)
If Not bYesNo Then Calculate
End Sub


Gruß
David

Anzeige
AW: Spalten löschen bei Wert in 1 leer
20.05.2009 13:41:59
Michael
hallo David,
danke für Deine Antwort. Also geschwindigleitsmässig ändert sich da nix.
Würde es evt. nicht schneller gehen, wenn erst alle entsprechenden Spalten markiert- und dann 'in einem Auswasch' erst gelöscht würden?
Grüße
Michael
AW: Spalten löschen bei Wert in 1 leer
20.05.2009 15:17:20
David
Was erwartest du denn?
Wenn ich das Makro bei mir laufen lasse, dauert das gefühlte 2 Sekunden?! Und mein PC ist NICHT der allerschnellste und läuft unter Win2000.
Gruß
David
Anzeige
AW: Spalten löschen bei Wert in 1 leer
20.05.2009 14:14:44
Rudi
Hallo,
mal so:

Sub tt()
Dim i As Long, rDel As Range
For i = 1 To 255
If Cells(i, 1)  "x" Then
If rDel Is Nothing Then
Set rDel = Cells(i, 1)
Else
Set rDel = Union(rDel, Cells(i, 1))
End If
End If
Next
If Not rDel Is Nothing Then rDel.EntireRow.Delete
End Sub


Gruß
Rudi

Anzeige
AW: Spalten löschen bei Wert in 1 leer
20.05.2009 14:32:42
Michael
...wie die Feuerwerhr...
Grüße
Michi
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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