in einer Tabelle habe ich Nummern mit führenden Nullen die als Text in den
Zellen stehen.
Durch ein kleines grünes Dreieck und ein Symbol mit "!" wird mit dies als
"Fehler" angezeigt. Ich habe hier die Möglichkeit die Inhalte in eine Zahl
umzuformatieren.
Kann ich diese Option auch per VBA aufrufen? Wenn ich die Zelle einfach
nur um-formatiere, auch als Zahl, dann ändert sich nichts an dem Problem,
und "Makro aufzeichnen" geht in dieser Situation leider auch nicht.
Vielen Dank und Viele Grüße
Martin
Du musst in VBA das Format umstellen *und* dann die Zahl nochmal in
die Zelle schreiben. Etwa so:
[A1].NumberFormat = "General"
[A1] = Val([A1])
Peter
> Du musst in VBA das Format umstellen *und* dann die Zahl nochmal in
> die Zelle schreiben. Etwa so:
>
> [A1].NumberFormat = "General"
> [A1] = Val([A1])
Ui, bei ca 2000 Zeilen 4 Spalten ist das vielleicht ein wenig zu
Zeitaufwendig, gibt es ein schnelleres Verfahren?
For zeile = 1 To 2000
For spalte = 1 To 4
If Trim(Cells(zeile, spalte)) <> "" Then
Cells(zeile, spalte).NumberFormat = "General"
Cells(zeile, spalte) = Val(Cells(zeile, spalte))
End If
Next
Next
Denk dran, vorher dass "," durch ein "." zu ersetzen, falls Du
"deutsche" Dezimal-Zahlen als Text hast.
Peter
Im Prinzip steht da nur ein Apostroph davor, daher passt er die Zahl nicht
an. Kann an das irgendwie ohne lesen und neu schreiben entfernen?
"Martin Jaeger" <kein...@keinepost.xyz> schrieb im Newsbeitrag
news:op.t5b9j...@lapmkr.dus.fact.prv...
muß es VBA sein? so ginge es auch recht schnell
- schreibe in irgendeine Zelle eine 1 und kopiere diese
- markiere deinen Bereich bzw. auch gleich die ganzen 4-Spalten
- rechter Mausklick -> Inhalte einfügen ->Vorgang multiplizieren
- Ok
--
mfG
Wolfgang Habernoll
[ Win XP Home SP-2 , XL2002 ]
Martin Jaeger schrieb am 22.01.2008
*Muss* es denn ein Makro sein?
- Spalte markieren
- Format 'Standard' oder 'Zahl' vergeben
- Spalte weiterhin markiert lassen
- Menü: 'Daten'
- Text in Spalten
- [Fertig stellen]
Das müsste reichen um die Daten in berechenbare Werte umzuwandeln.
Mit freundlichen Grüssen
Thomas Ramel
--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2003 SP-2]
Microsoft Excel - Die ExpertenTipps
> ...
Danke für die Hilfe.
Ich lade jetzt jeden Wert und schreibe ihn neu. Mal schauen wie lange das
dann mit Echtdaten dauert.
Viele Grüße
Martin
8000 Zellen dauern bei mir 2,565 Sekunden (Centrino 1,8 DualCore)
Private Declare Function GetTickCount Lib "kernel32" () As Long
Sub test()
ticks = GetTickCount
For zeile = 1 To 2000
For spalte = 1 To 4
If Trim(Cells(zeile, spalte)) <> "" Then
Cells(zeile, spalte).NumberFormat = "General"
Cells(zeile, spalte) = Val(Replace(Cells(zeile, spalte),
",", "."))
End If
Next
Next
MsgBox ((GetTickCount - ticks) / 1000)
End Sub