Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Kommentare aus Zellinhalten generieren
#11
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
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • TxbyFmjy
Antworten Top
#12
Aber ich habe Uwe doch geantwortet.
Antworten Top
#13
(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
Antworten Top
#14
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
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • TxbyFmjy
Antworten Top
#15
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:
          'do nothing

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
Antworten Top
#16
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:
  • TxbyFmjy
Antworten Top
#17
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.

   

   


.xlsm   Kommentare aus Zellinhalten generieren_3.xlsm (Größe: 19,02 KB / Downloads: 2)


.xlsm   Kommentare aus Zellinhalten generieren_3-Ergebnis.xlsm (Größe: 18,98 KB / Downloads: 3)
Antworten Top
#18
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


.xlsm   Kommentare aus Zellinhalten generieren_4.xlsm (Größe: 19,23 KB / Downloads: 1)

.xlsm   Kommentare aus Zellinhalten generieren_4-Ergebnis.xlsm (Größe: 21,44 KB / Downloads: 1)
Antworten Top
#19
(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

   
   

.xlsm   Kommentare aus Zellinhalten generieren_3_korrigiert.xlsm (Größe: 19,25 KB / Downloads: 2)

.xlsm   Kommentare aus Zellinhalten generieren_3_korrigiert-Ergebnis.xlsm (Größe: 21,84 KB / Downloads: 2)
Antworten Top
#20
Hallo,

so passt es. Smile

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:
  • TxbyFmjy
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste