Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zelleninhalt aufteilen in einzelene Zellen

Forumthread: Zelleninhalt aufteilen in einzelene Zellen

Zelleninhalt aufteilen in einzelene Zellen
14.10.2003 10:07:33
edie
Hallo zusammen,

im nachfolgenden VBA-Code wird eine 4-stellige Zahl (z. B. 12,03)
in der einzelne Zellen aufgeteilt.

Wenn ich aber eine 3-stellige Zahl eingebe (z. B. 9,99) funktioniert
das Makro nicht.

Das Makro soll unabhängig von der Zahllänge in die einzelne Zellen
aufgeteilt werden. Wichtig dabei daß in der vorletzten Zelle
das Komma und die Zahl in einer Zelle stehen (z.B. ,0).


Sub ZahlAufteilen2()
Dim z As Range
For Each z In Selection
z.Offset(0, 3).Value = Right(z.Value, 1)
z.Offset(0, 2).Value = Mid(z.Value, 3, 2)
z.Offset(0, 1).Value = Mid(z.Value, 2, 1)
z.Value = Mid(z.Value, 1, 1)
Next z
End Sub


Kann mir jemand helfen?

Vielen Dank im Voraus

Grüße
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelleninhalt aufteilen in einzelene Zellen
14.10.2003 10:53:19
IngoG
Hallo edie,
versuchs mal mit mathe-functionen:

For Each z In Selection
z.Offset(0, 1).Value = int(z.Value-int(z.value/10)*10)
z.Offset(0, 2).Value = "," & int((z.value-int(z.value))*10)
z.Offset(0, 3).Value = int((z.value*10-int(z.value*10))*10)
z.Value = int(z.Value/10)
Next z
End Sub

es sollte funktionieren, wenn Du in der selection nur zahlen hast.
Du kannst es ja ausprobieren und dich nochmal melden

Gruß Ingo
Anzeige
AW: Vielen Dank es funktioniert
14.10.2003 11:09:45
edie
Vielen Dank es funktioniert.

Grüße
AW: Zelleninhalt aufteilen in einzelene Zellen
14.10.2003 11:10:18
RAnton
Hallo edie

hier der modifizierte Code


Sub ZahlAufteilen2()
Dim z As Range
Dim i As Integer
For Each z In Selection
i = InStr(1, z.Value, ",")
On Error Resume Next
z.Offset(, 1).Resize(1, 4).Value = ""
z.Offset(0, 4).Value = Mid(z.Value, i + 2, 1)
z.Offset(0, 3).Value = Mid(z.Value, i, 2)
z.Offset(0, 2).Value = Mid(z.Value, i - 1, 1)
z.Offset(0, 1).Value = Mid(z.Value, i - 2, 1)
Next z
End Sub


Achte bitte drauf, daß ich deinen Offset um 1 nach rechts geschoben habe, damit ich das Ergebnis kontrollieren kann.

Gruß
RAnton
Anzeige
AW: Zelleninhalt aufteilen in einzelene Zellen
14.10.2003 11:43:05
Dan
Hallo Edie
versuch es mit diesem code. Ich weiss nicht genau ob es so richtig ist, also testen :-).
Aber im excel gibt es auch eine moglichkeit : wahle Daten/Text in die Spalten aus ... es ist mogliche weise das was du brauchst :-).
Gruss dich, Dan.

Public

Sub WertInEinzelneZellenAufteilen()
Dim Wert$, WertLen%, CharNr%, Char$, NeueSp%, Zelle As Range, Zellen As Range
' testen ob zellen ausgewahlt sind
If (TypeName(Application.Selection) <> "Range") Then
MsgBox "Keine Zellen ausgewahlt.": End
Else
' referenz an die ausgawahlte selection setzen
Set Zellen = Application.Selection
End If
' alle zellen durchgehen und Wert$ In Einzelne Zellen Aufteilen
For Each Zelle In Zellen
Wert$ = CStr(Zelle.Value)
WertLen% = Len(Wert$)
' wenn ein Komma da ist, brauchen wir eine zelle weniger
If (InStr(1, Wert$, ",")) Then
' in diese spalte wird der neue character eingefugt
NeueSp% = Zelle.Column + WertLen% - 2
Else
NeueSp% = Zelle.Column + WertLen% - 1
End If
' fur jeden character in Wert$, beginnend mit dem letzten
For CharNr% = -WertLen% To -1
Char$ = Mid(Wert$, -CharNr%, 1)
' testen, ob es sich um Komma handelt oder nicht
If (Char$ <> ",") Then
Cells(Zelle.Row, NeueSp%).Value = Char$
NeueSp% = NeueSp% - 1
Else
Cells(Zelle.Row, NeueSp% + 1).Value = Char$ & Cells(Zelle.Row, NeueSp% + 1).Value
End If
Next CharNr%
Next Zelle
End Sub

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige