Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
840to844
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
840to844
840to844
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
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

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

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige