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

Forumthread: VBA - Kommentare formatieren

VBA - Kommentare formatieren
23.07.2017 16:05:32
WalterK
Hallo,
wie kann ich den Code abändern, damit im Blatt "Arbeit" nur die Kommentare im Bereich von A2 bis zur letzten benutzten Zelle in A formatiert werden. Alles anderen sollen belassen werden.
Hier mein Code bei dem Alle Kommentare im Blatt formatiert werden:
Option Explicit
Sub KommentareFormatieren()
Dim objSh As Worksheet
Dim objCmnt As Comment
Set objSh = Worksheets("Arbeit")
For Each objCmnt In objSh.Comments
With objCmnt.Shape.TextFrame
.Characters.Font.Name = "Verdana"
.Characters.Font.Size = 10
.Characters.Font.Bold = False
.AutoSize = True
End With
With objCmnt.Shape
.Width = 550
.Height = 160
End With
Next
Set objSh = Nothing
End Sub
Besten Dank und Servus, Walter
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Kommentare formatieren
23.07.2017 16:15:29
Beverly
Hi Walter,
z.B. so:
Sub KommentareFormatieren()
Dim lngLetzte As Long
Dim objSh As Worksheet
Dim objCmnt As Comment
Set objSh = Worksheets("Arbeit")
With objSh
lngLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)
For Each objCmnt In .Comments
If objCmnt.Parent.Column = 1 And objCmnt.Parent.Row > 2 And objCmnt.Parent.Row 

Oder auch so:
Sub KommentareFormatieren()
Dim lngLetzte As Long
Dim objSh As Worksheet
Dim rngZelle As Range
Dim rngBereich As Range
Set objSh = Worksheets("Arbeit")
With objSh
lngLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)
Set rngBereich = .Range(.Cells(1, 2), .Cells(lngLetzte, 2))
For Each rngZelle In .Range(.Cells(2, 1), .Cells(lngLetzte, 1)).SpecialCells( _
xlCellTypeComments)
With rngZelle.Comment.Shape.TextFrame
.Characters.Font.Name = "Verdana"
.Characters.Font.Size = 10
.Characters.Font.Bold = False
.AutoSize = True
End With
With rngZelle.Comment.Shape
.Width = 550
.Height = 160
End With
Next
End With
Set objSh = Nothing
End Sub


Anzeige
Besten Dank Karin. Funktioniert. Servus Walter owT
23.07.2017 16:42:35
WalterK
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Kommentare formatieren in Excel


Schritt-für-Schritt-Anleitung

Um Kommentare in Excel mit VBA zu formatieren, befolge diese Schritte:

  1. Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf „VBAProject (DeineDateiName)“ klickst und „Einfügen“ > „Modul“ wählst.
  3. Kopiere den folgenden VBA-Code in das Modul:
Option Explicit
Sub KommentareFormatieren()
    Dim lngLetzte As Long
    Dim objSh As Worksheet
    Dim rngZelle As Range
    Dim rngBereich As Range
    Set objSh = Worksheets("Arbeit")
    With objSh
        lngLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
        For Each rngZelle In .Range(.Cells(2, 1), .Cells(lngLetzte, 1)).SpecialCells(xlCellTypeComments)
            With rngZelle.Comment.Shape.TextFrame
                .Characters.Font.Name = "Verdana"
                .Characters.Font.Size = 10
                .Characters.Font.Bold = False
                .AutoSize = True
            End With
            With rngZelle.Comment.Shape
                .Width = 550
                .Height = 160
            End With
        Next
    End With
    Set objSh = Nothing
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Führe das Makro aus, indem du ALT + F8 drückst, das Makro auswählst und auf „Ausführen“ klickst.

Häufige Fehler und Lösungen

  • Fehler: „Laufzeitfehler 1004“

    • Lösung: Stelle sicher, dass das Arbeitsblatt „Arbeit“ existiert und dass die Zellen im Bereich A2 bis zur letzten nicht leeren Zelle Kommentare enthalten.
  • Fehler: Kommentar wird nicht formatiert

    • Lösung: Überprüfe, ob Kommentare in den Zellen vorhanden sind. Der Code funktioniert nur für Zellen mit Kommentaren.

Alternative Methoden

Eine alternative Methode besteht darin, alle Notizen gleichzeitig zu formatieren. Verwende dazu den folgenden VBA-Code:

Sub AlleNotizenFormatieren()
    Dim objCmnt As Comment
    For Each objCmnt In ActiveSheet.Comments
        With objCmnt.Shape.TextFrame
            .Characters.Font.Name = "Arial"
            .Characters.Font.Size = 12
            .Characters.Font.Bold = True
        End With
    Next objCmnt
End Sub

Praktische Beispiele

  1. Alle Kommentare gleichzeitig formatieren: Wenn du alle Kommentare in einem Arbeitsblatt gleichzeitig formatieren möchtest, kannst du den ersten Beispielcode anpassen, um alle Kommentare zu erfassen.

  2. Formatierung nach Bedingungen: Du kannst auch Bedingungen hinzufügen, um nur bestimmte Kommentare zu formatieren, z.B. nur die, die einen bestimmten Text enthalten.


Tipps für Profis

  • Verwende die Option Explicit Anweisung, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Teste deinen VBA-Code in einer Kopie deiner Datei, um unerwünschte Änderungen zu vermeiden.
  • Nutze die Kommentar-Funktion, um deinen Code zu dokumentieren, besonders wenn du komplexe Logik implementierst.

FAQ: Häufige Fragen

1. Wie kann ich das Format von Kommentaren in einer bestimmten Zelle ändern?
Du kannst die If-Bedingung im Code anpassen, um nur das Format bestimmter Zellen zu ändern.

2. Ist es möglich, Kommentare direkt im Excel-Interface zu formatieren?
Ja, du kannst Kommentare manuell formatieren, jedoch ist die VBA-Methode effizienter, wenn viele Kommentare gleichzeitig bearbeitet werden müssen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige