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

Verschiedene Zellformatierung bei Text und Zahl

Verschiedene Zellformatierung bei Text und Zahl
27.08.2013 21:38:20
Burghard
Hallo,
ich suche eine VBA-Lösung. Ich hab den Ansatz mal nachfolgend aufgeschrieben:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("B19:K21")) Is Nothing Then
Wenn Zelle enthält Text, dann Zelle zentriert formatiert
Wenn Zelle enthält Zahl, dann Zelle rechtsbündig formatiert
End If
End Sub
Ist das möglich?
Gruß
Burghard

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Natürlich, ...
27.08.2013 22:14:01
Luc:-?
…Burghard:
If WorksheetFunction.IsText(Target) Then _
Target.HorizontalAlignment = xlCenter
Das andere Format ist nicht erforderlich, denn das wird ohnehin automatisch eingestellt (Standard: Text→links-, Zahl→rechtsbündig, Fehlerwert→zentriert).
(Hoffe, habe mich richtig an Eigenschaft und Enumeration erinnert!)
Gruß Luc :-?

AW: Verschiedene Zellformatierung bei Text und Zahl
27.08.2013 22:19:42
fcs
Hallo Burghard,
eigentlich macht Excel dies doch automatisch, wenn du keine Zellausrichtung vorgibts.
Warum dann ein Makro?
Gruß
Franz
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim rngZelle As Range
If Not Intersect(Target, Range("B19:K21")) Is Nothing Then
For Each rngZelle In Target
With rngZelle
If IsNumeric(.Value) Then
'Wenn Zelle enthält Zahl/Datum, dann Zelle rechtsbündig formatiert
.HorizontalAlignment = xlRight
Else
'Wenn Zelle enthält Text, dann Zelle zentriert formatiert
.HorizontalAlignment = xlLeft
End If
End With
Next
End If
End Sub

Anzeige
He, Franz, eben nicht! Text ZENTRIERT! orT
28.08.2013 00:39:27
Luc:-?
Gruß Luc :-?

AW: He, Franz, eben nicht! Text ZENTRIERT! orT
28.08.2013 06:15:48
fcs
Hallo Luc,
bei meiner 2010er Excelversion sieht es so aus:
Userbild
Text wird ohne Vorgaben für die horizontale Ausrichtung immer linksbündig dargestellt, Zahlen/Datum rechtsbündig. WAHR/FALSCH und Fehlerwerte zentriert.
Ist das Zahlenformat zunächst "Standard", dann erlaubt sich Excel eigenständig bei datums-/zeit-ähnlichen Eingaben und bei Zahlen, in denen das 1000er-Zeichen mit eingegeben wird, ein Datum-, Zeit- oder Zahlenformat von Microsofts Gnaden für die Zelle festzulegen.
Bei der Vielzahl an Möglichkeitrn Zellinhalte zu interpretieren muß sich Burghard wohl erst noch melden, wie solche Zellinhalte, die nicht klassisch Text oder Zahl sind (Datum/Logik/Feler) ausgerichtet werden sollen. Evtl. spielt es auch keine Rolle, weil die im Eingabebereich nicht vorkommen.
Gruß
Franz

Anzeige
Eben, das hatte ich ja auch schon erwähnt, ...
28.08.2013 12:33:48
Luc:-?
…Franz,
und deshalb nur Texte zentriert, während du alles Numerische (also auch Zahlen in Textform!) rechts-, alles Andere aber linksbündig anordnest. Das hatte er aber nicht so geschrieben, wobei das mit den Textzahlen natürlich auch so interpretiert wdn könnte wie du es tust. Aber daran hat er evtl gar nicht gedacht!
Warten wir's ab!
Gruß Luc :-?

AW: Lösung
28.08.2013 13:31:55
Burghard
Hallo Luc,
die Sache ist kompliziert. Leider funktioniert Franz' Vorschlag nicht bei mir (Excel 2000). Ich denke, dass Excel hier ein gewisses Eigenleben hat.
Ich habe die Sache aber doch durch Probieren lösen können.
Zunächst steht bei mir in den Zellen B19:B21 eine Formel wie unten (kommt von Franz).
{=WENN(ANZAHL2(B$6:B$12)<ZEILE(1:1); "";WENN(INDEX(B$6:B$12;KKLEINSTE(WENN(B$6:B$12<>""; ZEILE($1:$7); 7); ZEILE(1:1)))="x";INDEX($A$6:$A$12;KKLEINSTE(WENN(B$6:B$12<>"";ZEILE($1:$7); 7); ZEILE(1:1))); INDEX(B$6:B$12;KKLEINSTE(WENN(B$6:B$12<>"";ZEILE($1:$7); 7); ZEILE(1:1))) *$A$1)) }
Es wird in die Zellen B19:B21 einmal ein Name geschrieben (diese stehen weiter oben in Spalte A), wenn in Spalte B (Bereich B6:B12) ein "x" steht oder wenn z.B. in demselben Bereich ein Betrag, z.B. "60,5" eingetragen wird, dann wird dieser Betrag in die Zelle B19 eingetragen, bei einem zweiten Betrag in B20, bei einem dritten Betrag in B21.
Meine Lösung für verschiedene Zellformatierungen innerhalb einer Zelle, Text (hier Namen werden zentriert ausgerichtet, Zahlen nach Dezimalstelle bündig:
1. Bei den Zellen B19:B21 das Format (Schaltfläche) auf "zentriert" stellen
2. Über Format -- Zellen -- Benutzerdefiniert diese Formatierung eintragen: ?0,00" €";@
Nachfolgend klappt die unterschiedliche Ausrichtung je nach Text (zentriert) oder Zahl (nach Dezimalstelle rechtsbündig)
Grüße
Burghard

Anzeige
Aha, na dann... Gruß owT
28.08.2013 14:01:10
Luc:-?
:-?

AW: Lösung
28.08.2013 13:37:37
Burghard
Hallo Franz,
Luc hat Dir ja schon geschrieben, dass ich den Text zentriert und nicht standardmäßig links ausgerichtet haben wollte.
Die Sache ist komplizierter als ich dachte (da hab ich unbewußt eine Lawine losgetreten). Leider funktioniert Dein Makro nicht wie gewünscht bei mir (Excel 2000). Ich denke, dass Excel hier ein gewisses Eigenleben hat.
Ich habe die Sache aber doch durch Probieren lösen können.
Zunächst steht bei mir in den Zellen B19:B21 eine Formel wie unten (kommt von Dir).
{=WENN(ANZAHL2(B$6:B$12)<ZEILE(1:1); "";WENN(INDEX(B$6:B$12;KKLEINSTE(WENN(B$6:B$12<>""; ZEILE($1:$7); 7); ZEILE(1:1)))="x";INDEX($A$6:$A$12;KKLEINSTE(WENN(B$6:B$12<>"";ZEILE($1:$7); 7); ZEILE(1:1))); INDEX(B$6:B$12;KKLEINSTE(WENN(B$6:B$12<>"";ZEILE($1:$7); 7); ZEILE(1:1))) *$A$1)) }
Es wird in die Zellen B19:B21 einmal ein Name geschrieben (diese stehen weiter oben in Spalte A), wenn in Spalte B (Bereich B6:B12) ein "x" steht oder wenn z.B. in demselben Bereich ein Betrag, z.B. "60,5" eingetragen wird, dann wird dieser Betrag in die Zelle B19 eingetragen, bei einem zweiten Betrag in B20, bei einem dritten Betrag in B21.
Meine Lösung für verschiedene Zellformatierungen innerhalb einer Zelle, Text (hier Namen) wird zentriert ausgerichtet, Zahlen nach Dezimalstelle bündig:
1. Bei den Zellen B19:B21 das Format (Schaltfläche) auf "zentriert" stellen
2. Über Format -- Zellen -- Benutzerdefiniert diese Formatierung eintragen: ?0,00" €";@
Nachfolgend klappt die unterschiedliche Ausrichtung je nach Text (zentriert) oder Zahl (nach Dezimalstelle rechtsbündig)
Grüße
Burghard
Anzeige

8 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige