Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1076to1080
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

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

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

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
Anzeige
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
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

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

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige