Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
732to736
732to736
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Mehrere Zahlen aus einer Zelle auslesen

Mehrere Zahlen aus einer Zelle auslesen
14.02.2006 17:14:03
Andrew
Hallo zusammen,
Ist es möglich Zahlen, die in einer Zelle stehen, auszulesen und nebeneinander aufzulisten?
Also z.B. in Zelle A1 steht =100+100-27+543
und in den Zellen B1 bis E1 stehen die vier eingetragenen Zahlen.
Hier ist eine Beispieldatei
https://www.herber.de/bbs/user/31041.xls
Für eure Hilfe wäre ich sehr dankbar.
Gruß
Andrew

35
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Zahlen aus einer Zelle auslesen
14.02.2006 17:32:04
Andrew
Hallo André,
leider kann ích die dort angegebenen Hilfen nicht verwenden.
Gruß
Andrew
AW: Mehrere Zahlen aus einer Zelle auslesen
14.02.2006 17:39:43
Sven
Hi,
hat das Ganze auch einen praktischen Nutzen und wenn ja, welchen?
mfg Sveb
AW: Mehrere Zahlen aus einer Zelle auslesen
14.02.2006 17:43:29
Andrew
Hallo Sven,
den hat es, denn sonst würde ich so etwas nicht fragen.
ich erhalte dateien von Kollegen, die mit Excel bisher nicht gearbeitet haben.
Sie tragen Daten die zusammengehören in eine Zelle.
Aber ich muss wissen, welche Zahlen das sind!
Andrew
Anzeige
AW: Mehrere Zahlen aus einer Zelle auslesen
14.02.2006 17:50:57
Andrew
Hallo zusammen,
ich bin weiterhin offen für eure Tipps
Gruß
Andrew
AW: Mehrere Zahlen aus einer Zelle auslesen
14.02.2006 17:55:27
ransi
Hallo
vielicht hilft die das hier weiter:
AW: Mehrere Zahlen aus einer Zelle auslesen
14.02.2006 18:01:20
Andrew
Hallo Ransi,
danke für deine Antwort. Leider kann ich zu schlecht VBA, als dass ich deine Idee dort umsetzen könnte.
Gruß
Andrew
AW: Mehrere Zahlen aus einer Zelle auslesen
14.02.2006 17:58:18
Uli
strg + #
mfg Uli
AW: Mehrere Zahlen aus einer Zelle auslesen
14.02.2006 18:02:35
Andrew
Hallo Uli,
das mit strg+# kann ich höchstens bei ein paar Zellen machen.
Aber teilweise habe ich hier Zellen mit 10 oder mehr Zahlen drin.
Gruß
Andrew
AW: Mehrere Zahlen aus einer Zelle auslesen
14.02.2006 18:17:49
ransi
Hallo andrew
Ein normales Modul wirst du aber erstellen können.
Da dann diesen code rein:
Option Explicit
Public

Function formeltrennen(zelle, zahl As Integer)
Dim operator()
Dim formel As String
Dim zahlen
Dim dummy
Dim i As Integer
operator = Array("=", "+", "-", "*", "\", "/")
dummy = zelle.FormulaLocal
For i = 0 To UBound(operator)
dummy = Replace(dummy, operator(i), "##")
Next
zahlen = Split(dummy, "##")
formeltrennen = zahlen(zahl) * 1
End Function

der aufruf geht dann so:
Anzeige
AW: Mehrere Zahlen aus einer Zelle auslesen
14.02.2006 18:29:49
Andrew
Hallo Ransi,
funktioniert super, echt spitze. Vielen Dank dafür.
Gibt es auch die Möglichkeit, dass die Vorzeichen mitgenommen werden, wenn diese negativ sind?
Gruß
Andrew
AW: Mehrere Zahlen aus einer Zelle auslesen
14.02.2006 18:29:22
schauan
Hallo,
mal das als Ansatz, aber in waagerechter Ausgabe !!!

Function splitter(ByRef zelle As Range) As String
Dim Spalte1%, Spalte2%, splittArr
Spalte1 = zelle.Column
Spalte2 = Application.Caller.Column
splitarr = Split(zelle.Value, "+")
If Spalte2 - Spalte1 - 1 <= UBound(splitarr) Then
splitter = splitarr(Spalte2 - Spalte1 - 1)
Else
splitter = "#"
End If
End Function

VBA:
Menü | Exras | Makros | VBA - Editor
dort Einfügen | Modul
und die Funktion einfügen ...
Anzeige
AW: Mehrere Zahlen aus einer Zelle auslesen
14.02.2006 18:37:46
schauan
... und noch der Hinweis, meine Formel-Auswertung beginnt automatisch ab der ersten Zelle neben der Ausgangszelle, d.h. wenn Deine Zeichenkette in A10 steht muss die Formel in B10 beginnen und bringt da den ersten Wert, in C10 den 2. usw. und wenn nix mehr da ist wird # ausgegeben ..
Grüße, Andre
AW: Mehrere Zahlen aus einer Zelle auslesen
14.02.2006 18:39:41
Andrew
Hallo André,
vielen Dank für deine Hilfe. Ich komme leider nicht so ganz mit deinem VBA-Code zurecht.
Wärst du jetzt sehr sauer, wenn ich dich frage, ob du den VBA-Code von Ransi dir mal anschauen könntest. Er hat auch einen sehr guten Vorschlag gemacht, den ich schon umsetzen konnte.
Aber ich versuche noch die Vorzeichen, wenn sie negativ sind, mitzubekommen.
Gruß
Andrew
Anzeige
AW: Mehrere Zahlen aus einer Zelle auslesen
14.02.2006 18:46:42
ransi
hallo
versuch mal so:


Option Explicit
Public Function formeltrennen(zelle, zahl As Integer)
Dim operator()
Dim operatorersetz()
Dim formel As String
Dim zahlen
Dim dummy
Dim i As Integer
operator = Array("=""+""-""*""\""/""("")")
operatorersetz = Array("##""##""##-""##""##""##""##""##")
dummy = zelle.FormulaLocal
For i = 0 To UBound(operator) / 2
    dummy = Replace(dummy, operator(i), operatorersetz(i))
Next
zahlen = Split(dummy, "##")
formeltrennen = zahlen(zahl) * 1
End Function

     Code eingefügt mit Syntaxhighlighter 4.0

ransi
Anzeige
kommando zurück
14.02.2006 18:53:30
ransi
hallo
ist noch nicht ganz ausgereift.
ransi
AW: kommando zurück
14.02.2006 18:56:14
Andrew
Hallo Ransi,
bist du sicher? Es funktioniert aber schon sehr gut!
Super, vielen Dank
Gruß
Andrew
AW: kommando zurück
14.02.2006 18:58:36
Andrew
Hallo Ransi,
vielleicht hast du recht. Wenn eine negative Zahl zuerst hinter dem = steht, gibt es einen Fehler und die Formel überspringt diese Zahl.
Gruß
Andrew
Funktioniert spitze, Vielen Dank! Super
14.02.2006 19:02:14
Andrew
Hallo Ransi,
funktioniert spitze, die Zahlen werden in der nächsten Zelle weitergeführt. Es verschiebt sich einfach nur eine Zelle nach rechts.
Ich danke dir ganz herzlich! Du hast mir sehr sehr gut geholfen.
Viele Grüße
Andrew
hm..
14.02.2006 19:03:47
ransi
DAS wiederum hatte ich noch garnicht bemerkt.
letzter versuch für heute:
Option Explicit
Public

Function formeltrennen(zelle, zahl As Integer)
Dim operator()
Dim operatorersetz()
Dim formel As String
Dim zahlen
Dim dummy
Dim i As Integer
operator = Array("=", "+", "-", "*", "\", "/", "(", ")")
operatorersetz = Array("", "##", "##-", "##", "##", "##", "", "")
dummy = zelle.FormulaLocal
For i = 0 To UBound(operator)
dummy = Replace(dummy, operator(i), operatorersetz(i))
Next
zahlen = Split(dummy, "##")
formeltrennen = zahlen(zahl)
End Function

wenn da auch noch was auftaucht stell die frage auf offen.
Ich hoffe da wird jemand anderes dann weiter helfen.
ransi
Anzeige
Jetzt ist es vollbracht! Perfekt! Besten Dank!
14.02.2006 19:08:16
Andrew
Hallo Ransi,
jetzt ist es vollbracht. Deine Lösung funktioniert perfekt.
Fantastisch. Die Sache ist auf keinen Fall noch offen.
Nochmals herzlichsten Dank!
Gruß
Andrew
anderer Ansatz
14.02.2006 20:19:07
Reinhard
Hallo,
da war ich wohl zu langsam, naja kleiner Bug ist noch drinnen.
C1: =-4+3+4-7+8-56-78-789+3
extrahiert sauber nach D1:L1 , aber M1 und ff haben #Wert, trotz der Iif-Abfrage
Option Explicit
Function tt(zelle As Range)
Dim Satz, Satz2, Satz3(), n, nn, anz, pos
Satz = Split(Mid(zelle.FormulaLocal, 2), "-")
For n = 0 To UBound(Satz)
Satz(n) = "-" & Satz(n)
If n = 0 And Mid(zelle.FormulaLocal, 2) <> "-" Then Satz(n) = Mid(Satz(n), 2)
Satz2 = Split(Satz(n), "+")
For nn = 0 To UBound(Satz2)
ReDim Preserve Satz3(anz)
Satz3(anz) = Satz2(nn)
anz = anz + 1
Next nn
Next n
pos = Application.Caller.Column - zelle.Column - 1
tt = IIf(UBound(Satz3) < pos, "", Satz3(pos))
End Function

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
Funktioniert Klasse! Vielen Dank!
15.02.2006 11:32:39
Andrew
Hallo Reinhard,
vielen Dank für deine Hilfe. Dein VBA-Code arbeitet hervorragend. Ich habe in die Zelle einfach geschrieben =tt(Zelle) und es funktioniert einwandfrei!
Dein Code ist echt klasse. Das hat mir auf jeden Fall geholfen. Vielen Dank dafür.
Gruß
Andrew
und nun noch ohne VBA
14.02.2006 20:01:26
MichaV
Hallo,
hier interessehalber noch eine Lösung ohne VBA.
AW: und nun noch ohne VBA
15.02.2006 07:33:41
schauan
... Formel funktioniert perfekt.
Grüße, Andre
AW: und nun noch ohne VBA
15.02.2006 21:20:38
MichaV
Hallo Andrew,
Fehler von mir. Stelle den Cursor in B1 und vergib den besagten Namen:
string bezieht sich auf:

=" "&GLÄTTEN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(ZELLE.ZUORDNEN(6;Tabelle1!$A1);"+";" ");"-";" -");"/";" ");"*";" ");":";" ");"=";" "))&" "

