Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1500to1504
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
Zahl in Zelle löschen
30.06.2016 14:37:13
Claudia
Hallo zusammen,
leider bin ich bei der Suche nicht fündig geworden, ich habe folgendes Problem:
IN einer Spalte stehen Text und Zahlen
sddsad 12 fdffsd 12345 dffdfdsf
sddsad 12 fdffsd fdfjdfdfsdfsdfk
12 dhjsahdjhhfdf
gfhjdghsjghfgfagfdhghafh 12345
Jede Zelle sieht anders aus, auch von der Anzahl der Zahlen. Ich müsste jetzt aber die fünfstellige Zahl löschen, der restliche Text aber auch alle anderen Zahlen müssten betstehen bleiben.
Ich bin mir sicher es gibt da eine Lösung für :-)

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahl in Zelle löschen
30.06.2016 15:42:18
Matthias
Hallo Claudia!
Du könntest entweder den Zelleninhalt Zeichenweise durchgehen, prüfen ob es eine Zahl und und die Anzahl an Zahlen mitzählen. Alt. gehts das auch mit der regex. HAbe mich für letzteres entschieden. Im Beispiel geht der Code die Spalte A durch und löscht alle 5stelligen Zahlen. ggf. anhängende bzw. führende Leerzeichen werden ignoriert. Schau mal bitte, ob das hilft. VG

Option Explicit
Sub zahlen_löschen()
Dim i As Long
Dim letzte As Long
Dim zahl As String
'hier die Spalte anpassen, 1 steht für Spalte A , B wär 2 etc.
letzte = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To letzte
zahl = suche(ActiveSheet.Cells(i, 1)) 'ggf hier und darunter auch anpassen
If zahl  "" Then ActiveSheet.Cells(i, 1) = Replace(ActiveSheet.Cells(i, 1), zahl, "")
Next i
End Sub
Function suche(ByVal myStr As String)
Dim regEx As Object
Dim Treffer As Object
Dim i As Long
Set regEx = CreateObject("Vbscript.Regexp")
With regEx
.Pattern = "[0-9]+"
.Global = True
Set Treffer = .Execute(myStr)
End With
With Treffer
If .Count > 0 Then
For i = 1 To .Count
If Len(.Item(i - 1)) = 5 Then
suche = .Item(i - 1)
End If
Next i
End If
End With
End Function

Anzeige
AW: Zahl in Zelle löschen
30.06.2016 15:50:34
Nepumuk
Hallo,
teste mal:
Option Explicit

Public Sub DeleteNumbers()
    Dim lngRow As Long
    Dim objRegEx As Object
    Set objRegEx = CreateObject("VBScript.RegExp")
    With objRegEx
        .Global = True
        .Pattern = "\w*\d{5}\w*"
        For lngRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row 'Spaltennummer und 1. Datenzeile anpassen
            Cells(lngRow, 1).Value = .Replace(Cells(lngRow, 1).Value, "")
        Next
    End With
    Set objRegEx = Nothing
End Sub

Gruß
Nepumuk

Anzeige
5-stellige Zahl löschen per Arrayformel
30.06.2016 16:04:19
WF
Hi,
der String steht in A1 - in B1 steht folgende Arrayformel:
{=WENNFEHLER(LINKS(A1;VERGLEICH(WAHR;ISTZAHL(TEIL(WECHSELN(A1;" ";"#");SPALTE(A1:AZ1);5)*1);0)-1) &TEIL(A1;VERGLEICH(WAHR;ISTZAHL(TEIL(WECHSELN(A1;" ";"#");SPALTE(A1:AZ1);5)*1);0)+5;99);A1) }
WF

AW: 5-stellige Zahl löschen per Arrayformel
30.06.2016 16:53:55
Claudia
Hallo zusammen,
vielen Dank für Eure Antworten. Die Makros klappen super, einzig bei der Formel passiert irgenddwie nichts, was kann ich da falsch machen?

Arrayformel mit Strg+Umschalt+Enter abschließen...
30.06.2016 17:11:05
Michael
Hallo!
Das ist eine Array-Formel; wenn Du sie in ein Zelle eingibst, musst Du die Eingabe mit Strg + Umschalt + Enter abschließen, statt nur mit Enter - dann werden die {-Klammern autom. erzeugt (diese gibst Du nicht mit ein).
LG
Michael
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige