Registriert seit: 21.03.2021
Version(en): Professional 2010
21.03.2021, 13:25
(Dieser Beitrag wurde zuletzt bearbeitet: 21.03.2021, 14:46 von WillWissen.
Bearbeitungsgrund: Unnötige Leerzeilen entfernt, Codetag
)
Hallo, zu nachfolgendem Beispiel habe ich zwei Fragen: Code: Sub kommentar_aus_zelle_einfuegen_1()
'** Dimensionierung der Variablen
Dim kom As Comment Dim zelle As Object On Error Resume Next '** Alle markierten Zellen durchlaufen For Each zelle In Selection If zelle.Value <> "" Then Set kom = zelle.AddComment kom.Text Date & Chr(10) & zelle.Value End If Next zelle
End Sub
Frage 1: Die markierten Zellen, deren Zelleninhalt "ja" ist, haben bereits ein manuell eingefügtes Kommentar und werden deshalb vom Makro übersprungen, weil einem bereits vorhandenem Kommentar mit diesem Makro nichts hinzugefügt werden kann und ein bereits vorhandenes Kommentar mit diesem Makro auch nicht überschrieben wird. Der Fehler, der auftritt, besteht darin, dass der Zellenwert "ja" in Kommentare eingetragen wird, obwohl der Zelleninhalt "nein" ist. Wie muss das Makro geändert werden, damit dieser Fehler nicht mehr auftritt.
Frage 2: Wenn sowohl die Zellen, deren Zelleninhalt "ja" ist, als auch die Zellen deren Zelleninhalt "nein" ist, noch kein Kommentar haben, erhalten alle markierten Zellen vom Makro ein Kommentar. Wie muss das Makro geändert werden, damit nur die markierten Zellen, deren Zelleninhalt "ja" ist ein Kommentar erhalten.
Registriert seit: 11.04.2014
Version(en): Office 365
Hallo,
das halte ich für eine Spielerei, ob sich dafür jemand den Sonntag um die Ohren hauen mag?
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo, das hier kannst Du bei Bedarf besser anpassen/ergänzen: Code: Sub kommentar_aus_rngZelle_einfuegen_2() '** Dimensionierung der Variablen Dim rngZelle As Range '** Alle markierten rngZellen durchlaufen For Each rngZelle In Selection.Cells With rngZelle If Not .Comment Is Nothing Then If Len(.Value) Then .Comment.Text Date & Chr(10) & .Value Else '.Comment.Delete End If Else If .Value = "ja" Then .AddComment.Text Date & Chr(10) & .Value End If End If End With Next rngZelle End Sub
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• TxbyFmjy
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
Hallo,
die Lösung hast du ja mittlerweile von Uwe schon erhalten. Gleichzeitig möchte ich dir sagen, dass ich die Idee grundsätzlich für unsinnnig halte. Du siehst ja selbst, dass du jetzt schon umständlich im Forum fragen musst, weil du selbst nicht auf die Lösung kommst (nicht falsch verstehen, fragen ist willkommen). Wenn du die Kommentare einfach in eine separate Spalte schreiben würdest, hättest du gar kein Problem. Zellen sind einfach befüll- und auswertbar, Kommentare dagegen nicht. Stell dir vor du suchst nach etwas bestimmtem - Autofilter an und fertig. Wenn die Kommentarspalte stört, dann einfach ausblenden. Mach dir also das Leben leicht.
Schöne Grüße Berni
Registriert seit: 21.03.2021
Version(en): Professional 2010
(21.03.2021, 15:51)Kuwer schrieb: Code: Sub kommentar_aus_rngZelle_einfuegen_2() '** Dimensionierung der Variablen Dim rngZelle As Range '** Alle markierten rngZellen durchlaufen For Each rngZelle In Selection.Cells With rngZelle If Not .Comment Is Nothing Then If Len(.Value) Then .Comment.Text Date & Chr(10) & .Value Else '.Comment.Delete End If Else If .Value = "ja" Then .AddComment.Text Date & Chr(10) & .Value End If End If End With Next rngZelle End Sub
Gruß Uwe Diese Lösung von dir funktioniert einwandfrei (siehe Anlage). Herzlichen Dank.
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
Klar, wozu auch auf andere Vorschläge eingehen? Kein Problem.
Schöne Grüße Berni
Registriert seit: 21.03.2021
Version(en): Professional 2010
25.03.2021, 19:30
(Dieser Beitrag wurde zuletzt bearbeitet: 25.03.2021, 19:43 von TxbyFmjy.)
Damit nur die Zellen, deren Zelleninhalt "ja" ist und die kein Kommentar haben, das Kommentar erhalten, verwende ich folgende Fassung: Code: Sub kommentar_aus_rngZelle_einfuegen_2() '** Dimensionierung der Variablen Dim rngZelle As Range '** Alle markierten rngZellen durchlaufen For Each rngZelle In Selection.Cells With rngZelle If Not .Comment Is Nothing Then '** Wenn ein Kommentar vorhanden ist, passiert nichts Else If .Value = "ja" Then .AddComment.Text Date & Chr(10) & .Value End If End If End With Next rngZelle End Sub
Beim Original von Uwe, erhalten alle Zellen ein Kommentar, also werden alle Kommentare aller Zellen überschrieben: Code: Sub kommentar_aus_rngZelle_einfuegen_2() '** Dimensionierung der Variablen Dim rngZelle As Range '** Alle markierten rngZellen durchlaufen For Each rngZelle In Selection.Cells With rngZelle If Not .Comment Is Nothing Then If Len(.Value) Then .Comment.Text Date & Chr(10) & .Value Else '.Comment.Delete End If Else If .Value = "ja" Then .AddComment.Text Date & Chr(10) & .Value End If End If End With Next rngZelle End Sub
Registriert seit: 21.03.2021
Version(en): Professional 2010
Das ist noch besser: Code: Sub kommentar_aus_rngZelle_einfuegen_2()
'** Dimensionierung der Variablen Dim rngZelle As Range
'** Alle markierten rngZellen durchlaufen For Each rngZelle In Selection.Cells With rngZelle If Len(.Value) And .comment Is Nothing And .Value = "ja" Then
.AddComment.Text Date & Chr(10) & .Value
End If End If End With Next rngZelle End Sub
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo, da hätte ich auch noch einen: Auf Len(.Value) kannst Du verzichten, da Du ja eh auf den Inhalt "ja" prüfst. Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• TxbyFmjy
Registriert seit: 21.03.2021
Version(en): Professional 2010
(21.03.2021, 16:59)MisterBurns schrieb: Hallo,
die Lösung hast du ja mittlerweile von Uwe schon erhalten. Gleichzeitig möchte ich dir sagen, dass ich die Idee grundsätzlich für unsinnnig halte. Du siehst ja selbst, dass du jetzt schon umständlich im Forum fragen musst, weil du selbst nicht auf die Lösung kommst (nicht falsch verstehen, fragen ist willkommen). Wenn du die Kommentare einfach in eine separate Spalte schreiben würdest, hättest du gar kein Problem. Zellen sind einfach befüll- und auswertbar, Kommentare dagegen nicht. Stell dir vor du suchst nach etwas bestimmtem - Autofilter an und fertig. Wenn die Kommentarspalte stört, dann einfach ausblenden. Mach dir also das Leben leicht.
Klar, wozu auch auf andere Vorschläge eingehen? Kein Problem. Ich bin deshalb nicht auf eine Lösung gekommen, weil ich keine Ahnung habe und Zitat:Bei der Arbeit mit Excel sind Kommentare ein hervorragendes Mittel, um Erläuterungen zu einzelnen Formeln oder Werten direkt an Ort und Stelle einzubinden – ähnlich einer Haftnotiz. Dafür muss die Struktur der Tabelle nicht verändert werden, was zum Beispiel bei einer Kommentarspalte der Fall ist.
Quellenangabe: https://www.pcs-campus.de/excel/kommentare_erstellen/
|