Discussion:
Gleicher Kommentar für mehrere Zellen
(zu alt für eine Antwort)
Manfred Gutacker
2009-11-21 11:43:43 UTC
Permalink
Hallo liebe News Group Nutzer,

ich habe öfter die Notwendigkeit mehreren Zellen den gleichen Kommentar
zuzuordnen.
In Excel finde ich dazu keine direkte Möglichkeit. Einem markierten Bereich
wird nur der aktiven Zelle ein Kommentar zugeordnet.
Also habe ich einen Makro erstellt, der dies für mich leistet. Dieser ist
in der Personl.xls abzulegen, damit man für die aktive Tabelle universell
darauf zugreifen kann.

Für alle, die es interessiert findet Ihr nachfolgend den Code:

Sub kommentar_ueber_markierung_einfuegen()
'Bereich muss vor Anwendung des Makros ausgewählt sein
Dim kommentar_text As String
Dim kommentar_gesamt As String
Dim i As Long
Dim anzahl As Long
Dim zelle As Range
Dim bereich As Range

kommentar_text = _
InputBox("Bitte Kommentartext eingeben...", _
"Kommentar über markierte Zellen erstellen", _
"Bitte Kommentar für mehrere Zellen eingeben...")
kommentar_gesamt = "M. Gutacker" & Chr(10) & Chr(10) & kommentar_text

Set bereich = Selection
anzahl = Selection.Count

i = 0
For Each zelle In bereich
i = i + 1
Application.StatusBar = "Bearbeite Zeile " & i & " von " & anzahl
zelle.AddComment
zelle.Comment.Visible = False
zelle.Comment.Text Text:=kommentar_gesamt
With Selection.Font
.Name = "Tahoma"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With

Next

End Sub

Ich nutze Excel 2003 SP3 unter Windows XP Pro SP2

Viele Grüße
Manfred Gutacker
Manfred Gutacker
2009-11-21 12:36:28 UTC
Permalink
Post by Manfred Gutacker
Hallo liebe News Group Nutzer,
ich habe öfter die Notwendigkeit mehreren Zellen den gleichen Kommentar
zuzuordnen.
In Excel finde ich dazu keine direkte Möglichkeit. Einem markierten Bereich
wird nur der aktiven Zelle ein Kommentar zugeordnet.
Also habe ich einen Makro erstellt, der dies für mich leistet. Dieser ist
in der Personl.xls abzulegen, damit man für die aktive Tabelle universell
darauf zugreifen kann.
Sub kommentar_ueber_markierung_einfuegen()
'Bereich muss vor Anwendung des Makros ausgewählt sein
Dim kommentar_text As String
Dim kommentar_gesamt As String
Dim i As Long
Dim anzahl As Long
Dim zelle As Range
Dim bereich As Range
kommentar_text = _
InputBox("Bitte Kommentartext eingeben...", _
"Kommentar über markierte Zellen erstellen", _
"Bitte Kommentar für mehrere Zellen eingeben...")
kommentar_gesamt = "M. Gutacker" & Chr(10) & Chr(10) & kommentar_text
Set bereich = Selection
anzahl = Selection.Count
i = 0
For Each zelle In bereich
i = i + 1
Application.StatusBar = "Bearbeite Zeile " & i & " von " & anzahl
zelle.AddComment
zelle.Comment.Visible = False
zelle.Comment.Text Text:=kommentar_gesamt
With Selection.Font
.Name = "Tahoma"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Next
End Sub
Ich nutze Excel 2003 SP3 unter Windows XP Pro SP2
Viele Grüße
Manfred Gutacker
Habe noch eine kleine Änderung eingefügt, da notwendig, falls schon ein
Kommentar vorhanden ist und durch den neuen ersetzt werden soll...

Sub kommentar_ueber_markierung_einfuegen()
'Bereich muss vor Anwendung des Makros ausgewählt sein
Dim kommentar_text As String
Dim kommentar_gesamt As String
Dim i As Long
Dim anzahl As Long
Dim zelle As Range
Dim bereich As Range

kommentar_text = _
InputBox("Bitte Kommentartext eingeben...", _
"Kommentar über markierte Zellen erstellen", _
"Bitte Kommentar für mehrere Zellen eingeben...")
kommentar_gesamt = "M. Gutacker" & Chr(10) & Chr(10) & kommentar_text

Set bereich = Selection
anzahl = Selection.Count

i = 0
For Each zelle In bereich
i = i + 1
Application.StatusBar = "Bearbeite Zeile " & i & " von " & anzahl
With zelle
' Kommentar löschen, wenn bereits existiert
If Not .Comment Is Nothing Then .Comment.Delete
End With

zelle.AddComment
zelle.Comment.Visible = False
zelle.Comment.Text Text:=kommentar_gesamt
With Selection.Font
.Name = "Tahoma"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With

Next

End Sub
Andreas Killer
2009-11-21 14:25:52 UTC
Permalink
Post by Manfred Gutacker
ich habe öfter die Notwendigkeit mehreren Zellen den gleichen Kommentar
zuzuordnen.
In Excel finde ich dazu keine direkte Möglichkeit. Einem markierten Bereich
wird nur der aktiven Zelle ein Kommentar zugeordnet.
Also habe ich einen Makro erstellt, der dies für mich leistet. Dieser ist
in der Personl.xls abzulegen, damit man für die aktive Tabelle universell
darauf zugreifen kann.
Hmm, hmm, ja okay, ganz nett. ;-)

Aber was ist wenn ich nun in einem Kommentar ein paar Wörter fett oder
rot geschrieben haben möchte? Diese Formatierungen gehen so nicht.

Daher habe ich mich entschieden mir lieber ein Copy/Cut/Paste für
Kommentare zu schreiben. Damit kann ich eine Zelle mit einem Kommentar
beliebiger Art versehen und diesen dann auf andere Zellen
übertragen/verschieben.

BTW, recht schöne Symbole kann man sich von dem normalen
Cut/Copy/Paste-Icons machen indem man die weißen Bereich gelb färbt.

Andreas.

'Version 1.1
Option Private Module
Option Explicit

Private KommentarCut As Range

Sub Kommentar_Cut()
'Sind wir in der Tabelle?
If Not TypeOf Selection Is Range Then Exit Sub
'Aktive Zelle(n) kopieren
Selection.Copy
'Aktive Zelle(n) merken
Set KommentarCut = Selection
End Sub

Sub Kommentar_Copy()
'Sind wir in der Tabelle?
If Not TypeOf Selection Is Range Then Exit Sub
'Aktive Zelle(n) kopieren
Selection.Copy
'Keine Kommentare zu löschen
Set KommentarCut = Nothing
End Sub

Sub Kommentar_Paste()
Dim R As Range
'Sind wir in der Tabelle?
If Not TypeOf Selection Is Range Then Exit Sub
'Fehler abfangen, falls keine Zellen kopiert wurden
On Error GoTo ExitPoint
'Kommentar(e) einfügen
Selection.PasteSpecial xlPasteComments, _
xlPasteSpecialOperationNone
'Wurde Kommentar(e) ausschneiden gewählt?
If Not KommentarCut Is Nothing Then
'Kommentar der letzten Zelle(n) löschen
For Each R In KommentarCut
R.Comment.Delete
Next
Set KommentarCut = Nothing
'Kopieren beenden
Application.CutCopyMode = False
End If
ExitPoint:
End Sub
Manfred Gutacker
2009-11-21 14:46:04 UTC
Permalink
Post by Andreas Killer
[7 zitierte Zeilen ausgeblendet]
Hmm, hmm, ja okay, ganz nett. ;-)
Aber was ist wenn ich nun in einem Kommentar ein paar Wörter fett oder
rot geschrieben haben möchte? Diese Formatierungen gehen so nicht.
Daher habe ich mich entschieden mir lieber ein Copy/Cut/Paste für
Kommentare zu schreiben. Damit kann ich eine Zelle mit einem Kommentar
beliebiger Art versehen und diesen dann auf andere Zellen
übertragen/verschieben.
BTW, recht schöne Symbole kann man sich von dem normalen
Cut/Copy/Paste-Icons machen indem man die weißen Bereich gelb färbt.
Andreas.
'Version 1.1
Option Private Module
Option Explicit
Private KommentarCut As Range
Sub Kommentar_Cut()
'Sind wir in der Tabelle?
If Not TypeOf Selection Is Range Then Exit Sub
'Aktive Zelle(n) kopieren
Selection.Copy
'Aktive Zelle(n) merken
Set KommentarCut = Selection
End Sub
Sub Kommentar_Copy()
'Sind wir in der Tabelle?
If Not TypeOf Selection Is Range Then Exit Sub
'Aktive Zelle(n) kopieren
Selection.Copy
'Keine Kommentare zu löschen
Set KommentarCut = Nothing
End Sub
Sub Kommentar_Paste()
Dim R As Range
'Sind wir in der Tabelle?
If Not TypeOf Selection Is Range Then Exit Sub
'Fehler abfangen, falls keine Zellen kopiert wurden
On Error GoTo ExitPoint
'Kommentar(e) einfügen
Selection.PasteSpecial xlPasteComments, _
xlPasteSpecialOperationNone
'Wurde Kommentar(e) ausschneiden gewählt?
If Not KommentarCut Is Nothing Then
'Kommentar der letzten Zelle(n) löschen
For Each R In KommentarCut
R.Comment.Delete
Next
Set KommentarCut = Nothing
'Kopieren beenden
Application.CutCopyMode = False
End If
End Sub
Hallo Andreas,
Danke für Deine Antwort plus Code.
Deine Lösung ist natürlich wesentlich besser als meine. Aber als noch
'fast' Anfänger in Sachen VBA habe ich erst mal nur an meine bisherigen
Anforderungen gedacht.

Viele Grüße
Manfred
Andreas Killer
2009-11-21 14:57:59 UTC
Permalink
Post by Manfred Gutacker
Danke für Deine Antwort plus Code.
Gern geschehen.
Post by Manfred Gutacker
Deine Lösung ist natürlich wesentlich besser als meine. Aber als noch
Oh, vielen Dank für die Blumen. :-)
Post by Manfred Gutacker
'fast' Anfänger in Sachen VBA habe ich erst mal nur an meine bisherigen
Anforderungen gedacht.
Das ist ganz normal, wenn ich an meine ersten Codes denke, grausig sag
ich Dir. :-))

Andreas.

Lesen Sie weiter auf narkive:
Loading...