Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
Wie super das mit den Kommentaren ist, hast du ja nun selber erlebt. Du hast Wünsche, die du selber nicht unsetzen kannst. Mit einer separaten Spalte hättest du das nicht. Auch wird dadurch keinerlei Struktur zerstört.
Und auch wenn du eine Antwort nicht auf Anhieb verstehst, ist es dennoch in meinen Augen höflich, eine kurze Rückmeldung zu geben. Dann kommt sich der Helfende nicht ignoriert vor.
Schöne Grüße
Berni
Registriert seit: 21.03.2021
Version(en): Professional 2010
Aber ich habe Uwe doch geantwortet.
Registriert seit: 21.03.2021
Version(en): Professional 2010
(21.03.2021, 12:35)Klaus-Dieter schrieb: Hallo,
das halte ich für eine Spielerei, ob sich dafür jemand den Sonntag um die Ohren hauen mag?
Spielerei? Ja und nein. Hilfreich. Ja
Ich arbeite mit einer Excel-Datei die im Jahre 2000 nicht von mir begonnen wurde. Seit 2000 werden Kommentare verwendet. Regelmäßig soll ich in drei Spalten fortlaufend jeweils das Kommentar einer Zelle mit gleichlautenden Informationen befüllen in Abhängigkeit vom Wert, der in der Zelle jeweils manuell eingetragen wurde. Betrag und Datum werden nachfolgend manuell im jeweiligen Kommentar eingetragen.
Der Code sieht mit Spielbegriffen anonymisiert dank der Hilfe von Uwe mittlerweile so aus:
Code: Sub insert_text_Ausschüttung1_Ausschüttung2_Ausschüttung3()
'** Dimensionierung der Variablen
Dim rngZelle As Range
'** Alle markierten rngZellen durchlaufen
For Each rngZelle In Selection.Cells
With rngZelle
If .Value = "6 aus 49: ja" And .Comment Is Nothing Then
.AddComment.Text "Ausschüttung 1" & Chr(10) & Chr(10) _
& "Wert: Betrag eintragen €" & Chr(10) & Chr(10) _
& "Dokument 1" & Chr(10) & Chr(10) _
& "Ausgang: Datum eintragen"
.Comment.Shape.TextFrame.Characters(Start:=1, Length:=14).Font.ColorIndex = 3
.Comment.Shape.TextFrame.Characters(Start:=1, Length:=14).Font.Bold = True
.Comment.Shape.TextFrame.AutoSize = True
.Comment.Shape.TextFrame.AutoMargins = True
ElseIf .Value = "Bingo: ja" And .Comment Is Nothing Then
.AddComment.Text "Ausschüttung 2" & Chr(10) & Chr(10) _
& "Wert: Betrag eintragen €" & Chr(10) & Chr(10) _
& "Dokument 2" & Chr(10) & Chr(10) _
& "Ausgang: Datum eintragen"
.Comment.Shape.TextFrame.Characters(Start:=1, Length:=14).Font.ColorIndex = 3
.Comment.Shape.TextFrame.Characters(Start:=1, Length:=14).Font.Bold = True
.Comment.Shape.TextFrame.AutoSize = True
.Comment.Shape.TextFrame.AutoMargins = True
ElseIf .Value = "Jackpot: ja" And .Comment Is Nothing Then
.AddComment.Text "Ausschüttung 3" & Chr(10) & Chr(10) _
& "Wert: Betrag eintragen €" & Chr(10) & Chr(10) _
& "Dokument 3" & Chr(10) & Chr(10) _
& "Ausgang: Datum eintragen"
.Comment.Shape.TextFrame.Characters(Start:=1, Length:=14).Font.ColorIndex = 3
.Comment.Shape.TextFrame.Characters(Start:=1, Length:=14).Font.Bold = True
.Comment.Shape.TextFrame.AutoSize = True
.Comment.Shape.TextFrame.AutoMargins = True
End If
End With
Next rngZelle
End Sub
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
27.03.2021, 20:34
(Dieser Beitrag wurde zuletzt bearbeitet: 27.03.2021, 20:37 von MisterBurns.)
Ja, Uwe hast du gentwortet. Ich hätte es nur nett gefunden, wenn du meinen Vorschlag auch einer Antwort für würdig befunden hättest. Ich hatte versucht dir zu erklären, wie du einfach und ohne VBA dein Problem hättest lösen können.
Und nur weil etwas seit 2000 auf eine Weise gemacht wird, muss das doch nicht auf ewig so bleiben. Stell dir vor, die Automobilkonstrukteure würden ihre Autos seit 20 Jahren nicht weiterentwickeln...
Schöne Grüße
Berni
Registriert seit: 21.03.2021
Version(en): Professional 2010
25.04.2021, 10:11
(Dieser Beitrag wurde zuletzt bearbeitet: 25.04.2021, 10:47 von TxbyFmjy.
Bearbeitungsgrund: 'do nothing
)
Ich arbeite mit einer Excel-Datei die im Jahre 2000 nicht von mir begonnen wurde. Seit 2000 werden Kommentare verwendet. Regelmäßig soll ich in drei Spalten fortlaufend jeweils das Kommentar einer Zelle mit gleichlautenden Informationen befüllen in Abhängigkeit vom Wert, der in der Zelle jeweils manuell eingetragen wurde. Betrag und Datum werden nachfolgend manuell im jeweiligen Kommentar eingetragen.
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/
Würde man Kommentare in einer Spalte pflegen, so dass sie unmittelbar lesbar sind (Stichwort: Zeilenumbruch), würde sich die Struktur der Tabelle verändern. Würde man Zeilenumbruch nicht verwenden, könnte man Kommentare nur in der Bearbeitungsleiste lesen.
Was habe ich übersehen?
(21.03.2021, 14: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
Wenn man nicht möchte, dass alle vorhandenen Kommentare überschrieben werden, sollte man mit seinen Anpassungen/Ergänzungen mit folgendem Code starten:
Code: .comment.Text Text:=.comment.Text & Chr(10) & Date & Chr(10) & .Value
Code: .AddComment.Text Text:=.comment.Text & Chr(10) & Date & Chr(10) & .Value
Code: Sub kommentar_aus_rngZelle_einfuegen_3()
'** 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 Text:=.comment.Text & Chr(10) & Date & Chr(10) & .Value
Else
'do nothing
End If
Else
If .Value = "ja" Then
.AddComment.Text Text:=.comment.Text & Chr(10) & 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,
Code: .AddComment.Text Text:=.comment.Text & Chr(10) & Date & Chr(10) & .Value
ist Unsinn.
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
01.05.2021, 09:02
(Dieser Beitrag wurde zuletzt bearbeitet: 01.05.2021, 09:40 von TxbyFmjy.
Bearbeitungsgrund: kleine Verbesserungen
)
Wenn man nicht möchte, dass alle vorhandenen Kommentare überschrieben werden, ist das kein Unsinn, sondern der bessere Startpunkt für Anpassungen/Ergänzungen bei Bedarf.
Kommentare aus Zellinhalten generieren_3.xlsm (Größe: 19,02 KB / Downloads: 2)
Kommentare aus Zellinhalten generieren_3-Ergebnis.xlsm (Größe: 18,98 KB / Downloads: 3)
Registriert seit: 21.03.2021
Version(en): Professional 2010
08.05.2021, 09:32
(Dieser Beitrag wurde zuletzt bearbeitet: 08.05.2021, 09:55 von TxbyFmjy.
Bearbeitungsgrund: Überprüfung der Lösung
)
Das ist auch ein Lösungsstart:
Code: Public Sub kommentar_aus_zelle_einfuegen_4()
'** Dimensionierung der Variablen
Dim kom1 As Comment
Dim kom2 As Comment
Dim zelle As Object
'** Alle markierten Zellen durchlaufen
For Each zelle In Selection
With zelle
If .Value = "421: ja" Then
If .Comment Is Nothing Then '--wenn kein Kommentar
Set kom1 = .AddComment
kom1.Text Date & Chr(10) & .Value
Else '--wenn ein Kommentar
Set kom2 = .Comment
kom2.Text Text:=Date & Chr(10) & .Comment.Text & Chr(10) & .Value & Chr(10) & "Formular 1"
End If
End If
If .Value = "422: ja" Then '--wenn kein Kommentar
If .Comment Is Nothing Then
Set kom1 = .AddComment
kom1.Text Date & Chr(10) & .Value
Else '--wenn ein Kommentar
Set kom2 = .Comment
kom2.Text Text:=Date & Chr(10) & .Comment.Text & Chr(10) & .Value & Chr(10) & "Formular 2"
End If
End If
End With
Next zelle
End Sub
Kommentare aus Zellinhalten generieren_4.xlsm (Größe: 19,23 KB / Downloads: 1)
Kommentare aus Zellinhalten generieren_4-Ergebnis.xlsm (Größe: 21,44 KB / Downloads: 1)
Registriert seit: 21.03.2021
Version(en): Professional 2010
08.05.2021, 12:13
(Dieser Beitrag wurde zuletzt bearbeitet: 08.05.2021, 12:13 von TxbyFmjy.
Bearbeitungsgrund: Überprüfung der Lösung
)
(25.04.2021, 11:26)Kuwer schrieb: Hallo,
Code: .AddComment.Text Text:=.comment.Text & Chr(10) & Date & Chr(10) & .Value
ist Unsinn.
Gruß Uwe
Stimmt.
(01.05.2021, 09:02)TxbyFmjy schrieb: Wenn man nicht möchte, dass alle vorhandenen Kommentare überschrieben werden, ist das kein Unsinn, sondern der bessere Startpunkt für Anpassungen/Ergänzungen bei Bedarf.
Anmerkung: Kommentare aus Zellinhalten generieren_3.xlsm und Kommentare aus Zellinhalten generieren_3-Ergebnis.xlsm enthalten Fehler.
Korrektur:
Code: Sub kommentar_aus_rngZelle_einfuegen_3_korrigiert()
'** Dimensionierung der Variablen
Dim rngZelle As Range
'** Alle markierten rngZellen durchlaufen
For Each rngZelle In Selection.Cells
With rngZelle
If .comment Is Nothing Then
If Len(.Value) > 0 Then
.AddComment.Text Date & Chr(10) & .Value
Else
'.Comment.Delete
End If
Else
If .Value = "421: ja" Then
.comment.Text Text:=.comment.Text & Chr(10) & Date & Chr(10) & .Value
End If
End If
End With
Next rngZelle
End Sub
Kommentare aus Zellinhalten generieren_3_korrigiert.xlsm (Größe: 19,25 KB / Downloads: 2)
Kommentare aus Zellinhalten generieren_3_korrigiert-Ergebnis.xlsm (Größe: 21,84 KB / Downloads: 2)
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo,
so passt es.
Nur als Tipp, wenn das Neueste oben stehen soll:
Code: .Comment.Text Text:=Date & Chr(10) & .Value & Chr(10) & .Comment.Text
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
|