Forums Neueste Beiträge
 

Per VBA auf "Zahl" testen

01/07/2009 - 11:06 von Frank Vellner | Report spam
Liebe NG,

ich bekomme regelmàßig eine große Tabelle mit vielen Text- und
Zahlenfeldern. In Spalte B steht entweder eine Kombination aus Zahl
(immer mindestens 2 Stellen, immer am Anfang) und Text oder nur Text.

Beispiel: Es steht dort etwas in der Art
23132-Auto
45-Fahrrad
12343456-Bahn

oder eben:
Bahn
Fahrrad
Auto

Ich sortiere dann nach dieser Spalte und lösches alle Zeilen komplett,
die *nicht* mit zwei Zahlen beginnen.

Nun habe ich versucht, die Sache mit Formeln und Hilfsspalte zu
beschleunigen. Das bringt aber nicht wirklich etwas. Hat jemand eine
Idee, wie man per VBA sagt "sortiere die Spalte B und lösche alle
Zeilen, wo die Zelle B nicht mir 2 Zahlen beginnt"?

Viele Grüße
Frank
 

Lesen sie die antworten

#1 Claus Busch
01/07/2009 - 11:43 | Warnen spam
Hallo Frank,

Am Wed, 1 Jul 2009 11:06:07 +0200 schrieb Frank Vellner:

Beispiel: Es steht dort etwas in der Art
23132-Auto
45-Fahrrad
12343456-Bahn

oder eben:
Bahn
Fahrrad
Auto

Ich sortiere dann nach dieser Spalte und lösches alle Zeilen komplett,
die *nicht* mit zwei Zahlen beginnen.



probiere es mal mit folgendem Code (Bezüge noch anpassen, Code ist für
xl2007):
Sub Sortieren_Loeschen()

Dim LRow As Long
Dim i As Long

LRow = Cells(Rows.Count, 2).End(xlUp).Row

ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add _
Key:=Range("B2:B" & LRow), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal

With ActiveWorkbook.Worksheets("Tabelle1").Sort
.SetRange Range("A1:F" & LRow)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

For i = LRow To 2 Step -1
If Not IsNumeric(Left(Cells(i, 2), 2)) Then
Cells(i, 2).EntireRow.Delete
End If
Next

End Sub


Mit freundlichen Grüssen
Claus Busch
Win XP PRof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2

Ähnliche fragen