Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

als Text gespeicherte Zahlen

Forumthread: als Text gespeicherte Zahlen

als Text gespeicherte Zahlen
30.09.2025 15:37:26
Christian
Hallo,

warum haben bei mir alle Zahlen, die das Makro in die Tabelle einträgt den Hinweis, dass es sich dabei um als Text gespeicherte Zahlen handelt?

Was hab ich da bei dem Makro falsch gemacht?

Danke
Christian

https://www.herber.de/bbs/user/179087.xlsm
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: als Text gespeicherte Zahlen
30.09.2025 15:44:48
Alwin Weisangler
Hallo Christian,

weil du mit Dim results(1 To 6) As String als Text in die Zelle schreibst.

Gruß Uwe
AW: als Text gespeicherte Zahlen
30.09.2025 15:47:15
Christian
Hallo Uwe, Dankeschön..

Was muss ich dann machen un es als Prozentzahl mit 1 Nachkommastelle in die Zelle zu schreiben?

Danke
Christian
AW: als Text gespeicherte Zahlen
30.09.2025 16:04:42
BoskoBiati
Hi,

da reicht der Code:

Sub BerechneProzentInZeile1()

Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("1P") ' Blatt, auf dem berechnet wird
Dim loa As Long

Dim vals
Dim results As Double
For loa = 0 To 5
vals = ws.Cells(1, "Z").Offset(0, loa * 2) ' Z1
If IsNumeric(vals) And vals > 0 Then
results = vals / 300
Else
results = 0
End If
ws.Cells(1, "Z").Offset(0, loa * 2 + 1) = Format(results, "#0.00%")
Next
MsgBox "Prozentwerte in Zeile 1 berechnet.", vbInformation
End Sub


Gruß

Edgar
Anzeige
AW: als Text gespeicherte Zahlen
30.09.2025 16:15:52
BoskoBiati
Hallo,

kleine Änderung, da der Code auch nur Texte liefert:

Sub BerechneProzentInZeile1()

Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("1P") ' Blatt, auf dem berechnet wird
Dim loa As Long

Dim vals
Dim results As Double
For loa = 0 To 5
vals = ws.Cells(1, "Z").Offset(0, loa * 2) ' Z1
If IsNumeric(vals) And vals > 0 Then
results = vals / 300
Else
results = 0
End If
ws.Cells(1, "Z").Offset(0, loa * 2 + 1) = results
ws.Cells(1, "Z").Offset(0, loa * 2 + 1).NumberFormat = "#.00%"
Next
MsgBox "Prozentwerte in Zeile 1 berechnet.", vbInformation
End Sub

Gruß

Edgar
Anzeige
AW: als Text gespeicherte Zahlen
30.09.2025 17:57:18
Christian
hallo Edgar, funktioniert, vielen Dank
Christian
=Format(results....)
30.09.2025 16:17:48
Uduuh
Hallo Edgar,
ws.Cells(1, "Z").Offset(0, loa * 2 + 1) = Format(results, "#0.00%")

macht Text aus den Zahlen.

Gruß aus'm Pott
Udo
AW: =Format(results....)
30.09.2025 16:21:27
BoskoBiati
Hallo Udo,

danke für den Hinweis.

Gruß

Edgar
Anzeige
AW: als Text gespeicherte Zahlen
30.09.2025 16:11:16
Alwin Weisangler
deine Prozedur nur passend geändert:


Sub BerechneProzentInZeile1()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("1P") ' Blatt, auf dem berechnet wird

Dim vals(1 To 6) As Variant
Dim results(1 To 6) As Double

' Werte aus Zeile 1
vals(1) = ws.Cells(1, "Z").Value ' Z1
vals(2) = ws.Cells(1, "AB").Value ' AB1
vals(3) = ws.Cells(1, "AD").Value ' AD1
vals(4) = ws.Cells(1, "AF").Value ' AF1
vals(5) = ws.Cells(1, "AH").Value ' AH1
vals(6) = ws.Cells(1, "AJ").Value ' AJ1

' Berechnung 1/300 und Formatierung
Dim i As Long
For i = 1 To 6
If IsNumeric(vals(i)) And vals(i) > 0 Then
results(i) = vals(i) / 300

Else
results(i) = 0
End If
Next i

' Ergebnisse in AA, AC, AE, AG, AI, AK schreiben
ws.Cells(1, "AA").Value = results(1)
ws.Cells(1, "AA").NumberFormat = "0.0%"
ws.Cells(1, "AC").Value = results(2)
ws.Cells(1, "AC").NumberFormat = "0.0%"
ws.Cells(1, "AE").Value = results(3)
ws.Cells(1, "AE").NumberFormat = "0.0%"
ws.Cells(1, "AG").Value = results(4)
ws.Cells(1, "AG").NumberFormat = "0.0%"
ws.Cells(1, "AI").Value = results(5)
ws.Cells(1, "AG").NumberFormat = "0.00%"
ws.Cells(1, "AK").Value = results(6)
ws.Cells(1, "AG").NumberFormat = "0.0%"

MsgBox "Prozentwerte in Zeile 1 berechnet.", vbInformation
End Sub


Gruß Uwe
Anzeige
AW: als Text gespeicherte Zahlen
30.09.2025 16:14:30
Alwin Weisangler
sorry, die Ausgabe in die Zellen natürlich so:



ws.Cells(1, "AA").Value = results(1)
ws.Cells(1, "AA").NumberFormat = "0.0%"
ws.Cells(1, "AC").Value = results(2)
ws.Cells(1, "AC").NumberFormat = "0.0%"
ws.Cells(1, "AE").Value = results(3)
ws.Cells(1, "AE").NumberFormat = "0.0%"
ws.Cells(1, "AG").Value = results(4)
ws.Cells(1, "AG").NumberFormat = "0.0%"
ws.Cells(1, "AI").Value = results(5)
ws.Cells(1, "AI").NumberFormat = "0.00%"
ws.Cells(1, "AK").Value = results(6)
ws.Cells(1, "AK").NumberFormat = "0.0%"


Gruß Uwe
Anzeige
AW: als Text gespeicherte Zahlen
30.09.2025 17:09:03
Alwin Weisangler
oder so:



Sub BerechneProzentInZeile()
Dim i&, arrW(): arrW = Tabelle1.Range("Z1:AK1").Value
For i = LBound(arrW, 2) To UBound(arrW, 2) Step 2
arrW(1, i + 1) = arrW(1, i) / 300
Next
Tabelle1.Range("Z1").Resize(1, UBound(arrW, 2)) = arrW
Tabelle1.Range("AA1,AC1,AE1,AG1,AI1,AK1").NumberFormat = "0.0%"
End Sub


Gruß Uwe
Anzeige
zur Ergänzung
30.09.2025 17:54:25
Alwin Weisangler
was vielleicht auch noch Sinn macht, wäre in der Schleife so:


arrW(1, i + 1) = IIf(arrW(1, i) > 0, arrW(1, i) / 300, "")

oder:


arrW(1, i + 1) = IIf(arrW(1, i) > 0, arrW(1, i) / 300, "-")


Gruß Uwe
Anzeige
AW: zur Ergänzung
30.09.2025 18:00:10
Christian
Hallo Uwe, auch deine beiden Vorschläge funktoinieren. Vielen Dank
Christian
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18