Sorry!
Gruß- Micha
AW: und nun noch ohne VBA
16.02.2006 07:45:44
schauan
Hallo Micha,
wo der Cursor steht ist nicht unbedingt die Ursache für die Fehlermeldung. Wenn er in einer anderen Zelle steht wird nix oder ein Teil von dem was sonst drinsteht als Ergebnis angezeigt. Eventuell hat er sich in der Formel verschrieben.
AW: und nun noch ohne VBA
16.02.2006 08:02:56
schauan
Hallo Micha,
wo der Cursor steht ist nicht unbedingt die Ursache für die Fehlermeldung. Wenn er in einer anderen Zelle steht wird nix oder ein Teil von dem was sonst drinsteht als Ergebnis angezeigt. Eventuell hat er sich in der Formel verschrieben.
AW: Mehrere Zahlen aus einer Zelle auslesen
14.02.2006 21:07:02
bst
Auch just for fun,
und noch eine Variante mit RegEx.
cu, Bernd
--
Option Explicit

Sub SplitRange()
Dim cell As Range, re As Object, mc As Object, i%
Set re = CreateObject("vbscript.regexp")
re.Pattern = "-?\d+"
re.Global = True
For Each cell In Selection
Set mc = re.Execute(cell.FormulaLocal)
For i = 0 To mc.Count - 1
cell.Offset(0, i + 1) = mc(i)
Next
Next
Set mc = Nothing
Set re = Nothing
End Sub

AW: Mehrere Zahlen aus einer Zelle auslesen
14.02.2006 23:17:17
Tim
Laut EU-Richtlinie sind Reguläre Ausdrücke nur in VB-Net legal! MS besitzt die Rechte
und droht härteste Verfolgung an.
Grüße Tim
AW: Mehrere Zahlen aus einer Zelle auslesen
14.02.2006 23:59:45
Reinhard
Hallo Tim,
ich bin vba-Laie, kenne/kannte deshalb regex nicht, und kenn vb.net nur vom Namen her dass es das gibt.
Soll das heissen, ich hab legal Excel2000 und dementsprechendes vba, ich fnde einen Codeschnitzel im Internet , der das macht was ich will , und da ist halt regex oder was anderes drin was anscheinend verboten ist, ich mache mich bei Benutzung strafbar?
Das hätte doch MS verhindern können indem regex in vba nicht funktioniert.
Blick da grad nicht durch.
Hast du da weitergehende Informationen? Bitte keine 520 Seitige EU-Richlinie:-)
Gruß
Reinhard
AW: Mehrere Zahlen aus einer Zelle auslesen
15.02.2006 07:51:16
schauan
Hallo Reinhard,
... ist doch noch gar nicht April. Da BillyBoy auch die Rechte an vbscript gehören müsste Mickysoft sich ja selbst verklagen ;-))) Und dann noch die armen user anderer Programmiersprachen und Betriebssysteme. Also lasse Tim mal die 520 Seiten hier einstellen, aber bitte reich bebildert und in bester Druckqualität - und Durchführungsbestimmungen und Aktenzeichen nicht vergessen ...
Alle Angaben wie immer ohne Gewähr - sagte schon die Lottofee.
Grüße, Andre
AW: EU-Richtlinie ;-)
15.02.2006 08:47:03
bst
Morgen Tim,
Mir scheint Du bist da auf einen Hoax hereingefallen. Es handelt sich bei dieser Mitteilung vielmehr um einen Versuch des dunklen Imperiums die Effektivität der Programmierer zu minimieren.
One OS to rule them all, One OS to find them,
One OS to bring them all and in the darkness bind them.
cu, Bernd
--
No letters of the alphabet were harmed in the creation of this message.

77 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige