Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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

Anzeige

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 :-?

Anzeige
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 :-?

Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Verschiedene Zellformatierung bei Text und Zahl


Schritt-für-Schritt-Anleitung

Um die Zellformatierung in Excel über VBA für Text und Zahlen zu steuern, kannst Du den folgenden Code verwenden. Dieser stellt sicher, dass Text zentriert und Zahlen rechtsbündig ausgerichtet werden.

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, dann Zelle rechtsbündig formatiert
                    .HorizontalAlignment = xlRight
                Else
                    ' Wenn Zelle enthält Text, dann Zelle zentriert formatiert
                    .HorizontalAlignment = xlCenter
                End If
            End With
        Next
    End If
End Sub

Dieser VBA-Code ist eine einfache und effektive Lösung, um die Ausrichtung in den Zellen B19 bis K21 zu steuern. Achte darauf, dass Du die Zellen im richtigen Bereich anpasst.


Häufige Fehler und Lösungen

  1. Fehler: Zellen werden nicht wie gewünscht formatiert.

    • Lösung: Überprüfe, ob der VBA-Code in das richtige Arbeitsblatt-Modul eingefügt wurde. Manchmal wird der Code in ein allgemeines Modul eingefügt, was dazu führt, dass er nicht funktioniert.
  2. Fehler: Text wird nicht zentriert.

    • Lösung: Stelle sicher, dass der Text nicht in einer Formel enthalten ist, die das Format beeinflusst. Die Standardausrichtung in Excel könnte auch die gewünschte Formatierung überschreiben.
  3. Fehler: Zahlen werden nicht rechtsbündig dargestellt.

    • Lösung: Überprüfe, ob das Zahlenformat korrekt ist (z.B. Standardformat). Du kannst auch die Funktion Excel rechtsbündig ausrichten verwenden, um das zu überprüfen.

Alternative Methoden

Es gibt auch andere Möglichkeiten, die Zellformatierung in Excel zu steuern:

  1. Manuelle Formatierung:

    • Du kannst die Zellen manuell formatieren, indem Du die Zellen auswählst und über das Menü „Start“ die Ausrichtung änderst.
  2. Bedingte Formatierung:

    • Du kannst die bedingte Formatierung nutzen, um unterschiedliche Ausrichtungen für Text und Zahlen zu definieren, allerdings ist dies in der Regel nicht so flexibel wie VBA.
  3. Benutzerdefinierte Formate:

    • Über „Format – Zellen – Benutzerdefiniert“ kannst Du spezielle Formate eintragen, um die Darstellung zu steuern.

Praktische Beispiele

  1. Zellformatierung für Namen und Beträge:

    • In Zellen B19 bis B21 kannst Du Namen zentriert und Beträge rechtsbündig formatieren, indem Du den oben genannten VBA-Code anwendest.
  2. Zellformatierung für gemischte Daten:

    • Wenn Du Daten eingibst, die sowohl Text als auch Zahlen enthalten, wird der Code automatisch die Ausrichtung basierend auf dem Typ der Eingabe anpassen.

Tipps für Profis

  • Wenn Du häufig mit verschiedenen Zellformatierungen arbeitest, speichere Deinen VBA-Code als Vorlage, damit Du ihn schnell in anderen Excel-Dateien verwenden kannst.
  • Achte darauf, die Excel-Version zu berücksichtigen. Der Code könnte je nach Version (z.B. Excel 2000, Excel 2010) unterschiedliche Ergebnisse liefern.
  • Experimentiere mit den Optionen xlLeft, xlCenter und xlRight, um die perfekte Balance für Deine Daten zu finden.

FAQ: Häufige Fragen

1. Wie kann ich eine Zelle als Text formatieren?
Um eine Zelle als Text zu formatieren, kannst Du die Funktion vba zelle als text formatieren verwenden. Setze den Formatierungsbefehl in Deinem VBA-Code.

2. Was passiert, wenn ich eine Zahl als Text eingebe?
Wenn eine Zahl als Text eingegeben wird, wird sie in der Regel linksbündig dargestellt. Mit dem VBA-Code kannst Du sicherstellen, dass solche Zahlen rechtsbündig ausgerichtet werden.

3. Kann ich die Ausrichtung für einen bestimmten Zellbereich festlegen?
Ja, Du kannst die Ausrichtung für einen spezifischen Zellbereich im VBA-Code definieren, indem Du die Range-Angabe anpasst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige