Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Format Ausrichtung Text nach oben WENN - VBA

Format Ausrichtung Text nach oben WENN - VBA
02.04.2016 14:52:33
Martin
Hallo zusammen,
wiedermal eine Frage an dieses geniale Forum!
In den Bereich I62:CL62 werden mittels VBA Texte geschrieben und auch wieder gelöscht. Ich hätte nun gerne die Formatierung: Ausrichtung "Text nach oben drehen" wenn sich in der Zelle das Wort "MAT" befindet, sonst soll die Ausrichtung normal sein.
Geht das mit VBA? Die bedingte Formatierung gibt mir diese Möglichkeit leider nicht.
Danke schon jetzt für eure Hilfe!
lg
MArtin

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Format Ausrichtung Text nach oben WENN - VBA
02.04.2016 15:00:20
Hajo_Zi
Hallo Martin,
zeichne die Aktion mit dem Makrorecorder auf und If dürfte ja nicht das Problem sein.

AW: Format Ausrichtung Text nach oben WENN - VBA
02.04.2016 15:36:18
Martin
Hi Hajo,
danke für die schnelle Antwort! Leider bekomme ich das nicht hin. Ich verstehe IF zwar wenn ich es sehe und kann es dann auch abändern, kann es aber leider nicht wirklich erstellen. Mein VBA ist wirklich sehr bescheiden :/
Ich hab mich jetzt ein bisschen rum gespielt, komme aber zu keinem Ergebnis. Mein Ansatz ist folgender: (Wird kompletter Blödsinn sein)
Sub Ausrichtung()
If Sheets("Planung").Range("I62:CL62").Value = "MAT" Then
.Orientation = 90
Else
.Orientation = 0
End If
End Sub
Kannst du mir hier bitte doch nochmal helfen?
Vielen dank und lg
Martin

Anzeige
AW: Format Ausrichtung Text nach oben WENN - VBA
02.04.2016 15:50:45
Hajo_Zi
Hallo Martin,
es fehlt das With für .Orientation
Du solltest den aufgezeichneten Code nur ändern, wenn Du es verstehst.
Du kannst nicht mehrere Zelle auf einmal auf Inhalt prüfen.
COUNTIF()
Gruß Hajo

Anzeige
AW: Format Ausrichtung Text nach oben WENN - VBA
02.04.2016 15:59:42
Fennek
Hallo Martin,
ungeprüft:

Sub Ausrichtung()
Dim rng as range
Set rng = sheets("Planung").range("i62:cl62")
If worksheetfunction.countif(rng, "Mat") > 0 then
Rng.orientation = 90
Else
Rng.orientation = 0
End if
End sub
Mfg

AW: Format Ausrichtung Text nach oben WENN - VBA
02.04.2016 21:39:02
Martin
Hallo Fennek!
Danke für deine Hilfe! Ich habe erst jetzt hier rein geschaut da ich versuchte mir selber eine Lösung zu basteln. Nach langem suchen habe ich auch einen Code gefunden der zwar nicht genau das gemacht hat was ich gesucht habe, aber ich habe es nach einigen Versuchen geschafft ihn so anzupassen das er funktioniert.
Danke trotzdem für deine Bemühungen!
Hier zur Info noch der Code:
Private Sub FormatMat()
Dim z As Object, Rng As Range
Dim i As Long
Set Rng = Range("I52:CL52")
'Alles auf 0 Orientieren
Rng.Orientation = 0
'Nur Zellen mit MAT auf 90 Orientieren
For Each z In Rng.SpecialCells(xlCellTypeConstants, 2)
If z.Value = "MAT" Then
z.Orientation = 90
End If
Next
End Sub
Danke nochmal an euch beide für eure Hilfe!
LG
Martin

Anzeige
AW: Projekt hat sich leicht geändert - Anpassung
04.04.2016 10:00:24
Mats
Hi nochmal,
das Projekt hat sich nun etwas erweitert und ich muss nun mehrere Bereiche überprüfen. Im Moment sind es 4 weitere, es können jedoch mehr werden. Kann man die Bereiche irgendwie hinzufügen?
Zudem wäre es super wenn der Code nicht nur MAT überprüfen kann sondern alles das mit "MAT" beginnt. Ich habe "MAT*" versucht, aber das geht nicht.
Hier nochmal der aktuelle Code:
Private Sub FormatMat()
Dim z As Object, Rng As Range
Dim i As Long
Set Rng = Range("I52:CL52")
'Alles auf 0 Orientieren
Rng.Orientation = 0
'Nur Zellen mit MAT auf 90 Orientieren
For Each z In Rng.SpecialCells(xlCellTypeConstants, 2)
If z.Value = "MAT" Then
z.Orientation = 90
End If
Next
End Sub
Danke für eure Hilfe!
lg
Martin

Anzeige
AW: Projekt hat sich leicht geändert - Anpassung
05.04.2016 13:59:30
Steve
Hallo,
mit dem Range-Befehl kann man nur zusammenhängende Bereiche angeben, du benötigst den Befehl Union(), der dir die Vereinigungsmenge bildet.
Wenn du den Anfang prüfen willst nutzt dir die Funktion Left() etwas. Left(Text, 3) gibt dir die ersten drei Zeichen von links.
lg Steve
Private Sub FormatMat()
Dim z As Object, Rng As Range
Dim i As Long
Set Rng = Union(Range("I52:CL52"), _
Range("A4:C100"), _
Range("B150:B200"), _
Range("Z1:Z20"), _
Range("ASD5:ASE5"))
'Alles auf 0 Orientieren
Rng.Orientation = 0
'Nur Zellen mit MAT auf 90 Orientieren
For Each z In Rng.SpecialCells(xlCellTypeConstants, 2)
If Left(z.Value, 3) = "MAT" Then
z.Orientation = 90
End If
Next
End Sub

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Text Ausrichtung in Excel mit VBA: Text nach oben drehen


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (dein Arbeitsmappennamen)" und wähle Einfügen > Modul.
  3. Kopiere den folgenden Code:

    Private Sub FormatMat()
       Dim z As Object, Rng As Range
       Set Rng = Range("I62:CL62")
       ' Alles auf 0 Orientieren
       Rng.Orientation = 0
       ' Nur Zellen mit MAT auf 90 Orientieren
       For Each z In Rng.SpecialCells(xlCellTypeConstants, 2)
           If z.Value = "MAT" Then
               z.Orientation = 90
           End If
       Next
    End Sub
  4. Schließe den VBA-Editor:

    • Drücke ALT + Q, um den Editor zu schließen.
  5. Führe das Makro aus:

    • Drücke ALT + F8, wähle FormatMat aus und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt"

    • Lösung: Stelle sicher, dass der Bereich korrekt definiert ist. Überprüfe, ob die Zellen tatsächlich Werte enthalten.
  • Fehler: Ausrichtung wird nicht geändert

    • Lösung: Vergewissere dich, dass die Zellen im Bereich I62:CL62 tatsächlich den Wert "MAT" enthalten. Achte auch darauf, dass du die richtigen Zellen markiert hast.
  • Fehler: Code läuft nicht

    • Lösung: Prüfe, ob die Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center und aktiviere die Makros.

Alternative Methoden

  • Mit bedingter Formatierung: Wenn du keine VBA-Lösung verwenden möchtest, kannst du die bedingte Formatierung verwenden, um die Schriftfarbe oder den Hintergrund basierend auf dem Inhalt der Zelle zu ändern. Allerdings bietet die bedingte Formatierung nicht die Möglichkeit, die Ausrichtung zu ändern.

  • Text manuell drehen: Du kannst auch die Funktion "Format Cells" nutzen, um den Text manuell zu drehen. Wähle die Zelle aus, gehe zu Format Cells > Alignment und stelle die Orientation ein.


Praktische Beispiele

  • Beispiel 1: Text mit „MAT“ hochkant anzeigen

    If z.Value = "MAT" Then
      z.Orientation = 90 ' Text nach oben drehen
    End If
  • Beispiel 2: Text, der mit „MAT“ beginnt, hochkant darstellen

    If Left(z.Value, 3) = "MAT" Then
      z.Orientation = 90 ' Text nach oben drehen
    End If
  • Beispiel 3: Mehrere Bereiche überprüfen

    Set Rng = Union(Range("I62:CL62"), Range("A1:A10"))

Tipps für Profis

  • Nutze die Union-Funktion, um mehrere Bereiche in einem einzigen Befehl zu kombinieren. So kannst du effizienter arbeiten und mehrere Zellen gleichzeitig bearbeiten.

  • Experimentiere mit der Orientation-Eigenschaft, um verschiedene Ausrichtungen wie 90 für hochkant oder 0 für normal auszuprobieren.

  • Dokumentiere deinen Code gut, um später leichter verstehen zu können, welche Logik du verwendet hast und warum.


FAQ: Häufige Fragen

1. Wie kann ich die Schrift in Excel senkrecht drehen? Um die Schrift in Excel senkrecht zu drehen, kannst du die Orientation-Eigenschaft auf 90 setzen. Dies kannst du durch VBA oder im Formatierungsdialogfeld für Zellen tun.

2. Kann ich die Ausrichtung für mehrere Zellen gleichzeitig ändern? Ja, du kannst die Ausrichtung für mehrere Zellen ändern, indem du die Union-Funktion verwendest, um mehrere Bereiche zusammenzufassen und dann die Orientation-Eigenschaft anzuwenden.

3. Was muss ich beachten, wenn ich VBA in Excel verwenden möchte? Stelle sicher, dass die Makros aktiviert sind und dass du die richtigen Berechtigungen hast, um VBA-Code auszuführen. Achte auch darauf, dass dein Code fehlerfrei ist, um Laufzeitfehler zu vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige