Das Archiv des Excel-Forums
VBA-Code modifizieren
Betrifft: VBA-Code modifizieren
von: edie
Geschrieben am: 13.10.2003 10:46:56
Hallo zusammen,
im nachfolgenden VBA-Code wird eine Zahl, Format "00.00",
(z.B. Gewicht,kg 11,03)aus der Tabelle1 in die Tabelle2
kopiert und in Spalten D,E,F und G aufgeteilt.
Wenn ich aber 9,87 eingebe dann steht in der Tabelle2 Spalte D eine
9 in der Spalte E ein , (Komma) und in Spalte F 8 und Spalte G 7.
Wie kann man das erreichen, Komma soll immer in der Spalte F
bzw.zweitletzten Spalte in der gleichen Zelle vor der Zahl stehen?
Die Zelle kann als Text Formatiert werden.
Sub GewichtAufteilen()
Dim wsQuelle As Worksheet, wsZiel As Worksheet
Dim iStartzeile%, lEndzeile&, lZähler&
Dim Gewicht$, Kg$, Gramm$
Set wsQuelle = Worksheets("Tabelle1")
Set wsZiel = Worksheets("Tabelle2")
Application.ScreenUpdating = False
wsQuelle.Activate
iStartzeile = 4 '1.in C4
lEndzeile = Cells(4, 3).End(xlDown).Row
For lZähler = iStartzeile To lEndzeile
Gewicht = Format(Cells(lZähler, 3), "0.00")
Kg = Left(Gewicht, 2) 'Kilogramm auslesen
Gramm = Mid(Gewicht, 4, 2) 'Gramm auslesen
wsZiel.Activate
Cells(lZähler + 8, 4) = Left(Kg, 1)
Cells(lZähler + 8, 5) = Right(Kg, 1)
Cells(lZähler + 8, 6) = Left(Gramm, 1)
Cells(lZähler + 8, 7) = Right(Gramm, 1)
wsQuelle.Activate
Next lZähler
Application.ScreenUpdating = True
End Sub
Kann mir jemand helfen?
Vielen Dank im Voraus.
Grüße
Betrifft: AW: VBA-Code modifizieren
von: RAnton
Geschrieben am: 13.10.2003 11:15:37
Hallo edie
hast dus mal damit versucht?
Gewicht = Format(Cells(lZähler, 3), "00.00")
Gruß
RAnton
Betrifft: AW: VBA-Code modifizieren
von: Willie
Geschrieben am: 13.10.2003 11:15:54
so geht es Gruß Willie
Du mußt eine Null davormachen ich habe die Zeile mit *** gekennzeichnet!
Sub GewichtAufteilen()
Dim wsQuelle As Worksheet, wsZiel As Worksheet
Dim iStartzeile%, lEndzeile&, lZähler&
Dim Gewicht$, Kg$, Gramm$
Set wsQuelle = Worksheets("Tabelle1")
Set wsZiel = Worksheets("Tabelle2")
Application.ScreenUpdating = False
wsQuelle.Activate
iStartzeile = 4 '1.in C4
lEndzeile = Cells(4, 3).End(xlDown).Row
For lZähler = iStartzeile To lEndzeile
Gewicht = Format(Cells(lZähler, 3), "0.00")
Kg = Left("0" & Gewicht, 2) 'Kilogramm auslesen ' ***
Gramm = Mid(Gewicht, 4, 2) 'Gramm auslesen
wsZiel.Activate
Cells(lZähler + 8, 4) = Left(Kg, 1)
Cells(lZähler + 8, 5) = Right(Kg, 1)
Cells(lZähler + 8, 6) = Left(Gramm, 1)
Cells(lZähler + 8, 7) = Right(Gramm, 1)
wsQuelle.Activate
Next lZähler
Application.ScreenUpdating = True
End Sub
Betrifft: AW: VBA-Code modifizieren
von: edie
Geschrieben am: 13.10.2003 12:13:24
Hallo Willie,
es funktioniert nur bedingt, wenn ich 10,23 oder so eingebe,
wird die 1 durch 0 ersetzt.
Das Makro soll flexibel sein Zahlen bis 10 und mehr sollen
ausgelesen und aufgeteilt werden
Vielen Dank trotzdem.
Grüße
Betrifft: AW: VBA-Code modifizieren
von: WernerB.
Geschrieben am: 13.10.2003 12:37:11
Hallo Edie,
wenn die Zellen der Quell-Tabelle das Format "00,00" haben, dann sollte das klappen:
Sub GewichtAufteilen()
Dim wsQuelle As Worksheet, wsZiel As Worksheet
Dim iStartzeile%, lEndzeile&, lZähler&
Dim Gewicht$, Kg$, Gramm$
Set wsQuelle = Worksheets("Tabelle1")
Set wsZiel = Worksheets("Tabelle2")
Application.ScreenUpdating = False
wsQuelle.Activate
iStartzeile = 4 '1.in C4
lEndzeile = Cells(4, 3).End(xlDown).Row
For lZähler = iStartzeile To lEndzeile
Gewicht = Cells(lZähler, 3).Text
Kg = Left(Gewicht, 2) 'Kilogramm auslesen
Gramm = Mid(Gewicht, 4, 2) 'Gramm auslesen
wsZiel.Activate
Cells(lZähler + 8, 4) = Left(Kg, 1)
Cells(lZähler + 8, 5) = Right(Kg, 1)
Cells(lZähler + 8, 6) = "," & Left(Gramm, 1)
Cells(lZähler + 8, 7) = Right(Gramm, 1)
wsQuelle.Activate
Next lZähler
Application.ScreenUpdating = True
End Sub
Viel Erfolg wünscht
WernerB.
P.S.: Das Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter (siehe Forums-FAQ).
Betrifft: AW: Vielen Dank es funktioniert
von: edie
Geschrieben am: 13.10.2003 12:54:22
Hallo Werner
toll es funktioniert.
Vielen Dank.
Grüße
Excel-Beispiele zum Thema " VBA-Code modifizieren"