Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Alle Buchstaben aus Spalte entfernen

Betrifft: Alle Buchstaben aus Spalte entfernen von: stormlamp
Geschrieben am: 04.08.2014 08:10:31

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

  

Betrifft: AW: Alle Buchstaben aus Spalte entfernen von: Hajo_Zi
Geschrieben am: 04.08.2014 08:29:21

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
GrußformelHomepage


  

Betrifft: AW: Alle Buchstaben aus Spalte entfernen von: stormlamp
Geschrieben am: 04.08.2014 08:40:25

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


  

Betrifft: AW: Alle Buchstaben aus Spalte entfernen von: Hajo_Zi
Geschrieben am: 04.08.2014 08:42:21

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


  

Betrifft: AW: Alle Buchstaben aus Spalte entfernen von: stormlamp
Geschrieben am: 04.08.2014 10:23:38

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


  

Betrifft: AW: Alle Buchstaben aus Spalte entfernen von: Hajo_Zi
Geschrieben am: 04.08.2014 10:27:12

Halo Hans,

Du hast schon eine Schleife und da musst Du es nur einbauen. Da Du ja schon viele andere Sachen machst.

Gruß Hajo


  

Betrifft: einfacher mit RegExp von: Erich G.
Geschrieben am: 04.08.2014 09:57:53

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


  

Betrifft: AW: einfacher mit RegExp von: stormlamp
Geschrieben am: 04.08.2014 10:25:20

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


  

Betrifft: AW: einfacher mit RegExp von: Erich G.
Geschrieben am: 04.08.2014 10:38:02

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


  

Betrifft: funktioniert doch ohne Propleme von: Matthias L
Geschrieben am: 04.08.2014 10:45:25

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


  

Betrifft: ="ohne " & WECHSELN("Propleme";"p";"b") von: Matthias L
Geschrieben am: 04.08.2014 10:51:30

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


  

Betrifft: AW: funktioniert doch ohne Propleme von: stormlamp
Geschrieben am: 04.08.2014 11:29:28

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


  

Betrifft: ich habe nur getestet ... von: Matthias L
Geschrieben am: 04.08.2014 11:44:59

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


  

Betrifft: Danke an alle von: stormlamp
Geschrieben am: 04.08.2014 11:59:57

Vielen Dank an alle Helfer,

funktioniert nun ausgezeichnet und spart viel Zeit und Handarbeit

Mit freundlichen Grüßen
Hans


 

Beiträge aus den Excel-Beispielen zum Thema "Alle Buchstaben aus Spalte entfernen"