AW: VBA-Problem: Zahl umwandeln
29.01.2007 22:02:44
ingUR
Hallo, Peter,
Deine Aufgabe läßt sich insofern nicht eindeutig lösen, als Du zwar Zahlen schreiben willst, jedoch die Darstellung im Format "000" ausgegeben werden sollen.
Wenn in den Spalten H und I Zahlen stehen sollen, die als Texttyp eingetragen werden sollen, dann wären die Tabbelnspalten entsprechend zu formatieren:
alternativ mit VBA: Columns("H:I").NumberFormat = "@"
In diese Zellen kanst Du dan mit folgendem VBA-Code die Texteinträge vonehmen:
Option Explicit
'VBA-Prozedur in EXCEL-Objekt Tabelle1 (Sheet1)
Private Sub CommandButton1_Click()
Dim rngA As Range
For Each rngA In Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row)
If Len(rngA) = 7 Then
rngA.Offset(0, 7) = Left(rngA, InStr(rngA, ".") - 1)
rngA.Offset(0, 8) = Mid(rngA, InStr(rngA, ".") + 1)
End If
Next rngA
End Sub
Willst Du jedoch in den Spalten H und I Einträge vom Typ Zahlen erhalten, dann kannst Du ebenfalls über das Zellenformat gehen, wo Du den Benutzerdefeniert den Eintrag vorsiehst: "000". Alternativ steht dafür der VBA-Code:
Columns("H:I").NumberFormat = "000"
Der Programmcode zum Trennen der Teile bleibt unverändert.
Die Prozedur könnte allerdings auch ausgeführt werden, sobald das Ereignis fesgestellt wird, dass sich ein Eintrag in Zelle der Spalte A ändert:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row > 2 Then
If Len(Target) = 7 Then
Target.Offset(0, 7) = Left(Target, InStr(Target, ".") - 1)
Target.Offset(0, 8) = Mid(Target, InStr(Target, ".") + 1)
End If
End If
End Sub
Gruß,
Uwe