Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1184to1188
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

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

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 :-?
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

324 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige