Zellinhalt splitten

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Zellinhalt splitten
von: ewald
Geschrieben am: 29.10.2003 14:54:13

Hallo Forum,

kann mir jemand sagen warum der Code nicht funktioniert?


Sub test()
Dim z As Range
For Each z In Selection
z.Offset(0, -1).Value = Left(z.Value, 1, 1)
Next z
End Sub


In der Zelle sind Zahlen von1 bis 99, Zahlen 1-9
sollen in der Zelle bleiben, Zahlen 10-99 sollen geteilt
werden und zwar rechtsbündig z.B. Zelle B1 hat 10 dann
soll 0 in B1 bleiben und 1 in die A1 versetzt werden.

Hat jemand einen Tipp?

Vielen Dank.

Grüße
10
Bild


Betrifft: AW: Zellinhalt splitten
von: ChrisL
Geschrieben am: 29.10.2003 15:16:36

Hi Ewald

Nicht getestet, aber denke dass..

Left(Cstr(z.Value), 1, 1)

..den Job tun müsste. Left sollte m.E. auf einen String angewendet werden und 'Cstr' wandelt eine Zahl in einen String um.

neben bei: Zitat Forums-FAQ
Fehlerbeschreibungen
Beschränke Dich nicht auf die lapidare Feststellung Excel meldet Fehler; gib die exakte Fehlermeldung an. Stoppt Excel einen VBA-Code, gib die exakte Zeile des Programmabbruchs an.


Gruss
Chris


Bild


Betrifft: AW: Zellinhalt splitten
von: ewald
Geschrieben am: 29.10.2003 15:36:54

Hallo Chris,

Folgede Fehlermeldung: "Falsche Anzahl an Argumenten ober
ungültige Eigenschaftszuweisung"


Sub test()
Dim z As Range
For Each z In Selection
z.Offset(0, -1).Value = Left(CStr(z.Value), 1, 1)
Next z
End Sub


Habe ich richtig den Code geschrieben?

Vielen Dank.

Grüße


Bild


Betrifft: AW: Zellinhalt splitten
von: ChrisL
Geschrieben am: 29.10.2003 16:30:18

Hi Ewald

so ist es richtig...

Option Explicit


Sub test()
Dim z As Range
For Each z In Selection
z.Offset(0, -1).Value = Left(z.Value, 1)
Next z
End Sub



Cstr war quatsch

Gruss
Chris


Bild


Betrifft: AW: Zellinhalt splitten
von: ewald
Geschrieben am: 29.10.2003 19:00:11

Hallo Chris,

leider bleibt in der Zelle die Zahl unverändert stehen.
Beispiel: Zelle B1 hat eine 33 dann wird die Zahl 3 in der A1
ausgegeben, aber in B1 bleibt immer noch die 33 statt nur 3.

Vielen Dank.

Grüße


Bild


Betrifft: AW: Zellinhalt splitten
von: ChrisL
Geschrieben am: 29.10.2003 19:59:43

Hallo Ewald

ja, so ist es programmiert ;-)

Wenn du die Ausgabe in der gleichen Zelle willst, dann schaut es so aus...


Sub test()
Dim z As Range
For Each z In Selection
z.Value = Left(z.Value, 1)
Next z
End Sub



Gruss
Chris


Bild


Betrifft: AW: Zellinhalt splitten
von: ewald
Geschrieben am: 29.10.2003 20:37:20

Hallo Chris,

das Beispiel mit der Zahl 33 war nicht gerade gut.
Nehmen wir eine andere Zahl zum Beispiel-39 in Zelle B1
Ich möchte die Zahl 39 so aufteilen, dass in B1 9 steht
und in A1 die 3, wenn aber in B1 nur eine Zahl 5 steht,
dann soll sie unverändert inB1 bleiben.

Vielen Dank für die Bemühung.

Grüße


Bild


Betrifft: AW: Zellinhalt splitten
von: Reinhard
Geschrieben am: 29.10.2003 21:54:37

Hi Ewald,
probier mal das aus.
Gruß
Reinhard

Sub test()
Dim z As Range
Dim x As Integer
For Each z In Selection
    If z.Column = 1 Then GoTo Fehlerbehandlung
    x = z.Value
    z.Value = CInt(Right(z.Value, 1))
    If Int(x / 10) <> 0 Then z.Offset(0, -1).Value = Int(x / 10)
Next z
Exit Sub
Fehlerbehandlung:
MsgBox "so geht's nich' *gg*"
End Sub
ergibt dann das Folgende:
 Gesplittet   Original
34	5	345
1	2	12
	4	4
1000	5	10005
	0	0
-1	2	-2
-2	4	-14
1	5	15
1	5	12,5
-2	5	-12,5



Bild


Betrifft: AW: Vielen Dank es funktioniert
von: ewald
Geschrieben am: 30.10.2003 07:27:15

Hallo zusammen,

ich Danke für die Hilfe.

Grüße


Bild


Betrifft: Danke für die Rückmeldung o.w.T.
von: Reinhard
Geschrieben am: 30.10.2003 07:58:13

.


Bild


Betrifft: und Merci an ChrisL für die große Vorarbeit :-) oT
von: Reinhard
Geschrieben am: 30.10.2003 08:10:24

.


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Zellinhalt splitten"