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

Forumthread: VBA-Problem: Zahl umwandeln

VBA-Problem: Zahl umwandeln
29.01.2007 20:34:31
Peter
Hallo alle zusammen,
in Spalte "A" meines Tabellenblatts "Tabelle1" mit dem Dateinamen "Daten" stehen Zahlen in folgendem Format: z.B. 001.002 (immer 3 Stellen dann ein Punkt und wieder 3 Stellen).
Ich möchte den ersten Teil jeder Zahl, also z.B. 001, in gleicher Zeile aber in Spalte "I" ausgworfen bekommen. Den zweiten Teil, also z.B. 002, auch in gleicher Zeile jedoch in Spalte "H".
Der Code müßte so organisiert sein, daß ich in Spalte "A" immer neue Daten hineinkopieren kann, dann auf den Button drücke und die neuen Zahlen sind da.
Es wird auch so sein, daß manchmal leere Zellen oder Zellen mit 0 in Spalte "A" sein werden.
Meine Datei: https://www.herber.de/bbs/user/39988.xls
Kann mir jemand bei der Programmierung helfen?
Grüße aus Berlin
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
funktioniert
29.01.2007 21:55:46
Peter
Danke Case,
habs mir genau so vorgestellt.
Grüße aus Berlin
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
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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