Zelle verschieben wenn die Zahl = 12 Stellen ist

16/03/2008 - 12:54 von Hans-Theo | Report spam
Hallo zusammen,

ich arbeite mit Excel 2003, "brüte" an einer Formelumsetzung in VBA
und bekomme es einfach nicht "gebacken".

Die Formel lautet F1:=WENN(LÄNGE(E1);E1;""),d.h. wenn in der Zelle
E1 eine Zahl 12-stellig ist soll sie in die Zelle F1 geschrieben
werden.

Anschließend sortiere ich die Tabelle, setze die Spalte F auf Wert und
lösche in der Spalte E die Zellen, die ich mittels der Formel in die
Spalte F kopiert habe.

So weit, so gut. Das Problem hierbei ist, das die Tabelle zur Zeit ca.
22.000 Zeilen beinhaltet und noch anwachsen kann.

Diese Newsgroup habe ich durchsucht und dabei einige Ansàtze entdeckt,
die aber mit meinem Wissensstand (VBA) nicht wirklich umzusetzen
waren.

Ich hoffe, ich habe mein Problem erklàren können und bitte um Eure
Unterstützung.


Mit freundlichen Grüßen
Hans-Theo Jung
 

Lesen sie die antworten

#1 Dietmar Vollmeier
16/03/2008 - 14:14 | Warnen spam
Servus Hans-Theo!

*Hans-Theo* schrieb am 16.03.2008 um 12:54 Uhr...
ich arbeite mit Excel 2003, "brüte" an einer Formelumsetzung in VBA
und bekomme es einfach nicht "gebacken".

Die Formel lautet F1:=WENN(LÄNGE(E1);E1;""),d.h. wenn in der Zelle
E1 eine Zahl 12-stellig ist soll sie in die Zelle F1 geschrieben
werden.

Anschließend sortiere ich die Tabelle, setze die Spalte F auf Wert und
lösche in der Spalte E die Zellen, die ich mittels der Formel in die
Spalte F kopiert habe.

Ich hoffe, ich habe mein Problem erklàren können



Ich denke mal, ich habs verstanden ;-)

Erstelle im VBA-Editor (Alt+F11) in deiner Arbeitsmappe ein neues Modul
[1]. Anschließend füge in dem erstellten Modul folgenden Code ein:

-8<--
Sub PruefeZahlenLaenge()
Const Spalte_E = 5
Const Spalte_F = 6

Dim LZeile As Long
Dim Zeile As Long

LZeile = Cells(Rows.Count, Spalte_E).End(xlUp).Row
Application.ScreenUpdating = False

For Zeile = 1 To LZeile
If Len(Cells(Zeile, Spalte_E).Value) = 12 Then
Cells(Zeile, Spalte_F).Value = Cells(Zeile, Spalte_E).Value
Cells(Zeile, Spalte_E).Value = ""
End If
Next

Application.ScreenUpdating = True
End Sub
-8<--

Führe anschließend das Makro (Alt+F8) "PruefeZahlenLaenge" aus.

HTH

und tschüss,
Didi

Fußnötiges:
=[1] Rechtsklick -> Einfügen -> Modul
Pünktlichkeit ist die Kunst, richtig abzuschàtzen, um wie viel sich der
andere verspàten wird.

Ähnliche fragen