Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Datenformatierung EXEL 2000





Frage

Berechnete Daten mit zwei Nachkommastellen (€-Beträge) haben verschiedene Länge. Sie sollen jedoch zentiert in den Zellen stehen und dabei kommagerecht untereinander sein. Das klappt nur bei gleichlangen Zahlen oder, wenn ich sie rechtsbündig formatiere. In der Tabelle von WORD 2000 klappt das mit setzen des Dezimaltabulators, den ich bei EXEL 2000 nicht finde. DANKE und Gruß PEPI

Antwort 1 von nighty

hi alle

@josef
1)so formatieren
000.000,00
2)dann zentrieren anwaehlen

gruss nighty

Antwort 2 von nighty

hi josef

ich vergass fuer euro natuerlich so
"000.000,00 €"

gruss nighty

Antwort 3 von want2cu

nighty hat schon die passende Formatierung verraten.
Nach meinem Verständnis widersprechen sich jedoch "zentriert" und "kommagerecht untereinander".

Wenn es kommagerecht untereinander ist (was der Lesbarkeit schon förderlich ist), dann macht das Zentrieren m.E. diese Formatierung wieder zunichte.

Oder verstehe ich da was falsch?
CU
KLaus

Antwort 4 von nighty

hi alle

@want2cu
schoen das du wieder da bist schon vermisst.

gruss nighty

Antwort 5 von pelle

Hallo Josef,

der Formatierungsvorschlag von nighty passt nicht ganz!

Sorry nighty!!

Er funktioniert nur bei "festen" Schriftarten (z.B. Courier) , nicht aber bei proportionalen Schriftarten (z.B. Arial)!

Was mir persönlich nicht so ganz gefällt, ist die vielen "Nullen" in der Formatierung, die dargestellt ung gedruckt werden!

Die WORD- und Excel-Darstellung sind nicht vergleichbar!

Warum reicht Dir die rechtsbündige (standardmäßige) Darstellung von Zahlen nicht aus??

Ist mir noch nicht ganz klar!

Es gäbe vielleicht eine na ja reine optische Lösung!!

Dies dient aber wirklich nur der evtl. Optik!

Überschift: Zelle A1-C1
Zellen verbinden und zentrieren!
Zelle A2 Euro-Beträge
Zelle B2 Dezimalzeichen
Zelle C3 Cent-Beträge

Aber dies dürfte nicht im Sinne des Erfinders sein!

Vielleicht kannst Du mal den Anlass für diese Anfrage anders formulieren!!

gruss
pelle

Antwort 6 von nighty

hi alle

geht bei mir mit allen schriftarten das einzige handicap ist das eurozeichen.

gruss nighty

Antwort 7 von pelle

@nighty,

sorry, widerspruch!

Schick mir mal bitte Beispiel!!

gruss
pelle

Antwort 8 von nighty

hi pelle

ist unterwegs.

gruss nighty


Antwort 9 von nighty

hi pelle & pepi

der thread ist laengst nicht beendet ich arbeite noch daran(mit den vorranstehenden nullen) ich hab noch einen joker wartet ab bis zum wochenende spaetestens.

gruss nighty

Antwort 10 von shrike

Man kann es folgendemaßen machen:

Normal rechtsbündig und das Zahlenformat so:
#.##0,00 €_____

(der lange Strich sind mehrere Unterstriche, je nach gewünschtem Abstand zum rechten Rand)

@nighty
Willst uns wieder ein Makro um die Ohren hauen? ;-)

shrike

Antwort 11 von pelle

@shrike,

das Problem von Josef, konnte mit einer
Leerspalte gelöst werden!

a) Überschrift in 2 verbundenen Spalten
b) 1. Spalte mit Werten, rechtsbündig
c) 2. Spalte leer (nur als optischer Rand, Breite wie gewünscht anpassen)

Habe aber noch keine Info von Josef, ob es in seinem Sinne war!

gruss
pelle

Ps.: Hast Recht, nighty arbeitet fieberhaft an einer Makrolösung!

Antwort 12 von nighty

hi alle

hier ein makro das eine zentrierte zelle nach dem komma ausrichtet.

betraege bis 99.999,99 werden angenommen
von der aktiven zelle aus werden bis zur letzten zelle alle abgearbeitet.

Sub Makro1()
GoSub anfangskoordinaten
anfangspalte$ = spalte$
anfangzeile = zeile1
GoSub endkoordinaten
endespalte = lspalte
endezeile = lzeile
For t1 = Asc(anfangspalte$) To 64 + endespalte
For t2 = anfangzeile To endezeile
If Range(Chr$(t1) & t2) <> "" Then
Range(Chr$(t1) & t2) = Range(Chr$(t1) & t2) + 0.01
a1$ = Str$(Range(Chr$(t1) & t2))
laenge = Len(Range(Chr$(t1) & t2))
Range(Chr$(t1) & t2) = Val(a1$)
GoSub formfaktor
Range(Chr$(t1) & t2) = Range(Chr$(t1) & t2) - 0.01
End If
Next t2
Next t1
End
endkoordinaten:
Set LastCell = ActiveSheet.Cells.SpecialCells(xlLastCell)
alta = LastCell.Row
A = LastCell.Row
Do While Application.CountA(Rows(A)) = 0 And A <> 1
A = A - 1
Loop
alta = A
altb = LastCell.Column
b = LastCell.Column
Do While Application.CountA(Columns(b)) = 0 And b <> 1
b = b - 1
Loop
altb = b
lzeile = alta
lspalte = altb
Return
anfangskoordinaten:
adress$ = ActiveWindow.RangeSelection.Address
adress1 = Len(adress$)
For mo = 1 To adress1
If Mid$(adress, mo, 1) = "$" Then
llp = llp + 1
Else
If llp = 1 Then
spalte$ = spalte$ + Mid$(adress, mo, 1)
End If
If llp = 2 Then
zeile$ = zeile$ + Mid$(adress, mo, 1)
zeile1 = Val(zeile$)
End If
End If
Next mo
Return
formfaktor:
Range(Chr$(t1) & t2).Select
Selection.NumberFormat = "General"
If laenge = 8 Then
Selection.NumberFormat = "#,##0.00"
End If
If laenge = 7 Then
Selection.NumberFormat = "" + Chr$(160) + "#,##0.00"
End If
If laenge = 6 Then
Selection.NumberFormat = "" + Chr$(160) + Chr$(160) + Chr$(160) + "#,##0.00"
End If
If laenge = 5 Then
Selection.NumberFormat = "" + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + "#,##0.00"
End If
If laenge = 4 Then
Selection.NumberFormat = "" + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + "#,##0.00"
End If
If laenge = 3 Then
Selection.NumberFormat = "" + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + "#,##0.00"
End If
If laenge = 2 Then
Selection.NumberFormat = "" + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + Chr$(160) + "#,##0.00"
End If
Return
End Sub

gruss nighty

p.s.
ich glaub ich hab intensiv getestet bei eventuellen fehlern noch(schniff bloss nicht)bitte melden na PELLE keine nullen mehr TATAAAA

Antwort 13 von pelle

@nighty,

schick mir doch bitte mal so eine Beispieldatei!

gruss
pelle

Antwort 14 von nighty

hi pelle

ist unterwegs.

gruss nighty

Antwort 15 von shrike

Damit keine Mißverständnisse entstehen: Bei der Formatierung aus meiner Antwort 10 sieht man natürlich die Unterstriche NICHT in der Zelle. Die stehen nur als Platzhalter in dem benutzerdefinierten Format. Man kann ganz normal damit weiterrechnen.

@nighty
Du müßtest das Makro noch für negative Zahlen überarbeiten. Da haut es (bei mir?) nicht hin.
Und das Währungszeichen solltest du evtl. auch ins Format aufnehmen.

shrike

Antwort 16 von sicci

Hallo nighty + all,

Dein makro, nighty, funktioniert bei mir auch sehr schön. Abgesehen von shrikes Einschränkungen: die Formatierung der Ausrichtung über Komma wird zwar auch bei Minuszahlen korrekt gesetzt, aber das Minuszeichen selbst steht erst ab 4stelliger ganzer Zahl dirket vor der Zahl, ansonsten mit 1- bzw. 2- oder 3-stelligem Abstand. Beachtlich! Auch die Summenbildung funktioniert tadellos.
Eine Währungszugabe allerdings zerhaut die Formatierung bzw. das Makro schmeißt Währungen raus.

Shrikes Vorschlag, die Excel-interne Lösung für solche Formatierungen, ist handlich und schnell umsetzbar - funktioniert übrigens genauso mit Leerzeichen statt der Unterstriche. Allerdings gibt's auch dabei eine kleine Einschränkung: will man die Werte genau mittig in der Spalte sehn, muß man die Spalte per Augenmaß anpassen.

Wo also exakte Mittigkeit benötigt wird, kommt Dein Makro - erweitert um die Währung? :-) - zum Einsatz.

Gruß
sicci

Antwort 17 von nighty

hi alle

@sicci
hab ich teils dir zu verdanken,vielleicht kannst du dich entsinnen ermittlung von letzter spalte wie zeile,ich liebe dein makro,ist unentbehrlich geworden fuer mich.

was fuer mich noch interessant waere,ob es moeglich ist in pixelangaben folgende werte abzufragen vielleicht weisst du rat :

zellenhoehe=in pixel
zellenbreite=in pixel
ein einzelner buchstabe eines fonts wie
hoech=in pixel,wie breit in pixel,wichtig fuer fonts die unterschiedlich breit sind.

scripting host hab ich uebrigens fuer 5,38+porto ersteigert(ersteigern lassen)
schoenen dank nochmal.

code ist schon ein wenig uebersichtlicher geworden (module) an die var denk ich noch naechstes mal grrr.

@alle
hat ja wieder mal einen heiden spass gemacht.

gruss nighty




Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: