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

Forumthread: Abfrage, ob Zahlen vorhanden, die wie Text auss.

Abfrage, ob Zahlen vorhanden, die wie Text auss.
Peter
Gutetn Tag
Mit nachstehendem Code wandle ich die Einträge im Range "psBetrag" um, falls diese nur wie Zahlen aussehen, es sich jedoch um Texte handelt.
Diesen Code rufe ich auf, wenn ich eine bestimmte Tabelle verlasse (Worksheet_Deactivate). Nun wäre es elegant, wenn ich zuerst abfragen könnte, ob es solche Einträge überhaupt gibt, da sonst diese Umwandlung jedesmal läuft, auch wenn dies nicht mehr notwendig wäre.
Gibt es überhaupt eine Möglichkeit, dies abzufragen, ohne dass die Zellen (können gut und gerne 20'000 sein) einzeln durchlaufen werden müssen?
Danke für jeden Hinweis und Grüsse, Peter
Sub ArrayUmwandeln()
ThisWorkbook.Activate
'Texte, die wie Zahlen aussehen z.B. 1.111,19 werden in normale Zahlen umgewandelt und
'anschliessend formatiert - NULL-Werte werden unterdrückt
'Beispielformel =WENN(ISTZAHL(A7);A7;1*WECHSELN(WECHSELN(A7;".";"");",";"."))
Dim myArray, lngI As Long
Dim AWS As Object
Set AWS = Application.WorksheetFunction
myArray = Range("psBETRAG")
For lngI = 1 To UBound(myArray)
If AWS.IsNumber(myArray(lngI, 1)) Then
' 'Zahl bleibt unverändert
Else
' 'entweder mit Funktion Replace
myArray(lngI, 1) = 1 * Replace(Replace(myArray(lngI, 1), ".", ""), ",", ".")
' 'oder mit WorksheetFunction.Substitute
' 'myArray(lngI, 1) = 1 * AWS.Substitute(AWS.Substitute(myArray(lngI, 1), ".", ""), ",", ". _
")
End If
Next
Range("psBETRAG") = myArray
End Sub

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Wonach wolltest du dann suchen? Ohne...
03.11.2010 11:10:03
Luc:-?
…brauchbare und akzeptable Vorgabe dürfte die Range-Methode Find kaum zum Erfolg führen, Peter… ;->
Wenn du einen (oder mehrere) das abdeckende Suchbegriff(e) findest und der Einsatz der Methode(n) auch nicht zu einer deutlichen Performanceverschlechterung ggüber dem ggw Zustand führt, hast du's… ;-)
Gruß Luc :-?
Anzeige
AW: Wonach wolltest du dann suchen? Ohne...
03.11.2010 13:56:03
Peter
Hallo Luc
Wenn du Umwandlung bereits passiert ist, sind im Bereich psBetrag ebensoviele "wirkliche" Zahlen, wie der Bereich Felder enthält.
Also könnte man - wenn man wüsste wie - die Anzahl wirkliche Zahlen (selbst wenn diese NULL oder negativ sind) suchen und mit der Anzahl Zellen des Bereichs vergleichen. Wenn die Anzahl identisch ist, müsste die Umwandlung nicht nochmals geschehen.
Gruss, Peter
Anzeige
AW: Wonach wolltest du dann suchen? Ohne...
03.11.2010 18:51:05
hary
Hallo Peter
versuchs mal so.

Sub tt()
With WorksheetFunction
If .Count(Range("psBetrag")) 

AW: Wonach wolltest du dann suchen? Ohne...
03.11.2010 21:57:17
Peter
Hallo Hary
Das ist ein Volltreffer.
Vielen Dank!
Gruss, Peter
;

Forumthreads zu verwandten Themen

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