Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
680to684
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
680to684
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

alle 6-stelligen Zahlen auflisten

alle 6-stelligen Zahlen auflisten
19.10.2005 14:18:21
TeiZei
Hallo liebe Excel-Tüftler,
ich hab mal wieder ein Problem:
ist es möglich aus einer Zelle in die
"056488 RS, 0421, Dokumente, 05699 056969" eingetragen wurde alle 6-stelligen Zahlen herauszufiltern und die vorhandenen 6-stelligen Zahlen je in eine eigene neue Zelle zu schreiben?
Vielen Dank,
TeiZei

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: alle 6-stelligen Zahlen auflisten
19.10.2005 14:39:23
MichaV
Hallo,
sind die Zahlen immer durch Leerzeichen vom restlichen Text getrennt?
Gruss- Micha
PS: Rückmeldung wäre nett.
AW: alle 6-stelligen Zahlen auflisten
19.10.2005 16:18:27
TeiZei
Hallo Micha,
das Problem ist, dass die Einträge nicht stetig sind; mal ist ein Leerzeichen, mal ein Komma und dann mal Text mit der 6-stelligen Zahl zusammen!!
Das macht das ganze wohl noch etwas schwieriger?!?!
LG,
TeiZei
AW: alle 6-stelligen Zahlen auflisten
19.10.2005 16:45:06
MichaV
Hallo,
auf jeden Fall macht es dann keinen großen Sinn, das ohne VBA zu versuchen.
Ich gebe an bst weiter und denk mal drüber nach, wie es elegant ohne VBA gehen könnte.
Gruß- Micha
AW: alle 6-stelligen Zahlen auflisten
19.10.2005 16:18:33
TeiZei
Hallo Micha,
das Problem ist, dass die Einträge nicht stetig sind; mal ist ein Leerzeichen, mal ein Komma und dann mal Text mit der 6-stelligen Zahl zusammen!!
Das macht das ganze wohl noch etwas schwieriger?!?!
LG,
TeiZei
Anzeige
AW: Frage!.....
19.10.2005 17:14:31
HermannZ
Hallo TeiZei;
kommen die sechsstelligen Zahlen wie in deinem Beispiel nur vorne und hinten, oder vorne, oder hinten oder wie genau?
am besten wäre es wenn du einmal auflisten würdest wie diese Zeilen denn genau aussehen können.Dann wäre eine Lösung vielleicht viel einfacher zu finden.
Gruß Hermann
AW: alle 6-stelligen Zahlen auflisten
19.10.2005 14:43:28
bst
Auch Hallo TeiZei,
darf's denn was mit VBA und Regular Expressions sein ?
cu, Bernd
AW: alle 6-stelligen Zahlen auflisten
19.10.2005 16:16:11
TeiZei
Hallo Bernd,
ja, natürlich auch gerne eine VBA-Lösung (könnte dann nur sein, dass ich evtl. etwas mehr Hilfe brauche)
LG,
TeiZei
AW: alle 6-stelligen Zahlen auflisten
19.10.2005 16:19:17
TeiZei
Hallo Bernd,
ja, natürlich auch gerne eine VBA-Lösung (könnte dann nur sein, dass ich evtl. etwas mehr Hilfe brauche)
LG,
TeiZei
Anzeige
AW: alle 6-stelligen Zahlen auflisten
20.10.2005 15:52:25
TeiZei
Hi Coach,
funkt super!!!
Tausend dank
TeiZei
geile loesung, respekt ot.
19.10.2005 21:28:15
th.heinrich
dem kann ich mich nur anschließen owT
19.10.2005 21:59:23
MichaV
AW: alle 6-stelligen Zahlen auflisten
20.10.2005 08:47:53
bst
Morgen auch,
das ist ja eine ziemlich heftige Formel. Cool.
Hier noch - wie versprochen - eine denkbare VBA-Variante mit RE.
Die Routine rngRegexSplit splittet an Hand des übergebenen Patterns und schreibt das Resultat nach rechts. Gesplittet werden die Submatches das ist das was im Pattern in runden Klammern steht.
Z.B. kann man "AxBxCxD" so in A B C D zerlegen: "(A)x(B)x(C)x(D)"
Oder wenn denn "x" nur ein Zeichen sein sollte via: "([^x]+)" Sowie das Flag GlobalSplit auf True setzen.
Eine 6-stellige Zahl findet man leicht via "(\d{6})". Leider damit auch die mehr als 6-stelligen Freunde. Um diese auszuschließen braucht man dann halt sowas ähnliches:
"(?:^|\D)(\d{6})(?!\d)" wobei:
(?:^|\D) Anfang des Strings oder eine Nicht-Ziffer, dieses nicht als Submatch speichern. Dieses verkonsumiert u.U. ein nicht benötigtes Zeichen (die Nichtziffer \D), damit muß man halt IMHO leben ... Lookbehind's kennt VB-RE leider nicht :-(
(\d{6}) 6 Ziffern, als Submatch speichern
(?!\d) ein negativer Lookahead einer Ziffer, d.h. es darf keine Ziffer kommen, das Zeichen wird aber nicht zum Match dazugenommen.
RegExp is fun,
Bernd
--
Option Explicit

