Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zahlen mit Leeerstellen in Zellen aufteilen

Zahlen mit Leeerstellen in Zellen aufteilen
Dieter(Drummer)
Guten Morgen VBA Spezialisten,
im aktiven Sheet stehen in der Zelle B28 (Zellformat: Standard) 6 zweistellige Zahlen, die zwischen den Zahlen jeweils 2 Leerstellen haben. Die erste 2stellige Zahl soll in die B26, die Zweite 2stellige Zahl in C26 usw ... (Zellformat: Standard).
Nun suche ich ein Makro, dass die Zahlen - ohne Leerstellen - in die die Zellen B26, C26, D26, E26, F26 und G26 einfügt. Das Makro löse ich dann mit einem Button aus.
Musterdatei anbei: https://www.herber.de/bbs/user/78545.xls
Freut mich, wenn ich eine Hilfe bekomme und Danke für's drum kümmern.
Gruß, Dieter(Drummer)
AW: Zahlen mit Leeerstellen in Zellen aufteilen
22.01.2012 10:26:22
JoWe
Hallo Dieter,
so vllt:
Sub Makro1()
'aufgezeichnet mit dem Makrorekorder, das kannst Du auch
Range("B28").Select
Application.CutCopyMode = False
Selection.TextToColumns Destination:=Range("B28"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1)),  _
_
TrailingMinusNumbers:=True
Range("B28:G28").Select
Selection.Copy
Range("B26").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Gruß
Jochen
Anzeige
AW: Zahlen mit Leeerstellen in Zellen aufteilen
22.01.2012 10:36:49
Dieter(Drummer)
Hi Jochen,
Danke für schnelle Rückmeldung. Bei deiner Aufzeichnung (Makro1) wird das Makro unterbrcohen mit "Kompilierungsfehler und diese Zrilen werden markiert:
Selection.TextToColumns Destination:=Range("B28"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1)),
Die Formel von Uwe ist wohl schon eine gute Lösung und funktioniert.
Danke für deine Hilfe und Gruß
Dieter(Drummer)
Anzeige
AW: Du hast den Code fehlerhaft kopiert oT
22.01.2012 10:44:00
JoWe
AW: Hast recht, Jochen ... mein Fehler!
22.01.2012 10:52:00
Dieter(Drummer)
Hi Jochen,
Sorry! War meine Fehler. Es funktioniert prima, auch bei 1stelligen Zahlen. Es mit dem Makrorekorder zu probieren, darauf war ich garnicht gekommen. War wohl zu früh für mich ;-).
Danke für deine Hilfe und Gruß
Dieter(Drummer)
AW: Zahlen mit Leeerstellen in Zellen aufteilen
22.01.2012 10:26:39
Uwe
Hallo Dieter,
warum nicht per Formel?
In B26 diese Formel:
=TEIL($B$28;SPALTE(A1)*4-3;2)
und nach rechts kopieren.
Wäre das nichts für Dich?
Gruß
Uwe
(:o)
AW: Danke Uwe. Prima Formellösung
22.01.2012 10:38:57
Dieter(Drummer)
Hi Uwe,
Danke für deine schnelle und gut funtionierende Formellösung.
Mit Gruß
Dieter(Drummer)
AW: Uwe, noch ein Problem ...
22.01.2012 10:44:18
Dieter(Drummer)
... hatte nicht bedacht, dass auch mal 1stellige und/oder 2stellige Zahlen (aber insgesamt immer 6 Zahlen) in B6 stehen können. Es sind aber immer 2 Leerstellen dazwischen.
Geht das auch per Formel? Wenn ja wie?
Gruß
Dieter(Drummer)
Anzeige
Das hatte ich erwartet ;o)
22.01.2012 11:03:42
Matthias
Hallo
Warum schreibst Du denn erst:
Zitat
im aktiven Sheet stehen in der Zelle B28 (Zellformat: Standard) 6 zweistellige Zahlen
und formatierst zweistellige auch noch fett ;o)
Du solltest besser mal posten, wie Du B28 mit dem String füllst, denn das könnte man sicher dort gleich mit erledigen.
Übrigens wäre eine sortierte Darstellung ansehlicher ;-)
Gruß Matthias
AW: Errare humanum est ...
22.01.2012 11:15:47
Dieter(Drummer)
... Irren ist menschlich ...
hast recht, Matthias.
In B28 werden die Zahlen aus der Lottoseite kopiert und werden also in B28 aus der Zwischenablage eingefügt. Ob die Zahlen (6 Zahlen können mal 1stellig oder auch 2stellig sein, aber immer 2 Leerstellen dazwischen) direkt in B26 bis G26 eingefügt werden können, hatte ich nicht bedacht.
Zahlen können also so oder so aussehen: 3 15 17 19 23 43 oder 2 4 19 21 22 25. Alle Kombinationen zwischern 1 und 49 sind möglich aber immer in aufsteigender Folge.
Hatte nicht bedacht, das es so komplizierter wird. Ich sollte vor dem Posten das Problem besser Vordenken.
Freut mich, wenn es eine Lösung gibt.
Gruß
Dieter(Drummer)
Anzeige
AW: Errare humanum est ...
22.01.2012 11:21:19
Christian
hallo Dieter,
dann könntest du den String der "Lotto-Seite" auch gleich splitten und in deine Felder eintragen (ich gehe davon aus, dass du die Web-Seite per VBA ausliest.
Zu deiner Frage:
Option Explicit
Sub TestIt()
Cells(26, 2).Resize(, 6) = Split(Replace(Cells(28, 2), "  ", " "))
End Sub

Gruß
Christian
Genau so ;o) kwT
22.01.2012 11:24:31
Matthias
AW: Genau so ;o) kwT
22.01.2012 11:52:50
Dieter(Drummer)
Hallo Christian,
Danke für dein Makro. In der Kürze liegt die Würze und es funktioniert prima!
Die Lott-Webiste lese ich nicht per VBA aus, dafür fehlt mir die Qualifikation.
Danke nochmal und Gruß
Dieter(Drummer
Anzeige
excelformeln
22.01.2012 11:26:33
Erich
Hi Dieter,
sieh mal http://www.excelformeln.de/formeln.html?welcher=326
Das steht das (leicht abgewandelt):
 ABCDEFG
212 3 45 6 78 9123456789

Formeln der Tabelle
ZelleFormel
B2=1*TEIL(LINKS(" "&$A$2;FINDEN("##";WECHSELN(" "&$A$2;" ";"##";SPALTE(B1))&"##")-1); FINDEN("##";WECHSELN(" "&$A$2;" ";"##";SPALTE(A1))&"##")+1;99)
C2=1*TEIL(LINKS(" "&$A$2;FINDEN("##";WECHSELN(" "&$A$2;" ";"##";SPALTE(C1))&"##")-1); FINDEN("##";WECHSELN(" "&$A$2;" ";"##";SPALTE(B1))&"##")+1;99)

Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: Danke Erich ...
22.01.2012 11:58:26
Dieter(Drummer)
... ich habe mich für die Lösung von MatthiasL entschieden. Sie ist knapp, kurz und funktioniert prima.
Danke dir für deine Hilfe und
Gruß
Dieter(Drummer)
Du meinst sicher die Lösung v. Christian! ;o) kwT
22.01.2012 12:00:50
Matthias
AW: Du hast Recht ... Christians ist ok ...
22.01.2012 12:06:55
Dieter(Drummer)
... Sorry, Lösung von Christian ist die, die ich nehme.
Noch einen schöne Sonntag und allen meinen Dank für die erfolgreichen Hilfen.
Gruß
DieterDrummer
passt schon - ist auch deine Lösung ...
22.01.2012 12:36:48
Christian
... bin dir ja "ins Wort gefallen", bzw in den Thread... sorry about that.
@Dieter: wenn du ggf. Leerzeichen insbesondere am Anfang oder am Ende abfangen willst - beim _
manuellen Kopieren von 'ner Web-Seite kann das ja schnell mal passieren, dann schneide diese in _
der Zelle "Cells(28, 2)" mit "Trim" ab, also zB:

Option Explicit
Sub TestIt()
Cells(26, 2).Resize(, 6) = Split(Replace(Trim(Cells(28, 2)), "  ", " "))
End Sub

und wenn die Werte als Zahlen und nicht als String benötigst, dann zB so:

Sub TestIt_v2()
With Cells(26, 2).Resize(, 6)
.Value = Split(Replace(Trim(Cells(28, 2)), "  ", " "))
.Value = .Value
End With
End Sub

Grüße
Christian
Anzeige
AW: Danke Christian ...
22.01.2012 12:56:29
Dieter(Drummer)
... das lege ich mir mal in mein Arbeitsarchiv.
Gruß und einen schönen Sonntag
Dieter(Drummer)
AW: @Christian
23.01.2012 18:31:23
Dieter(Drummer)
Hi Christian,
habe deine Makrolösung 2 genoomen, da ich die Werte als zahl benötige und nicht als String. Es hat mit Bedingten Formaten zu tun, da die Zellen mit den gezogenen Zahlen (innerhalb der 12 Tipps) gelb markiert werden.
Danke dir nochmal für deine Lösung.
Gruß
Dieter(Drummer)

340 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige