Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
248to252
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
248to252
248to252
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellenwert direkt als String übernehmen

Zellenwert direkt als String übernehmen
01.05.2003 18:37:06
Michi
Hallo,

nun hab ich da gleich noch ein VBA-Problem:

Ich möchte über

Print #2, (Sheets(Blatt).Cells(Startzeile + i, j).Value);

die Zellwerte, genau so, wie sie eben dargestellt werden, in der Datei speichern und nicht irgendwie anders formatiert.

1,39 %
wird z.B. als
1,39082058414465E-03

gespeichert. Wie teil ich VBA mit, dass er den Wert bzw. String aus der Zelle direkt in der jeweiligen Formatierung übernehmen soll?

MfG
Michi

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Zellenwert direkt als String übernehmen
01.05.2003 18:44:56
Helmut T.

Hi,

ich denke, wenn Du den Wert der Zelle (cell(x,y).value) vorher in eine Stringvariable übergibst ( myString = cell(x,y).value), erhältst Du das gewünschte Ergebnis.

Hab's mit "msgbox" probiert und es klappt, 5,5% werden z.B. als 0,055 angezeigt - das sollte auch mit der Ausgabe in eine Textdatei klappen.

Gruß,
Helmut



Re: nach wie vor gleiches Ergebnis
01.05.2003 19:00:11
Michi

Hi Helmut,

klappt leider noch nicht. Gleiches Ergebnis.

Wahrscheinlich liefert .value immer variant.
Da % aber kein gültiges Datenformat in VBA sein wird, schätz ich mal, wird daraus so eine eklig lange Kommazahl.

Also sollte es noch eine Auslesefunktion geben, die den Zellwert als String liefert, also die Zelle direkt ausliest und nicht umformatiert. Wie heißt diese Funktion?

Anzeige
Re: nach wie vor gleiches Ergebnis
01.05.2003 19:24:29
Knut

Das %- Zeichen steht physisch doch gar nicht in der Zelle, wenn es aus einem Zahlenformat resultiert.
Knut

Re: nach wie vor gleiches Ergebnis
01.05.2003 19:59:25
Michi

Hi Knut,

norja, wie Excel das intern speichert, überlass ich mal MS... da will ich mich gar nicht einmischen. :)
Aber es lässt sich ja dank Zellormatierung alles ganz hübsch darstellen und mein Wunsch wär eben, die Zelle in dieser Formatierung auszulesen. Wenns keine String-Value-Funktion zum formatierten Auslesen gibt, sollte es doch wenigstens eine Formatierungsfunktion geben, die mir zum über .value gelesen Wert über Parameter, welches Format man gerne hätte, den formatierten String liefert.

Oder muss ich den Wert echt erst in einen String verwandeln, den auf Mantisse und Exponent parsen und daraus den Prozentwert basteln? So primitiv kann doch selbst VBA nicht sein...? :)

Ciao!
Michi

Anzeige
Re: Zellenwert direkt als String übernehmen
01.05.2003 20:01:35
Rolf, Lgh.

Hallo,
ersetze .value durch .text
Gruß Rolf

So in der Art...
01.05.2003 20:12:24
Knut

Option Explicit
Sub test()
Dim strVar As String
strVar = Format([c1], "###.00 %")
MsgBox strVar
End Sub

Knut

Wird schon besser... :)
01.05.2003 21:06:32
Michi

Hi Knut,

danke, die Format-Funktion ist schon mal ein Ansatz zur Lösung. :)
Nun bräuchte ich bloß noch eine Funktion, die mir das Format (in welcher Form auch immer) einer angegebenen Zelle liefert.

Hab das schon mal eingebaut... aber ohne so eine Format-Ermittlungs-Funktion müsste man ja sonst trotzdem noch einige Abfragen einbauen und Prozentwerte ließen sich auch nicht von anderen Kommazahlen unterscheiden, da müsste man dann wissen, in welcher Spalte stehen die normalen Zahlen und in welcher die Prozentzahlen und weil es da jeweils jede Menge gibt, wär das alles sehr inflexibel. Muss man auf einem Blatt nochmal irgendwo eine Spalte einfügen, hauts mit der Sub nicht mehr hin. Und fehleranfällig wär das ganze auch so schon, selbst wenn man nichts mehr einbaut... :)

Ciao!
Michi

Anzeige
Re: Wird schon besser... :)
01.05.2003 21:19:09
Ramses

Hallo Michi,

myForm = Activecell.Numberformat

bei Prozent erhältst du z.B. mit

Debug.Print Activecell.Numberformat

das Ergebnis

0.00%

Oder für den Export könntest du das so verwenden:

x = activecell.NumberFormat
debug.Print format(5,x)

erscheint im Debug.Fenster

500.00%

Hilft das weiter ? :-)

Gruss Rainer


Re: bestens
01.05.2003 21:58:45
Michi

Jawohl, mit Numberformat gehts. Einfach schaun, ob darin ein Prozent-Zeichen vorkommt und schon spart man sich viele komplizierte und inflexible Abfragen! :)

Danke Euch und gute Nacht!
Michi

Re: bestens
01.05.2003 22:08:46
Ramses

Hallo Michi,

du musst gar nichts prüfen.
Die Variable x hat im obigen Beispiel das Numberformat als String übernommen. Du kannst damit den Zell-Wert für den Export direkt formatieren.

Das Export-Format ist dann gleich wie in der Tabelle dargestellt.

Gruss Rainer

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge