Microsoft Excel

Herbers Excel/VBA-Archiv

Entfernung von überflüssigen Zeichen

Betrifft: Entfernung von überflüssigen Zeichen von: Steffen
Geschrieben am: 12.08.2020 22:35:45

Hallo ihr lieben,


eine Frage zur Entfernung von überflüssigen Zeichen in einer Nummer mittels VBA. Eine Nummer sollte in Zelle A1 umgewandelt werden:



Inhalt von Zelle A1: "45 56 7/3-10" sollte zu "45567310"



Vielen Dank für euere Hilfe.



lg Steffen

Betrifft: AW: Entfernung von überflüssigen Zeichen
von: Oberschlumpf
Geschrieben am: 12.08.2020 23:21:25

Hi Steffen,
With Range("A1")
    .Value = Replace(.Value, " ","")
    .Value = Replace(.Value, "/","")
    .Value = Replace(.Value, "-","")
End With
Hilfts?

Ciao
Thorsten

Betrifft: Mann, Thorsten, 3x A1 lesen & schreiben...!
von: Luc:?
Geschrieben am: 13.08.2020 01:33:37

Wenn schon Replace, dann doch wohl besser so:
Range("A1") = Replace(Replace(Replace(Range("A1"), " ", ""), "/", ""), "-", "")
Oder auch so:
Dim px As Long, qTx$, zTx$, zx As String
…
qTx = Range("A1").Value
For px = 1 To Len(qTx)
    zx = Mid(qTx, px, 1)
    If IsNumeric(zx) Then zTx = zTx & zx
Next px
Range("A1") = CLng(zTx)
Man kann natürlich ZellFmln/-Fktt in VBA benutzen, ggf auch fertige UDFs, wobei mir als fertige singulare MatrixFml auch noch folgende, etwas exotische Variante eingefallen ist:
{=--VJoin(WENNFEHLER(--TEIL(A1;ZEILE(INDIREKT("1:"&LÄNGE(A1)));1);"");"")}
Wer über eine entsprd neuere Xl-Version verfügt, kann die UDF VJoin auch gut durch die Xl-Fkt TEXTKETTE ersetzen.
Morhn, Luc :-?

„Die universelle Befähigung zur Unfähigkeit macht jede menschliche Leistung zu einem unglaublichen Wunder.“ Stapps ironisches Paradoxon
Nichtsdestotrotz Durchblick verbessern mit …


Betrifft: Mann, du schlauberger!
von: Oberschlumpf
Geschrieben am: 13.08.2020 06:18:40

wir wissen alle, dass du der beste bist! *ironieaus* doof nur, dass du das immer wieder so raushängen lassen musst. *ganzohneironie*
und trotzdem ist auch meine idee nicht falsch.

Betrifft: Deine Idee ist nicht falsch, nur unökonomisch, ...
von: Luc:?
Geschrieben am: 14.08.2020 01:47:29

…Thorsten,
weshalb man so etwas einem Anfänger gar nicht erst vorschlagen sollte. Schreibst du hier nicht schon seit Jahren‽ Da sollte dir doch aufgefallen sein, dass jedes Schreiben in eine Zelle eine Neuberechnung auslösen kann, die den PgmAblauf verlangsamt, wenn man keine temporären GgMaßnahmen ergreift, an die ein Anfänger wahrscheinlich nicht denkt. Das war hier ja schon oft genug zu lesen! Nicht umsonst wird ja das Schreiben in Variablen oder gar Arrays empfohlen, die dann auf 1× in Zellen eingetragen wdn. Hättest du den Zellwert erst in eine Variable gelesen, wäre auch deine Methode egal gewesen, Hptsache nur 1× in die Zelle schreiben.
Luc :-?

Betrifft: überflüssige Zeichen sind auch : ? ; ( ) % + @
von: WF
Geschrieben am: 13.08.2020 09:13:18

etc. sowie alle Buchstaben.

Du willst alle Zahlen extrahieren:
{=SUMME((TEIL(0&A1;KGRÖSSTE(WENN(ISTZAHL(TEIL(0&A1;ZEILE($1:$256);1)*1);ZEILE($1:$256);1); ZEILE($1:$256));1)*1)*10^(ZEILE($1:$256)-1)) }

siehe:
https://www.herber.de/excelformeln/pages/Ziffern_beliebiger_Anordnung_aus_einem_Text_extrahieren.html

WF

Betrifft: AW: hierzu angemerkt ...
von: neopa C
Geschrieben am: 13.08.2020 11:52:22

Hallo WF,

... wenn Du hier eine Formellösung einbringst dann reicht für die bisherigen Vorgaben:
=WECHSELN(WECHSELN(WECHSELN(A1;" ";"");"/";"" );"-";"") welche sämtliche Ziffern (können auch mehr als 15 sein) des Originaltextes richtig und in gleicher Reihenfolge verkettet als Textwert ausgeben.

Und zu https://www.herber.de/excelformeln/pages/Ziffern_beliebiger_Anordnung_aus_einem_Text_extrahieren.html dort mE sollte als Aufgabe richtiger stehen; "Ausgabe von bis zu max 15 letzten (!) Ziffern in richtiger Reihenfolge aus einem beliebigen Text (mit hier bis zu 256 Zeichen Länge)"
und in den Formeln sollte dementsprechend auch die zwei bzw. drei letzten $256 durch lediglich $15 ersetzt werden.

Gruß Werner
.. , - ...

Betrifft: den 3-fach-Wechsel hatte Luc vor 10 Stunden
von: WF
Geschrieben am: 13.08.2020 12:14:07

.

Betrifft: AW: darum ging und geht es aber nicht owT
von: neopa C
Geschrieben am: 13.08.2020 13:14:15

Gruß Werner
.. , - ...

Betrifft: Bring mal was attraktives, neues
von: WF
Geschrieben am: 13.08.2020 13:37:44

nicht nur Schraubereien an bestehenden (funktionierenden) Lösungen.

WF

Betrifft: AW: auch darum ging und geht es hier nicht ...
von: neopa C
Geschrieben am: 13.08.2020 15:37:32

Hallo WF,

... sondern hier wollte ich Dich lediglich darauf aufmerksam machen, dass die von Dir verlinkte Seite Formellösungen beinhalten, die eben so wie wiedergeben und beschrieben u.a. nur bedingt funktionieren (können).

Und auf unabhängige Formellösungen von mir oder auch Anderen, weis ich Dich schon seit vielen Jahren nicht mehr hin (weil Du diese wegen des teilweise Einsatzes von "neueren" Excelfunktionen und Funktionalitäten sowieso ablehnst). Aber wenn Du mich nun schon hier aufgefordert hast, erinnere ich wenigstens an eine von lupo1 Ende vorigen Monats hier im Forum eingestellte neue starke Formelvereinfachung der Staffelsaldo-Formellösung. Das war/ist sogar eine Formel, die auch ganz ohne neuere Funktionen und Funktionalitäten auskommt. Aber in https://www.herber.de/excelformeln/src/ef_formula_list.pl finde ich diese bis heute noch nicht.

Gruß Werner
.. , - ...

Betrifft: also eine Lösung von Lupo und Du hast geschraubt
von: WF
Geschrieben am: 13.08.2020 18:59:11

herber.de/excelformeln ist auf dem Stand von April 2019.
Änderungen, Neuerungen etc. sind aktuell nicht möglich.

Hatte ich oft geschrieben und Du hst das gelesen.
WF

Betrifft: AW: nein, ich schrieb: eine Lösung von lupo1 ...
von: neopa C
Geschrieben am: 13.08.2020 20:09:19

Hallo,

... und nichts davon, das ich daran "geschraubt" habe.

Wenn Du noch immer keine Neuerungen und Korrekturen vornehmen kannst, dann schreib das doch gleich.

Gruß Werner
.. , - ...

Betrifft: Ich hatte das zwar nicht als FmlLösung ...
von: Luc:?
Geschrieben am: 14.08.2020 02:03:53

…vorgeschlagen, Walter,
sondern nur Thorstens VBA-Vorschlag ökonomischer gemacht, aber im Prinzip wäre das die StandardLösung, wenn es nicht zu viele Wechsel wdn (wofür ich übrigens auch eine Wiederhol-UDF entwickelt hatte). Da es hier aber nur um Ziffern geht, was Werner durchaus richtig einschätzt, hätte ich für eine ZellFml meine UDF MaskOn vorgeschlagen, die beliebige Zeichen(-Gruppen) entfernen oder allein behalten kann.
Hier wollte ich aber zusätzlich eine ZellFml vorschlagen, die quasi das nachgestaltet, was MaskOn in diesem Fall ähnlich machen würde. Dabei muss Dich die zusammenfassende UDF VJoin an führender Position nicht stören, denn sie kann (wahrscheinlich) durch analoge (natürlich nach deren Syntax) Anwendung der neuen Xl-Fktt TEXTKETTE (dann ohne 2.Argument von VJoin!) bzw TEXTVERKETTEN (mit anderer ArgumenteReihenfolge als VJoin!) ersetzt wdn. Das mag dann auch als reales Fml-Novum gelten… ;-)
Morhn, Luc :-?

Betrifft: Hatte übersehen, dass Du ja eher ...
von: Luc:?
Geschrieben am: 14.08.2020 15:26:46

…an Nur-Ziffern gedacht hattest als Werner, Walter;
Werner hatte das dann aber aufgegriffen und sich auf eure Fml bezogen.
Luc :-?

Betrifft: Eine weitere Alternative...
von: Case
Geschrieben am: 13.08.2020 10:06:20

Hallo Steffen, :-)

... wäre "RegExp", oder die Funktion aus einer Sub heraus nutzen: ;-)

Beispieldatei...

Servus
Case


Betrifft: AW: Entfernung von überflüssigen Zeichen
von: Steffen
Geschrieben am: 14.08.2020 10:36:37

Vielen Dank an euch für die verschieden Möglichkeiten, das Problem zu lösen. lg Steffen