Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1372to1376
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

Alle Buchstaben aus Spalte entfernen

Alle Buchstaben aus Spalte entfernen
04.08.2014 08:10:31
stormlamp
Hallo,
in einer Spalte wurden Dimensionen (LxBxH) eingetragen, aber mal mit Text davor mal mit Text dahinter, mal mit Leerzeichen drin etc.
Nun möchte ich die reinen Dimensionen herausfiltern.
Das geplante Vorgehen:
- zuerst die "x" durch "#" ersetzen
- dann alle ASCII-Zeichen ab 58 (Hex 3A) löschen
- alle Leerzeichen löschen
- "#" wieder durch "x" ersetzen
- Zahlen nach Größe innerhalb jedes Strings sortieren
Was mir fehlt, ist der Makroteil, wie ich die ASCII-Zeichen ab 58 lösche.
Kann mir bitte jemand helfen
Mit freundlichen Grüßen
Hans

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Buchstaben aus Spalte entfernen
04.08.2014 08:29:21
Hajo_Zi
Hallo Hans, Option Explicit Sub Entfernen() ' alles enferner ausßer Zahlen und # Dim StWert As String Dim LoI As Long StWert = Range("A1") For LoI = Len(StWert) To 1 Step -1 If Not IsNumeric(Mid(StWert, LoI, 1)) And Mid(StWert, LoI, 1) "#" Then StWert = Left(StWert, LoI - 1) & Mid(StWert, LoI + 1) End If Next LoI Range("B1") = StWert End Sub

AW: Alle Buchstaben aus Spalte entfernen
04.08.2014 08:40:25
stormlamp
Hallo,
vermutlich mache ich etwas falsch, denn es funktioniert bei mir leider nicht:
So bin ich vorgegangen:
1. ein Makro aufgezeichnet
2. Inhalt der Aufzeichnung durch das neue Makro erstezt.
3. Der curor steht in der zu bearbeitenden Spalte (V)
4. Makro gestartet
5. es passiert nichts
Gruß
Hans

Anzeige
AW: Alle Buchstaben aus Spalte entfernen
04.08.2014 08:42:21
Hajo_Zi
Hallo Hans,
mir ist nicht klar was Du gemacht hast, was wohl auch daran liegt das ich es nicht sehe.
Bei mir steht der Wert in A1 und der bereinigte wird in B1 geschrieben.
Gruß Hajo
Angabe Version

AW: Alle Buchstaben aus Spalte entfernen
04.08.2014 10:23:38
stormlamp
Hallo Hajo,
wenn ich das so mache, wie Du schreibst, dann funktioniert das genau nur für die Kombination A1/B1.
Ich habe jedoch bspw. ein Spalte "V" in der der Cursor steht. Die Spalte hat ca 1000 Zeilen.
Wenn ich das Makro ablaufen lasse, dann sollen anschließend in allen Zellen der Spalte V nur noch die Dimensionen stehen.
Gruß
Hans

Anzeige
AW: Alle Buchstaben aus Spalte entfernen
04.08.2014 10:27:12
Hajo_Zi
Halo Hans,
Du hast schon eine Schleife und da musst Du es nur einbauen. Da Du ja schon viele andere Sachen machst.
Gruß Hajo

einfacher mit RegExp
04.08.2014 09:57:53
Erich
Hi Hans,
damit ließe sich dein geplantes Vorgehen stark vereinfachen. Und schnell ist das Ganze auch noch -
ganz ohne Schleife:

Sub TextfilterMitRegExp()
Dim strAlt As String, strNeu As String, objRegEx As Object
strAlt = Cells(1, 1)
Set objRegEx = CreateObject("VBScript.RegExp")
With objRegEx
.MultiLine = True
.Global = True
.IgnoreCase = True
.Pattern = "[^x0-9]"
strNeu = .Replace(strAlt, "")
End With
MsgBox strNeu
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: einfacher mit RegExp
04.08.2014 10:25:20
stormlamp
Hallo Erich,
Dein Ablauf funktioniert bei mir leider nicht.
Wenn ich das Makro starte, dann kommt ein Fenster, in dem nur ein OK-Button ohne jeden weiteren Text steht. Den kann ich zwar anklicken und das Fenster verschwindet wieder, ansonsten passiert nichts.
Gruß
Hans

AW: einfacher mit RegExp
04.08.2014 10:38:02
Erich
Hi Hans,
da behaupte ich doch ganz einfach: Der Ablauf funktioniert!
Das Fenster, in dem nur ein OK-Button steht, ist die MsgBox am Ende des Codes.
Wenn da außer OK nichts ist, heißt das nur, dass strNeu leer ist. Und das wiederum heißt, dass in A1 = Cells(1, 1)
weder eine Ziffer noch ein x vorkommt.
Änder doch mal
MsgBox strNeu
in
MsgBox "Das Ergebnis ist: " & strNeu
Dann siehst du das sofort.
Hier zwei Codes, die alle Zellen in Spalte V ändern. TextfilterMitRegExp3 ist schneller:

Sub TextfilterMitRegExp3()
Dim objRegEx As Object, arQ, arZ(), zz As Long
Set objRegEx = CreateObject("VBScript.RegExp")
arQ = Cells(1, 22).Resize(Cells(Rows.Count, 22).End(xlUp).Row) ' Quelldaten Spalte V
ReDim arZ(1 To UBound(arQ), 1 To 1)
With objRegEx
.MultiLine = True
.Global = True
.IgnoreCase = True
.Pattern = "[^x0-9]"
For zz = 1 To UBound(arQ)                 ' Schleife über Zeilen
arZ(zz, 1) = .Replace(arQ(zz, 1), "")  ' Ergebnis in arZ
Next zz
End With
Cells(1, 22).Resize(UBound(arZ)) = arZ       ' Zieldaten in Spalte V
End Sub
Sub TextfilterMitRegExp2()
Dim objRegEx As Object, zz As Long
Set objRegEx = CreateObject("VBScript.RegExp")
With objRegEx
.MultiLine = True
.Global = True
.IgnoreCase = True
.Pattern = "[^x0-9]"
For zz = 1 To Cells(Rows.Count, 1).End(xlUp).Row   ' Schleife über Zeilen
Cells(zz, 22) = .Replace(Cells(zz, 22), "")     ' Ergebnis in Spalte V
Next zz
End With
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
funktioniert doch ohne Propleme
04.08.2014 10:45:25
Matthias
Hallo
Mein Test
Das klappt einwandfrei!
Hab nur statt der Box die Nachbarzelle zur Ausgabe benutzt.
Tabelle1

 AB
1Länge 500 x Breite 150 x Höhe 90500x150x90


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Matthias

Anzeige
="ohne " & WECHSELN("Propleme";"p";"b")
04.08.2014 10:51:30
Matthias
Hallo
Tabelle1

 AB
1Proplemeich meinte: ohne Probleme ;o)

Formeln der Tabelle
ZelleFormel
B1="ich meinte: ohne " & WECHSELN("Propleme";"p";"b") & " ;o)"


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Matthias

Anzeige
AW: funktioniert doch ohne Propleme
04.08.2014 11:29:28
stormlamp
Hallo Matthias,
Vielen Dank, die Version 3 funktioniert ausgezeichnet.
Vielleicht könntest Du noch eine Verbesserung hinzufügen:
Das Makro soll genau die Spalte bearbeiten, in der beim Start des Makros der Cursor steht.
Mit freundlichen Grüßen
Hans

ich habe nur getestet ...
04.08.2014 11:44:59
Matthias
Hallo
Ich wollte mich da nicht einmischen.
Ich hab Erichs Code nur getestet, da hat schon die erste Version funktioniert :-)
Aber mal von der Logik her würde ich dann im Code die 22 austauschen,
z.B. durch eine weitere Variable die den SpaltenIndex der aktiven Zelle aufnimmt.
probiers mit: ActiveCell.Column
Gruß Matthias

Anzeige
Danke an alle
04.08.2014 11:59:57
stormlamp
Vielen Dank an alle Helfer,
funktioniert nun ausgezeichnet und spart viel Zeit und Handarbeit
Mit freundlichen Grüßen
Hans

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige