Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1208to1212
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

Formatierung wird komisch

Formatierung wird komisch
TommiH
Hallo,
ich habe ein Problem mit einem Codestück, was ich zwar einsetze, was ich aber nicht ganz verstehe ;) (habs hier im Forum erhalten)
Das Problem ist, das nach dieser Aktion Zellen in denen ganze Zahlen stehen rechtsbündig und Zahlen in denen Dezimalzahlen stehen linksbündig formatiert sind.
Eigentlich sollte aber alles rechtsbündig formatiert sein - kann mir da einer einen Tip geben, wie ich das hinbekommen kann?
Der Typ der Zellen ist Standard.
Tommi
- Dim vntTmp
- Dim i As Long, j As Integer
- vntTmp = Range("A1:FA15000")
- For i = 1 To UBound(vntTmp, 1)
- For j = 1 To UBound(vntTmp, 2)
- vntTmp(i, j) = Trim(vntTmp(i, j))
- Next
- Next
- Range("A1:FA15000") = vntTmp

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

Betreff
Benutzer
Anzeige
kein Formatierungsproblem
12.04.2011 14:02:53
Erich
Hi Tommi,
das hat mit Zwellenformatierungen überhaupt nichts zu tun. Du siehst in Excel an den Formatierungs-Schaltflächen,
ob eine Zelle linkis- oder rechtsbündig formatiert ist. Das ist hier nicht der Fall, zumindest wird da nichts geändert.
Erste Frage: Was soll dein Code überhaupt bewirken?
Nächste Frage: Stehen in dem Bereich Texte und Zahlen? Was soll mit den Zahlen geschehen?
Mit deinem Code werden zunächst alle Werte des Bereichs automatisch in Strings umgewandelt -
sonst kann Trim sie nicht verarbeiten. Trim gibt eine String zurück, denn du dann in die Zellen schreibst.
Bei Ganzzahlen passiert nichts. Excel interpretiert den Text als Zahl und schreibt eine Zahl in die Zelle.
Bei Dezimalzahlen passiert Einiges:
1,3 wird umgewandelt in einen String - im englischen VBA in "1.3", darauf wirkt Trim und gibt "1.3" zurück.
Aus dem Komma ist ein Punkt geworden.
Für das (deutsche) Excel ist "1.3" keine Zahl, also wird der Text "1.3" in die Zelle geschrieben.
Und Texte werden standardmäßig linksbündig angezeigt.
Das Problem ist also, dass aus einer Dezimalzahl ein Text wird - kein Frage der Formatierung.
Wichtig wäre jetzt die Beantwortung meiner beiden obigen Fragen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: kein Formatierungsproblem
12.04.2011 14:10:58
TommiH
Hallo Erich,
also - ja, es stehen Texte und Zahlen in dem Bereich, bewirken soll der Code, wenn ich das richtig in Erinnerung habe, das alle Texte in dem Bereich getrimmt werden, also die nachfolgenden Leerzeichen gelöscht werden (das ist zumindest für das nachfolgende Makro wichtig, sonst stimmen die Vergleiche oft nicht)
Tommi
falsche Erklärung - korrigiert
12.04.2011 14:25:52
Erich
Hi Tommi,
meine Erklärungsversuche waren zum Teil falsch, deshalb noch eibnmal zu den Dezimalzahlen:
Bei Dezimalzahlen passiert Einiges:
1,3 wird umgewandelt in einen String "1.3", darauf wirkt Trim und gibt "1,3" zurück. Für das englische VBA
ist das Text, aber keine Zahl - die hätte in VBA einen Punkt statt des Kommas.
VBA liefert also an Excel einen Text - und Excel schreibt den Text "1,3" in die Zelle.
Und Texte werden standardmäßig linksbündig angezeigt.
Das Problem ist also, dass aus einer Dezimalzahl ein Text wird - kein Frage der Formatierung.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
...und warum wird dann ALLES getrimmt...
12.04.2011 14:33:15
Luc:-?
…und nicht selektiv nur die Texte, Tommi?
Gruß Luc :-?
AW: ...und warum wird dann ALLES getrimmt...
12.04.2011 14:37:09
TommiH
Hm,
du meinst direkt das ganze Konstrukt rauswerfen und einfach nur eine x/y-Schleifen-Kombination einsetzen die nur die Text-Zellen trimmt?
Ich hatte ursprünglich mal gedacht, das das sorum schneller gehen würde...
Tommi
Könnte evtl auch m.SpecialCells klappen. owT
12.04.2011 14:52:56
Luc:-?
:-?
AW: Formatierung wird komisch
12.04.2011 14:04:05
Rudi
Hallo,
das hat aber nichts mit Formatierung zu tun.
häng einfach noch
Range("A1:FA15000").HorizontalAlignment = xlRight
an.
Gruß
Rudi
AW: Formatierung wird komisch
12.04.2011 14:13:18
TommiH
Ha,
das habe ich jetzt während meines Makrolaufs manuell gemacht, also direkt nach dem Trimmen - ging wunderbar, dann baue ich das einfach noch mit ein, dann passt es beim nächsten Lauf direkt.
Thx! - Ich denke damit ist das Problem erledigt.
Tommi
Anzeige
Zweifel!
12.04.2011 14:20:55
Erich
Hi Tommi,
mit dem Alignment ändert du nur das Aussehen der Zellen, nicht aber das Hauptproblem:
Wenn vorher in der Zelle die Zahl 123,45 stand, steht dort hinterher der Text "123,45".
Willst du das wirklich?
Ob eine Zahl oder ein Text in einer Zelle A1 steht, kannst du leicht prüfen mit =ISTZAHL(A1) und =ISTTEXT(A1)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Zweifel!
12.04.2011 14:30:14
TommiH
Hallo Erich,
hm, ja, das ist mir schon klar, also das es nach der Aktion (trimmen) ein ein Text ist.
Bei den meisten Leuten ist dies zwar egal (weil das nur eine Formatierung ist und das Endprodukt nur angeschaut wird) manchmal kommt es aber in der Tat dazu, das damit noch etwas berechnet werden soll, und dann wandeln die Leute halt die benötigten Zellen manuell in Zahlen um.
Kann man das denn elegant löschen?
Wäre eine Schleifenkombi, x/y die alle Zellen mit istzahl prüft und das Format umsetzt denn eine Lösung? Oder gehts noch eleganter?
Tommi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige