Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VBA: Text -> Zahl

10 views
Skip to first unread message

Alexander Keune

unread,
Aug 20, 2002, 4:58:34 AM8/20/02
to
Hallo!
Ich importiere per VBA Daten aus AutoCAD 14 (Attribute) und habe nun das
Problem, dass die Zahlen von Excel offenbar als Text behandelt werden. Wie
kann ich die mit VBA in Zahlen umwandeln? Ich möchte nicht bei mehreren
Tausend Werten in etlichen Spalten F2 und Enter drücken. ;-)

Danke für alle Tipps! :-)

Alex

Ulli Tolksdorf

unread,
Aug 20, 2002, 6:07:04 AM8/20/02
to
Hi!

Folgendes Makro dürfte Dein Problem lösen, wenn du es auf
VBA Basis haben möchtest;)

Sub test()
Dim ws As Worksheet
Dim dblZ As Double
Dim rngB As Range
Dim intX As Integer
Dim strColumnDef As String

strColumnDef = "A"
Set ws = ActiveSheet

With ws
For intX = 1 To .Range(strColumnDef & _
.Range(strColumnDef & ws.Rows.Count) _
.End(xlUp).Row).Row
Set rngB = .Range(strColumnDef & intX)
With rngB
If IsNumeric(.Value) Then
dblZ = CDbl(.Value)
.NumberFormat = "General"
.Value = dblZ
End If
End With
Next
End With

End Sub

Du mußt im Prinzip nur noch oben die Spalte einstellen.

Alexander Keune schrieb:

Frank Arendt-Theilen

unread,
Aug 20, 2002, 7:03:10 AM8/20/02
to
Hallo Alexander,
- Trage in eine leere Zelle den Wert 1 (Eins) ein.
- Kopiere diese Zelle
- Markiere alle relevanten Zellen/das gesamte Tabellenblatt
- Menü Bearbeiten/Inahlte einfügen/Optionsfeld: Multiplizieren, OK

Zeichne den Vorgang per Makro-Rekorder auf

MfG Frank
_____________________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
eMail: Thei...@t-online.de, Homepage: http://www.xl-faq.de

Thomas Ramel

unread,
Aug 20, 2002, 7:55:27 AM8/20/02
to
Grüezi Alexander

Alexander Keune schrieb:

Hier Variante 3:

Markiere die Spalte mit den Werten (nur eine auf's mal) und stelle das
Zellenformat 'Standart' oder 'Zahl' ein; dann, ohne die Markierung zu
verändern --> Menü Daten --> Text in Spalten --> [Fertig stellen]. Nun
sind die Werte als Zahlen in den Zellen.

Für mehrere Spalten miteinander kannst Du das folgende Makro einetzen
(eine Ableitung aus obiger Vorgehensweise):

Sub TextSpalten_ins_Zahlenformat()
'Wandelt als Text vorliegende Zahlenwerte in 'echte' Zahlen um
'Spaltenbereich markieren (auch zu viele) und starten
Dim Spalte As Range
On Error Resume Next
For Each Spalte In Selection.Columns
'Hier ev. das Zahlenformat dierekt eingeben: "0.00"
Columns(Spalte.Column).NumberFormat = "General"
Columns(Spalte.Column).TextToColumns
Next
End Sub


--
Mit freundlichen Grüssen

Thomas Ramel
- MVP für Microsoft-Excel -

http://www.4853.ch/Schlesinger

Alexander Keune

unread,
Aug 20, 2002, 8:40:48 AM8/20/02
to
Danke für alle Antworten! :-)

Ich hab mich an Thomas' 2. Variante gehalten und es jetzt so eingebaut:

...

Columns("C:C").NumberFormat = "General"
Columns("C:C").TextToColumns
Columns("C:C").NumberFormat = "#,##0.00"" m²"""

...


Funktioniert einwandfrei! :-) Danke!

Alex

Thomas Ramel

unread,
Aug 20, 2002, 8:53:47 AM8/20/02
to
Grüezi Alexander

Alexander Keune schrieb:
>

> Danke für alle Antworten! :-)
>
> Ich hab mich an Thomas' 2. Variante gehalten und es jetzt so eingebaut:

Das freut mich natürlcih ;-)

> ...
>
> Columns("C:C").NumberFormat = "General"
> Columns("C:C").TextToColumns
> Columns("C:C").NumberFormat = "#,##0.00"" m²"""
>
> ...
>
> Funktioniert einwandfrei! :-) Danke!

Es geht sogar noch etwas kürzer; Du kannst das gewünschte Format direkt
zuweisen und dann umwandeln:

Sub TextSpalten_ins_Zahlenformat()
'Wandelt als Text vorliegende Zahlenwerte in 'echte' Zahlen um

Columns("C:C").NumberFormat = "#,##0.00"" m²"""

Columns("C:C").TextToColumns

0 new messages