Sub TrennMich()
   With Range("B1:H10")
      .NumberFormat = "@"
      .Value = ""
   End With
   rngRegexSplit Range("A1:A10"), "(?:^|\D)(\d{6})(?!\d)", , True
End Sub

Sub rngRegexSplit(src As Range, pattern As String, _
   Optional IgnoreCase As Boolean = False, _
   Optional GlobalSplit As Boolean = False, _
   Optional SplitVert As Boolean = False)

   
   Dim cell As Range
   Dim i As Integer, j As Integer, k As Integer
   Dim re As Object, m As Object
   
   Set re = CreateObject("vbscript.regexp")
   re.pattern = pattern
   re.IgnoreCase = IgnoreCase
   re.Global = GlobalSplit
   're.MultiLine = MultiLine
   
   For Each cell In src
      Set m = re.Execute(cell.Value)
      k = 1
      For i = 0 To m.Count - 1
         For j = 0 To m(i).SubMatches.Count - 1
            If SplitVert Then
               cell.Offset(k, 0).Value = m(i).SubMatches(j)
            Else
               cell.Offset(0, k).Value = m(i).SubMatches(j)
            End If
            k = k + 1
         Next
      Next
      Set m = Nothing
   Next
   Set re = Nothing
End Sub

Anzeige
AW: alle 6-stelligen Zahlen auflisten
20.10.2005 16:10:48
TeiZei
Hi bernd,
komme leider mit deiner Lösung nicht wirklich klar (immer wenn ich die VBA-Variante starte um einen Datendsatz zu sortieren schluckt der Rechner Zahlen etc.)
Vielleicht kann ich aber auch nur nicht wirklich damit umgehen (kann man die zu sortierenden Argumente in jede Zelle des Datenblatts schreiben?!?)
Aber auch dir und allen Mitwirkenden
Tausend Dank für die Lösung dieses super schweren Problems
cu,
TeiZei
AW: alle 6-stelligen Zahlen auflisten
20.10.2005 23:00:05
bst
Abend TeiZei,
so wie ich's geschrieben habe wandelt es nur die Zellen A1:A10 und schreibt diese nach rechts.
Zuvor lösche ich den Bereich B1:H10 und formatiere ihn als Text.
Die Textformatierung brauchst Du hier eigentlich nicht wirklich. Ebensowenig das Löschen.
Ändere TrennMich einfach mal so ab, dann trennt er alle markierten Zellen.
D.h. selektiere zuerst die Zellen die Du trennen möchtest (sinnvollerweise sollten diese wohl
in einer Spalte stehen und rechts von ihnen sollte genug Platz sein) und starte dann das Makro.
Siehe Anhang. https://www.herber.de/bbs/user/27696.xls

Sub TrennMich()
rngRegexSplit Selection, "(?:^|\D)(\d{6})(?!\d)", , True
End Sub

cu, Bernd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige