Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1188to1192
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

Zahlen extrahieren und dann sortieren

Zahlen extrahieren und dann sortieren
Kurt
Hallo und guten Abend,
in meiner Tabelle sollen die Zahlen extrahiert und in der Spalte E einzeln aufgelistet werden (wenn möglich auch noch aufsteigend sortiert, das ist aber nicht so wichtig). Die Zahlen sind immer sechsstellig.
https://www.herber.de/bbs/user/72499.xls
Habe schon diverse Forumsbeiträge durchforstet, aber noch keine Idee.
Kann jemand helfen?
Gruß Kurt

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zahlen extrahieren und dann sortieren
28.11.2010 10:52:32
Reinhard
Hallo Kurt,
Sub extrakt()
Dim ZeiC As Long, ZeiE As Long, Satz As String, B As Long
ZeiE = 5
For ZeiC = 6 To Cells(Rows.Count, 3).End(xlUp).Row
Satz = Satz & Cells(ZeiC, 3)
Next ZeiC
For B = 1 To Len(Satz) - 5
If Mid(Satz, B, 1) >= "0" And Mid(Satz, B, 1) 
Gruß
Reinhard
noch eine Variante
28.11.2010 12:34:55
Tino
Hallo,
habe hier auch mal eine Version zusammengebastelt.
Sub Extrahiere_Zahlen()
Dim strData$, ArrayAusgabe(), varInhalt
Dim Regex As Object, objMatch As Object
Dim nCount&

Const sZahlen$ = "\d+,\d+|\d+"

With Tabelle1 'Tabelle anpassen 
    nCount = .Cells(.Rows.Count, 3).End(xlUp).Row 'letzte Zeile in Spalte 3 
    If nCount < 7 Then 'keine Daten im Bereich? 
        MsgBox "keine Daten ab C7!"
        Exit Sub
    End If
    If nCount > 7 Then
        strData = Join(Application.Transpose(.Range("C7", .Cells(nCount, 3)).Value2), "@")
    Else
        strData = .Range("C7").Value
    End If
    nCount = 0
    
    Set Regex = CreateObject("Vbscript.Regexp")
    With Regex
        .MultiLine = True
        .Pattern = sZahlen
        .Global = True
        Set objMatch = .Execute(strData)
    End With
          
    If objMatch.Count > 0 Then
        Redim Preserve ArrayAusgabe(objMatch.Count - 1)
        For Each objMatch In objMatch
            ArrayAusgabe(nCount) = CSng(objMatch.Value)
            nCount = nCount + 1
        Next objMatch
    End If
    
    'Bereich leer machen für neue Daten 
    .Range("E7:E" & .Rows.Count).ClearContents
    If nCount > -1 Then
        With .Range("E7").Resize(nCount)
            .Value = Application.Transpose(ArrayAusgabe)
            .Sort Key1:=.Cells(1, 1), Order1:=xlAscending, Header:=xlNo
        End With
    End If
End With
End Sub
Gruß Tino
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige