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

Forumthread: Kommentare auslesen

Kommentare auslesen
06.02.2007 18:12:05
Peter Schilling
Hallo Excelfreunde
gibt es die Möglichkeit die Kommentare die in einer Tabelle in den Zellen hinterlegt sind, auszulesen und in eine separate Tabelle zu speichern.
In meiner Tabelle sind ca 50 Kommentare hinterlegt die ich gerne in einer extra Tabelle hätte.
Ist das möglich.
Ich meine nicht "Alle kommentare" anzeigen über Optionen.
Gruß Dieter
Anzeige

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kommentare auslesen
06.02.2007 19:10:55
Peter Schilling
Hallo Excelfreund
zuerst kam die Meldung (Tabelle) geschützt.
OK hierfür habe ich den tabellenschutz rausgenommen.
Jetzt konnt die Meldung "Objektvariable oder With Bockvariable nicht festgelegt= laufzeitfehler 91
Was kann ich dagegen tun.
Gruß Dieter
AW: Kommentare auslesen
06.02.2007 20:17:09
K.Rola
Hallo,
Option Explicit
Sub Kommentartext_in_Zelle()
''Die Blattnamen musst du ggf. anpassen.
Dim rngK As Range, c As Range, i As Long
If ActiveSheet.Comments.Count > 0 Then
Set rngK = Cells.SpecialCells(-4144)
For Each c In rngK
i = i + 1
With Sheets("Tabelle2")
.Cells(i, 1) = c.Address
.Cells(i, 2) = c.Comment.Text
.Cells(i, 2).Replace Chr(10), ""
End With
Next
Else
MsgBox "Nix Kommentar!"
End If
End Sub

Keyboard not found, press F8 to continue or any key to abort!


Anzeige
AW: Kommentare auslesen
06.02.2007 20:27:36
Peter Schilling
Hallo Excelfreund
ich habe den Code so in eine Modul gepackt erhalte aber "Index ausserhalb des güligen Bereichs"
Die Kommentare stehen in Tabelle1 (Wartungspläne)
Die Ausgabe soll in Tabelle5 (Kommentare) erfolgen.
Habe ich hier etwas falsch angepasst.
Option Explicit

Sub Kommentartext_in_Zelle()
''Die Blattnamen musst du ggf. anpassen.
Dim rngK As Range, c As Range, i As Long
If ActiveSheet.Comments.Count > 0 Then
Set rngK = Cells.SpecialCells(-4144)
For Each c In rngK
i = i + 1
With Sheets("Tabelle5")
.Cells(i, 1) = c.Address
.Cells(i, 2) = c.Comment.Text
.Cells(i, 2).Replace Chr(10), ""
End With
Next
Else
MsgBox "Nix Kommentar!"
End If
End Sub

Gruß Dieter
Anzeige
AW: Kommentare auslesen
06.02.2007 20:37:45
K.Rola
Hallo,
Tabelle1 muss aktiv sein, so sollte es auch funktionieren, wenn Tabelle1
nicht aktiv ist. Falls das nicht funktioniert, muss was anderes faul sein,
dann solltest du die Mappe mal hochladen:
Option Explicit

Sub Kommentartext_in_Zelle()
''Die Blattnamen musst du ggf. anpassen.
Dim rngK As Range, c As Range, i As Long, Wsh As Worksheet
Set Wsh = Sheets("Tabelle1")
If Wsh.Comments.Count > 0 Then
Set rngK = Wsh.Cells.SpecialCells(-4144)
For Each c In rngK
i = i + 1
With Sheets("Tabelle2")
.Cells(i, 1) = c.Address
.Cells(i, 2) = c.Comment.Text
.Cells(i, 2).Replace Chr(10), ""
End With
Next
Else
MsgBox "Nix Kommentar!"
End If
End Sub

Gruß K.Rola
Anzeige
Tip...
06.02.2007 20:40:23
Ramses
Hallo K.Rola
Neben deinem Hinweis auf die aktuelle Tabelle, hört sich
"...Die Ausgabe soll in Tabelle5 (Kommentare) erfolgen...."
eventuell nach
With Sheets("Kommentare")
anstelle von
With Sheets("Tabelle2")
an ;-)
Gruss Rainer
AW: Tip...
06.02.2007 21:00:22
K.Rola
Hallo Ramses,
deshalb die Zeile
''Die Blattnamen musst du ggf. anpassen.
Gruß K.Rola
Anzeige
AW: Tip...
06.02.2007 21:17:12
Ramses
Hallo K.Rola
Tja,... 5 Uhr morgens sollte man halt etwas langsamer lesen :-)
Gruss Rainer
AW: 5 Uhr morgens?
06.02.2007 21:21:25
K.Rola
Hallo Ramses,
auf welchem Planeten treibst du dich denn schon wieder rum?
Gruß K.Rola
AW: 5 Uhr morgens?
06.02.2007 21:37:26
Ramses
Hallo K.Rola
Userbild
Derzeit ziemlich genau 24 Grad,... ausserhalb des Flughafens ;-)
Gruss Rainer
Anzeige
AW: Kommentare auslesen
06.02.2007 21:18:30
K.Rola
Hallo,
zunächst mal hast du die Blattnamen im Code nicht angepasst.
Dann befinden sich in dem Wartungsplan jede Menge unnötig verbundene
Zellen. Wenn du die rausnimmst, läuft der Code.
Gruß K.Rola
AW: Kommentare auslesen
07.02.2007 16:59:39
Peter Schilling
Hallo Excelfreunde
ich habe alle verbundenen Zellen aufgelösst.
So läuft das Auslesen.
Besten danke an alle.
Da alles sehr unübersichtlich ist würde ich das Auslesen mir eurer Hilfe gerne etwas anders gestalten.
Können die Kommentare mit dem zugehörigen Text in die Tabelle "Kommentare" eingefügt werden.???
Sprich:
Zeile A14 = Haltelehren überprüfen,einstellen
Zeile B14 = Kommentar der Zeile A14
Ist das möglich.
Gruß Dieter
Anzeige
frage noch offen
09.02.2007 12:38:39
Peter Schilling
Hallo Excelfreunde
kann hier keiner weiterhelfen.
Gruß Dieter
AW: Kommentare auslesen
08.02.2007 08:52:37
Rolf Beißner
Hallo K.Rola, hallo ransi,
gibt's einen Vorteil des Auslesens über SpezialCells gegenüber
der direkten Commentauflistung?

Sub commentViaCommentList()
Dim c As Comment
For Each c In Tabelle1.Comments
Debug.Print c.Text
Next
End Sub

hG
Rolf
Anzeige
AW: Kommentare auslesen
08.02.2007 11:42:19
Peter Schilling
Hallo Rolf
die Frage bitte auf lassen.
Gruß Dieter
AW: Kommentare auslesen
08.02.2007 22:55:13
Lars
Hi,
der entscheidende Vorteil liegt im debugging.
mfg Lars
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Kommentare in Excel auslesen und in eine neue Zelle schreiben


Schritt-für-Schritt-Anleitung

Um Kommentare in Excel auszulesen und in eine neue Zelle zu schreiben, kannst Du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

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

  2. Füge ein neues Modul ein: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsm)" > Einfügen > Modul.

  3. Kopiere und füge den folgenden Code ein:

    Option Explicit
    
    Sub Kommentartext_in_Zelle()
        Dim rngK As Range, c As Range, i As Long
        If ActiveSheet.Comments.Count > 0 Then
            Set rngK = Cells.SpecialCells(xlCellTypeComments)
            For Each c In rngK
                i = i + 1
                With Sheets("Tabelle2") ' Ändere den Tabellennamen nach Bedarf
                    .Cells(i, 1) = c.Address
                    .Cells(i, 2) = c.Comment.Text
                    .Cells(i, 2).Replace Chr(10), ""
                End With
            Next
        Else
            MsgBox "Nix Kommentar!"
        End If
    End Sub
  4. Passe den Tabellennamen an, in der die Kommentare gespeichert werden sollen (aktuell "Tabelle2").

  5. Führe das Skript aus: Drücke F5 oder gehe zu "Run" > "Run Sub/UserForm".


Häufige Fehler und Lösungen

  • Objektvariable oder With-Bockvariable nicht festgelegt (Laufzeitfehler 91): Dieser Fehler tritt häufig auf, wenn Du versuchst, auf ein Objekt zuzugreifen, das nicht existiert. Stelle sicher, dass die Tabelle, in der Du die Kommentare speichern möchtest, auch existiert und korrekt benannt ist.

  • Index außerhalb des gültigen Bereichs: Überprüfe, ob alle Tabellenblätter, die Du im Code verwendest, tatsächlich existieren. Möglicherweise hast Du die Tabellennamen nicht korrekt angepasst.

  • Geschützte Tabelle: Wenn der Tabellenschutz aktiv ist, kannst Du keine Änderungen vornehmen. Deaktiviere den Schutz, bevor Du das Skript ausführst.


Alternative Methoden

Falls Du Excel-Kommentare ohne VBA auslesen möchtest, kannst Du eine Formel verwenden, um Kommentare in eine Zelle auszugeben. Beachte, dass dies in Excel nicht direkt unterstützt wird, aber Du kannst VBA verwenden, um die Werte zu extrahieren.

Ein weiteres Tool könnte PowerShell sein, um Excel-Daten auszulesen. Hier ist ein einfaches Beispiel:

$excel = New-Object -ComObject Excel.Application
$workbook = $excel.Workbooks.Open("C:\Pfad\zu\deiner\Datei.xlsx")
$worksheet = $workbook.Worksheets.Item(1)

foreach ($cell in $worksheet.UsedRange) {
    if ($cell.Comment) {
        Write-Host $cell.Address " - " $cell.Comment.Text
    }
}

$workbook.Close()
$excel.Quit()

Praktische Beispiele

Wenn Du die Kommentare speziell für bestimmte Zellen auslesen möchtest, kannst Du den VBA-Code anpassen. Zum Beispiel:

Sub KommentareFuerBestimmteZellen()
    Dim rngK As Range, c As Range, i As Long
    Set rngK = Sheets("Tabelle1").Range("A1:A50") ' Bereich anpassen
    For Each c In rngK
        If Not c.Comment Is Nothing Then
            i = i + 1
            With Sheets("Tabelle2")
                .Cells(i, 1) = c.Address
                .Cells(i, 2) = c.Comment.Text
            End With
        End If
    Next
End Sub

Dieser Code liest die Kommentare nur für den angegebenen Zellbereich aus.


Tipps für Profis

  • Nutze Debug.Print im Code, um während der Ausführung zu sehen, welche Kommentare verarbeitet werden.
  • Halte Deine VBA-Umgebung organisiert, indem Du Module für verschiedene Funktionen erstellst.
  • Wenn Du häufiger mit Kommentaren arbeitest, erwäge, eigene Funktionen zu erstellen, um den Prozess zu automatisieren.

FAQ: Häufige Fragen

1. Wie kann ich Kommentare in Excel 2007 auslesen? Die oben genannten VBA-Methoden funktionieren auch in Excel 2007. Achte darauf, dass die Sicherheitsoptionen VBA erlauben.

2. Kann ich Kommentare in eine bestimmte Zelle ausgeben? Ja, Du kannst den Code anpassen, um die Kommentare an spezifischen Zellen auszugeben, indem Du die Adressen der Zellen im Code angibst.

3. Gibt es eine Formel zum Auslesen von Kommentaren? Direkt gibt es keine Formel, um Kommentare auszulesen. VBA ist die beste Methode, um dies zu erreichen.

4. Ist es möglich, Kommentare in andere Formate zu exportieren? Ja, Du kannst die Kommentare in Textdateien oder andere Excel-Tabellen exportieren, indem Du den VBA-Code entsprechend 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