ich möchte gerne Kommentare auslesen bzw gleiche Kommentare zählen lassen.
Siehe Bsp-Mappe https://www.herber.de/bbs/user/24011.xls
Vielleicht hat jemand ne Lösung.
Gruß und danke vorab
Tom
Sub ListComments()
Dim c As Comment, cmt As Comments
Set cmt = ActiveSheet.Comments
For Each c In cmt
Debug.Print c.Text
Next
End Sub
'Ausagbe
Dim AusgabeBereich As Range
Dim Ausgabe()
Dim Z As Long
Dim C As Long
Set AusgabeBereich = Range("I1:K1")
Ausgabe = Application.WorksheetFunction.Transpose(Application.WorksheetFunction.Transpose(AusgabeBereich))
Z = AusgabeBereich.Row
C = AusgabeBereich.Column
For i = 1 To UBound(Kommentare) - 1
'Überschriften
Cells(Z, C + i - 1) = Application.WorksheetFunction.Substitute(Kommentare(i + 1), Chr(10), "")
For k = 1 To UBound(Namen)
'Anzahl
Cells(Z + k, C + i - 1) = Namen(k, i + 1)
Next k, i
Set AusgabeBereich = Nothing
Private Sub KommentareZählen()
Dim Kommentar As Comment 'Kommentar
Dim Kommentare() As String 'Feld, das alle bisher gefundenen Kommentare enthält
Dim Namen() 'Namen(1,1)=Name1
'Namen(2,1)=Name2
'Namen(1,2)=Anzahl der gefundenen 1. Kommentare von Name1
'Namen(1,3)=Anzahl der gefundenen 2. Kommentare von Name1
Dim Zeile As Long 'Index des Namens
Dim KommText As String 'Text des Kommentars
Dim i As Integer 'Zählvariabele
Dim k As Integer 'Zählvariabele
Dim Bereich As Range 'Bereich, in dem die Namen stehen
Set Bereich = Range("A2:A7") 'kriegts Du angepasst
Namen = Bereich
ReDim Kommentare(1)
For Each Kommentar In ActiveSheet.Comments
Zeile = Kommentar.Parent.Row - Bereich.Row + 1 'Index ermitteln
KommText = Kommentar.Text
For i = 1 To UBound(Namen, 2) 'Prüfen, ob Kommentar schon vorhanden?
If Kommentare(i) = KommText Then Exit For
Next i
If i > UBound(Namen, 2) Then 'wenn Kommentar nicht gefunden
ReDim Preserve Kommentare(UBound(Kommentare) + 1) 'Felder erweitern
ReDim Preserve Namen(1 To UBound(Namen, 1), 1 To UBound(Kommentare))
Kommentare(UBound(Kommentare)) = KommText 'neuen Kommentar merken
End If
Namen(Zeile, i) = Namen(Zeile, i) + 1 'Anzahl Kommentar dieses Namens um 1 erhöhen
Next Kommentar
'Ausagbe
For i = 1 To UBound(Kommentare) - 1
For k = 1 To UBound(Namen)
MsgBox Namen(k, 1) & " hat " & Kommentare(i + 1) & ": " & Namen(k, i + 1)
Next k, i
Set Bereich = Nothing
End Sub
Öffne die Excel-Datei, in der Du die Kommentare auslesen möchtest.
Drücke ALT + F11
, um den Visual Basic for Applications (VBA) Editor zu öffnen.
Füge ein neues Modul hinzu:
Kopiere den folgenden Code in das Modul:
Sub KommentareZählen()
Dim Kommentar As Comment
Dim Kommentare() As String
Dim Namen() As String
Dim Zeile As Long
Dim KommText As String
Dim i As Integer
Dim Bereich As Range
Set Bereich = Range("A2:A7") ' Passe den Bereich nach Bedarf an
Namen = Bereich
ReDim Kommentare(1)
For Each Kommentar In ActiveSheet.Comments
Zeile = Kommentar.Parent.Row - Bereich.Row + 1
KommText = Kommentar.Text
For i = 1 To UBound(Namen, 2)
If Kommentare(i) = KommText Then Exit For
Next i
If i > UBound(Namen, 2) Then
ReDim Preserve Kommentare(UBound(Kommentare) + 1)
Kommentare(UBound(Kommentare)) = KommText
End If
Namen(Zeile, i) = Namen(Zeile, i) + 1
Next Kommentar
' Ausgabe der Anzahl der Kommentare
For i = 1 To UBound(Kommentare) - 1
MsgBox Namen(i, 1) & " hat " & Kommentare(i + 1) & ": " & Namen(i, i + 1)
Next i
End Sub
Schließe den VBA-Editor und gehe zurück zu Excel.
Starte das Makro, um die Kommentare zu zählen.
Problem: Es passiert nichts, wenn das Makro gestartet wird.
Range
-Befehl.Problem: Die Ausgabe wird nicht korrekt angezeigt.
Eine andere Möglichkeit, die Anzahl der Kommentare in Word anzuzeigen, wäre die Verwendung von Formeln in Excel anstelle von VBA. Du kannst die Funktion ZÄHLENWENN
verwenden, um die Anzahl bestimmter Kommentare in einem definierten Bereich zu zählen.
Wenn Du beispielsweise die Anzahl der Kommentare für eine Liste von Namen in der Spalte A zählst, kannst Du den VBA-Code entsprechend anpassen. Hier ist ein einfaches Beispiel, um die Anzahl der Kommentare in der Zelle B1 anzuzeigen:
Sub KommentareZaehlenUndAnzeigen()
Dim Kommentar As Comment
Dim Anzahl As Integer
Anzahl = 0
For Each Kommentar In ActiveSheet.Comments
Anzahl = Anzahl + 1
Next Kommentar
Range("B1").Value = "Anzahl der Kommentare: " & Anzahl
End Sub
1. Wie kann ich die Anzahl der Kommentare in Word anzeigen lassen?
Du kannst in Excel ein Makro verwenden, um die Anzahl Kommentare
in einer bestimmten Zelle anzuzeigen.
2. Gibt es eine Möglichkeit, die gleichen Kommentare zu zählen? Ja, Du kannst den VBA-Code so anpassen, dass er nur die eindeutigen Kommentare zählt und die Häufigkeit jedes Kommentars speichert.
3. Funktioniert dieser Code in allen Excel-Versionen? Die oben genannten VBA-Codes sollten in den meisten Excel-Versionen ab 2010 funktionieren. Stelle sicher, dass Du die Makros aktiviert hast.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen