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

Forumthread: Formatierung in Zelle per VBA auslesen

Formatierung in Zelle per VBA auslesen
13.05.2014 11:09:29
Martin
Hallo beisammen,
ich habe ganz viele Zellen mit 8-stelligen Zahl. Von manchen Zahlen sind bestimmte Stellen, z.b. die vierte Stelle, Rot markiert.
Nun will ich per VBA diese Zahlen verarbeiten. Per Value kann ich ja den Wert auslesen. Aber wie kann ich prüfen, welche Stellen Rot und welche Stellen zum beispiel Fett formatiert sind? Weiß das jemand?
Es geht um einzelne Stellen, nicht um die gesamte Zellenformatierung.
Danke & schönen Tag!

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formatierung in Zelle per VBA auslesen
13.05.2014 11:24:46
Born
Hallo Martin,
das geht zum Beispiel über folgende Syntax:
ActiveCell.Characters(Start:=2, Length:=1).Font.FontStyle = "Fett"
Hierbei wird die 2. Stelle fett markiert.
Viele Grüße,
M. Born

AW: Formatierung in Zelle per VBA auslesen
13.05.2014 11:27:24
Martin
Cool, danke! Werds gleich probieren!

AW: Formatierung in Zelle per VBA auslesen
13.05.2014 11:34:38
Daniel
Hi
mal als Beispiel:
der folgende Code gibt dir an, welches Zeichen in der Zelle rot und welches Zeichen fett ist.
sind mehrere Zeichen rot oder fett, wird immer das letzte angegeben.
Sub test()
Dim PosRot As String
Dim PosFett As String
Dim i As Long
With Cells(1, 1)
For i = 1 To Len(.Value)
With .Characters(Start:=i, Length:=1)
If .Font.Color = 255 Then PosRot = .Text
If .Font.FontStyle = "Fett" Then PosFett = .Text
End With
Next
End With
Msgbox "Rot ist Ziffer: " & PosRot & vbLf & "Fett ist Ziffer: " & PosFett
End Sub
Hilft dir das weiter?
Gruß Daniel
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

Formatierung in Zelle per VBA auslesen


Schritt-für-Schritt-Anleitung

Um die Formatierung in Zellen mit VBA auszulesen, folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Wähle Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden Code in das Modul:

    Sub FormatierungAuslesen()
        Dim PosRot As String
        Dim PosFett As String
        Dim i As Long
        With Cells(1, 1) ' Ändere die Zellenreferenz nach Bedarf
            For i = 1 To Len(.Value)
                With .Characters(Start:=i, Length:=1)
                    If .Font.Color = 255 Then PosRot = .Text ' Rot
                    If .Font.FontStyle = "Fett" Then PosFett = .Text ' Fett
                End With
            Next
        End With
        MsgBox "Rot ist Ziffer: " & PosRot & vbLf & "Fett ist Ziffer: " & PosFett
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus, um die rot und fett formatierten Ziffern in der angegebenen Zelle zu erhalten.


Häufige Fehler und Lösungen

  • Fehler: "Typen nicht übereinstimmend"

    • Lösung: Überprüfe, ob die Zelle tatsächlich Text enthält. Dieser Fehler tritt häufig auf, wenn du versuchst, das Format einer Zelle auszulesen, die leer oder nicht im richtigen Format ist.
  • Fehler: "Objekt erforderlich"

    • Lösung: Stelle sicher, dass du die richtige Zellenreferenz verwendest. Der Code sollte nur auf Zellen angewendet werden, die existieren.

Alternative Methoden

Wenn du die Excel Formatierung auslesen möchtest, aber keine VBA-Programmierung verwenden willst, gibt es auch andere Möglichkeiten:

  • Bedingte Formatierung: Du kannst die bedingte Formatierung verwenden, um bestimmte Zellen hervorzuheben. Das ist jedoch nicht dasselbe wie das Auslesen von Formaten.
  • Excel-Funktionen: Einige Funktionen wie FIND oder SEARCH können helfen, bestimmte Zeichen zu identifizieren, aber sie lesen die Formatierung nicht aus.

Praktische Beispiele

Hier ist ein Beispiel, wie du den obigen Code modifizieren kannst, um ein ganzes Arbeitsblatt zu durchforsten:

Sub AlleFormatierungenAuslesen()
    Dim PosRot As String
    Dim PosFett As String
    Dim i As Long, j As Long
    For j = 1 To 10 ' Durchlaufe die ersten 10 Zeilen
        For i = 1 To Len(Cells(j, 1).Value)
            With Cells(j, 1).Characters(Start:=i, Length:=1)
                If .Font.Color = 255 Then PosRot = PosRot & .Text ' Füge rot formatierten Text hinzu
                If .Font.FontStyle = "Fett" Then PosFett = PosFett & .Text ' Füge fett formatierten Text hinzu
            End With
        Next i
    Next j
    MsgBox "Rot: " & PosRot & vbLf & "Fett: " & PosFett
End Sub

Tipps für Profis

  • Nutze Debug.Print innerhalb des Codes, um Informationen während der Ausführung zu protokollieren. So kannst du leichter Fehler identifizieren.
  • Experimentiere mit den Eigenschaften von .Characters, um weitere Formatierungen auszulesen, wie z.B. Schriftgröße oder Hintergrundfarbe.

FAQ: Häufige Fragen

1. Wie kann ich die Formatierung in mehreren Zellen gleichzeitig auslesen?
Du kannst eine Schleife verwenden, um durch die Zellen in einem Bereich zu iterieren, wie im Beispiel "AlleFormatierungenAuslesen" gezeigt.

2. Funktioniert dieser Ansatz in allen Excel-Versionen?
Ja, der VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, einschließlich Excel 2010 und höher.

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