Anzeige
Archiv - Navigation
1900to1904
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
Inhaltsverzeichnis

String in Numberformat 0.0 ausgeben

String in Numberformat 0.0 ausgeben
25.09.2022 14:07:00
Sebastian
Hallo zusammen,
ich habe ein schönes VBA-Makro, was mir hilft Sporenmessungen aus einer CSV-Datei zu sortieren und zu berechnen und so weiter.
Leider wird ein Wert den ich am Ende auslesen möchte automatisch gerundet (z.B. ein Wert 34,0 dann auf 34). Ich möchte aber 34,0 in meinem Text stehen haben und nicht 34!
Wie kann ich Excel-VBA beibringen, dass der String, denn ich in den Endtext einfüge im Numberformat 0.0 eingefügt wird (auch nach Rundung)
Ich versuche mal verkürzt darzustellen, wie das Makro derzeit arbeitet. Vielleicht könnt ihr mir dann einen Hinweis geben, was ich ändern muss.
Derzeit werden z.B. auf der Grundlage von Rohdaten Längen, Breiten, Mittelwerte und Quotienten von Pilzsporen berechnet und in einer Textzeile ausgegeben.
Zu diesem Zweck habe ich in VBA verschiedene Strings definiert, z.B. für die kürzeste Pilzspore den String "minlaenge". Dieser sucht aus der Spalte der Längenmessung mehrerer Sporen dann die kürzeste Länge heraus und überträgt diese in eine Textzeile an eine bestimmte Stelle. Ergebnis sieht dann so aus:
34-40,6 µm (av. 37,9 µm, SD 2,8 µm) x 11,9-13,9 µm (av. 12,6 µm, SD 1 µm); Q = 2,4-3,4 (av. 3, SD 0,4)(n = 3)
Die 34 habe ich jetzt mal fettgedruckt, das ist meine "minlaenge" die folgendermaßen ermittelt wird

Dim rng1 As Range
Set rng1 = ActiveSheet.Range(ActiveSheet.Cells(3, 2), ActiveSheet.Cells(ActiveSheet.Rows.Count, 2).End(xlUp).Offset(-1, 0))
Dim minlaenge As String
minlaenge = Application.WorksheetFunction.Min(rng1)
Die "minlaenge" hat eigentlich in der Ursprungszelle das Nummernformat 0.0, in der ausgebenen Zeile wie man sieht aber leider NICHT mehr, da steht jetzt 34 statt 34,0
Die gewünschte Textzeile erzeuge ich mit:

ActiveSheet.Range("a" & ActiveSheet.Rows.Count).End(xlUp).Offset(1, 0) = minlaenge & "-" & maxlaenge & " µm (av. " & avlaenge & " µm, SD " & sdlaenge & " µm) x " & minbreite & "-" & maxbreite & " µm (av. " & avbreite & " µm, SD " & sdbreite & " µm); " & "Q = " & minquot & "-" & maxquot & " (av. " & avquot & ", SD " & sdquot & ")(n = " & n & ")"
Dort wird jetzt aber bei ,0 nur noch die Ganzzahl ausgegeben, was ich nicht möchte. Wie kann ich Excel-VBA beibringen, dass er mir auch in dieser Zeile z.B. die "minlaenge" als 34,0 und nicht als 34 ausgibt?
Ergebnis sollte also so aussehen:
34,0-40,6 µm (av. 37,9 µm, SD 2,8 µm) x 11,9-13,9 µm (av. 12,6 µm, SD 1 µm); Q = 2,4-3,4 (av. 3, SD 0,4)(n = 3)
Ich hoffe, ich konnte mich verständlich machen. Ist vermutlich für einen Profi schnell zu lösen. Für mich leider nicht. Ich danke euch herzlich für entsprechende Hinweise.
LG Sebastian

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: String in Numberformat 0.0 ausgeben
25.09.2022 14:46:19
Daniel
Hi
Probiers mal so:

minlaenge = Format(Application.WorksheetFunction.Min(rng1), "0.0")
Zahlen haben kein bestimmtes Format, auch in der Zelle steht nur 34. die Formatierung wird nur für die Anzeige verwendet, dh du musst das gewünschte Format hinterher selbst erzeugen.
Das Problem ist, das Formatierte Zahlen keine Zahlen sind sondern Text. Und mit Text würde deine MIN-Funktion nicht arbeiten, die braucht Zahlen.
Gruß Daniel
AW: String in Numberformat 0.0 ausgeben
25.09.2022 14:49:17
onur
minlaenge = Application.WorksheetFunction.Min(rng1)
minlaenge = CStr(Format(minlaenge, "###0.0"))
AW: String in Numberformat 0.0 ausgeben
25.09.2022 15:30:46
Sebastian
Lieber Daniel, lieber Onur,
vielen Dank für eure schnelle Hilfe, ich bin immer wieder hin und weg wie schnell einem hier kompetent geholfen wird und man somit Lösungen bekommt.
Ich habe jetzt die Variante von Onur in meinen Code für alle Strings integriert, es funktioniert ganz hervorragend!
Vielleicht könnt ihr mir auf diesem Wege noch eine zweite Frage beantworten. Manchmal sollen diese Ergebnisse in Englisch publiziert werden. Dann sollte das Format statt Komma einen Punkt haben, also statt 34,0 eben 34.0 ...
Kann ich also z.B. dem String "minlaenge" auch beibringen im englischen Format 34.0 zu erscheinen? Wie könnte ich das noch lösen?
Nochmals vielen, vielen Dank für eure Unterstützung.
Gruß Sebastian
Anzeige
AW: String in Numberformat 0.0 ausgeben
25.09.2022 15:34:03
onur
minlaenge = Application.WorksheetFunction.Min(rng1)
minlaenge = CStr(Format(minlaenge, "###0.0"))
minlaenge = Replace(minlaenge, ",", ".")
AW: String in Numberformat 0.0 ausgeben
25.09.2022 16:17:51
Sebastian
Hallo Onur,
erneut ganz herzlichen Dank, macht genau was es soll. Da hast du mich nun rundherum glücklich gemacht :-)
Herzliche Grüße Sebastian
Gerne !
25.09.2022 16:53:26
onur

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige