Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1804to1808
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Kommentarzeile verschieben

Kommentarzeile verschieben
13.01.2021 16:07:13
reiner
Hallo Leute,
https://www.herber.de/bbs/user/142979.xlsx
die Zeile IST enthält in den umrandeten Zellen jeweils 1 Kommentar mit 3 bzw. 2 Kommentarzeilen.
Ich suche nach einer Möglichkeit die erste Kommentarzeile aus der Zelle C7 zu löschen (Leerzeilen sollten auch gelöscht werden) und diese Kommentarzeile in den Kommentar der Zelle F7 ebenfalls an erster Stell einzufügen.
Nach der Aktion sollen die Kommentare in den Zellen wie in Zeile SOLL aussehen.
Ist ein solches Vorhaben mittells VBA zu realisieren?
mfg reiner

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kommentarzeile verschieben
13.01.2021 20:11:01
Mullit
Hallo,
probier mal hiermit:
Option Explicit

Public Sub test()
Dim strText As String, strLine As String
Dim lngPos As Long
strText = Tabelle1.Comments(1).Text
lngPos = InStr(1, strText, vbLf)
lngPos = InStr(lngPos + 1, strText, vbLf)
strLine = Left$(String:=strText, Length:=lngPos)
Call Tabelle1.Comments(1).Text(Text:=Mid$(String:=strText, Start:=lngPos + 1))
Call Tabelle1.Comments(2).Text(Text:=strLine, Start:=1, Overwrite:=False)
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 14

Gruß, Mullit
Anzeige
AW: Kommentarzeile verschieben
14.01.2021 11:24:18
reiner
Hallo Mullit,
leider hatte ich gestern keine Möglichkeit deinen Vorschlag zu testen.
Ich habe ihn erst heute getestet und bin begeistert dass sich mein Vorhaben realisieren lässt.
Dafür vielen Dank
Noch eine Zusatzfrage; wenn der Kommentar von:
Call Tabelle1.Comments(1).Text(Text:=Mid$(String:=strText, Start:=lngPos + 1))
nach:
Call Tabelle1.Comments(2).Text(Text:=strLine, Start:=1, Overwrite:=False)
verschoben wird,
wird der verschobenen Kommentarzeile die Schriftfarbe des vorhandenen Kommentars in Zelle F7 zugewiesen (Blau).
Hast du einen Vorschllag wie ich lediglich der verschobenen Kommentarzeile (Rot) aus Zelle C7 auch in Zelle F7 die Schriftfarbe, "Rot" zuweisen kann, ohne die Schriftfarbe "Blau" der zweiten und dritten Kommentzarzeile in F7 zu verändern?
reiner
Anzeige
AW: Kommentarzeile verschieben
14.01.2021 12:36:18
Mullit
Hallo Reiner,
alles klar, null Problemo, das kriegen wir hin:
Option Explicit

Public Sub test()
Dim strText As String, strLine As String
Dim lngPos As Long, lngColor As Long
With Tabelle1
    With .Comments(1)
        strText = .Text
        lngPos = InStr(1, strText, vbLf & vbLf) + 1
        lngColor = .Shape.TextFrame.Characters(Start:=1, Length:=lngPos).Font.Color
        strLine = Left$(String:=strText, Length:=lngPos)
        Call .Text(Text:=Mid$(String:=strText, Start:=lngPos + 1))
    End With
    With .Comments(2)
        Call .Text(Text:=strLine, Start:=1, Overwrite:=False)
        .Shape.TextFrame.Characters(Start:=1, Length:=lngPos).Font.Color = lngColor
    End With
End With
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 14

Gruß, Mullit
Anzeige
AW: Kommentarzeile verschieben
14.01.2021 13:07:07
reiner
das ist sehr gut, aber eine Frage bleibt: warum ist die Schriftfarbe nun "Grün" bei der verschobenen ursprünglich ROTEN Schriftfarbe "Kommentarzeile 1.1"?
Ich kann auch nicht erkennen an welcher Stelle deines Codes die Schriftarbe zugewiesen wird
AW: Kommentarzeile verschieben
14.01.2021 15:24:59
Mullit
Hallo,
zugewiesen wird die Farbe hier:
Option Explicit
Public Sub test()
Dim strText As String, strLine As String
Dim lngPos As Long, lngColor As Long
With Tabelle1
With .Comments(1)
strText = .Text
lngPos = InStr(1, strText, vbLf & vbLf) + 1
lngColor = .Shape.TextFrame.Characters(Start:=1, Length:=lngPos).Font.Color
strLine = Left$(String:=strText, Length:=lngPos)
Call .Text(Text:=Mid$(String:=strText, Start:=lngPos + 1))
End With
With .Comments(2)
Call .Text(Text:=strLine, Start:=1, Overwrite:=False)
.Shape.TextFrame.Characters(Start:=1, Length:=lngPos). _
Font.Color = lngColor
End With
End With
End Sub

Ich lese aber vorher die Farbe in lngColor = ... ein, in Deiner Bsp.-mappe klappt das, wenn bei Dir da jetzt noch was grünes zw.-kommt, könnte es Probleme geben, Du kannst die Frabe auch ohne Einlesen direkt zu weisen:
.Shape.TextFrame.Characters(Start:=1, Length:=lngPos).Font.Color = vbRed

Sonst müsstest Du nochmal Deine Bsp.-mappe mit dem Grün-Prob. hochladen....;-)
Gruß, Mullit
Anzeige
Grün-Problem
14.01.2021 18:25:15
reiner
hallo Mullit,
https://www.herber.de/bbs/user/143013.xlsb
ich komme auf dein Angebot, die Datei wegen der falschen Farbbzuweisung erneut hochzuladen, zurück.
Ich arbeite im Blatt "Test"; das um einige Spalten erweiterte Original liegt unter Blatt "Tabelle10" (rote Registerkarte)
Die zu verschiebende Kommentarzeile ist jetzt in Spalte 2 und wird in Sopalte 6 verschoben, aber in grüner Farbe!
reiner
AW: Grün-Problem
14.01.2021 19:31:34
Mullit
Hallo Reiner,
kann ich nicht nachvollziehen, hab's nochmal mit zwei neuen Kommentaren und dem letzten Code getestet...läuft wie's soll... nochmal angehängt, die Zellen der neuen sind blau markiert....
https://www.herber.de/bbs/user/143015.xlsb
Gruß, Mullit
Anzeige
AW: Grün-Problem
15.01.2021 11:06:26
reiner
hallo Mullitt,
warum die verschobene kommentarzeile bei dir rot und bei nach wie vor in grün dargestellt wird ist wohl nicht zu klären. Ich habe
.Shape.TextFrame.Characters(Start:=1, Length:=lngPos).Font.Color = vbRed 

durch
  • ...vbBlue...vbGreen...vbYellow

  • usw. ersetzt, mit dem Ergebnis dass die verschobene Kommentarzeile immer in einer anderen aber nie in der gewünschten Farbe dargestellt wird.
    Aber viel wichtiger war mir die Verschiebung der Kommentarzeile und das funktioniert einwandfrei, vielen Dank für deine Unterstützung und deine Geduld.
    reiner
    Anzeige
    AW: Grün-Problem
    17.01.2021 09:23:13
    Mullit
    Hallo Reiner,
    ok alles klar, ich kann das Problem jetzt nachstellen, auf einem alten Zweitlaptop mit xl2007.
    Bei Kommentar-Shapes werden die Farben mit der .Color-Eig. falsch ausgelesen, Rot wird zu Grün.
    Man könnte viell. versuchen per Schleife rauszufinden, welcher Farbwert tatsächlich Rot im Kommentar darstellt, aber bei 16 Mio. Farben zieht sich das...
    Was aber erstmal funktioniert, ist die Zuweisung zur .ColorIndex-Eigenschaft, für Rot dann der Wert 3, wenn keine andere Manipulation des Farbschemas vorgenommen wurde.
    Die ist eben deswegen normalerweise zu vermeiden, da sie vom User manipuliert werden kann, aber ok wenn erstmal nix anderes hilft...;-)
    .Shape.TextFrame.Characters(Start:=1, Length:=lngPos).Font.ColorIndex = 3
    
    Oder Du liest variabel den ColorIndex aus und weist ihn dann dem Shape analog zum letzten Code wieder zu...
    Gruß, Mullit
    Anzeige
    AW: Grün-Problem
    17.01.2021 12:15:08
    reiner
    Hallo Mullit,
    mit Colorindex kann ich dem verschobenen Kommentar auch eine Farbe meiner Wahl zuweisen, das funktioniert nun, danke.
    Ich will dich nicht nerven, frage aber einfach mal an ob du evtl. auch eine Idee hast wie sich die nächste Problemstellung lösen lässt.
    Es geht immer noch um den Jahreskalender. Über eine erweiterte "SVERWEIS"-Abfrage wird mir mindestens 1 (können auch mehrere sein) Kommentar/e pro Tag (Sonnenauf- untergang) errechnet und dem jeweiligen Tag zugeordnet, Variable "FeierEreig1".
    Sofern ein weiteres Ereignis (Geburtstag o.ä.) am gleichen Tag erkannt wird, wird dieses als Variable "FeierEreig2" ebenfalls als weitere Kommentarzeile eingefügt.
    Ich beschränke das ganze mal auf 2 Ereignisse pro Tag, in meiner Originaldatei können bis zu 5 Ereignisse pro Tag im Kommentar (alle in gleicher Schriftfarbe) eingefügt werden.
    Meine Frage lautet:
    Wie müsste der nachstehende Code erweitert werden, damit das "FeierEreig1" in Schriftfarbe ROT erscheint und "FeierEreig2" in Schriftfarbe BLAU?
                    ActiveCell.Comment.Visible = False
    ElseIf FeierEreig1  "" And FeierEreig2  "" Then
    ActiveCell.Comment.Text Text:=FeierEreig1 & Chr(10) & "" & Chr(10) &  _
    FeierEreig2 & Chr(10) & ""
    ElseIf FeierEreig1  "" Then
    ActiveCell.Comment.Text Text:=FeierEreig1 & Chr(10) & ""
    ActiveCell.Comment.Shape.TextFrame.AutoSize = True
    ActiveCell.Comment.Shape.TextFrame.Characters.Font.ColorIndex = 3
    ActiveCell.Comment.Shape.TextFrame.Characters.Font.Bold = True
    

    viele grüße
    reiner
    Anzeige
    AW: Grün-Problem
    17.01.2021 16:41:06
    reiner
    Hallo Mullitt,
    ich hoffe du hattest bislang noch keine Zeit um dich mit meiner aktuellen Frage zu beschäftigen.
    Ich ziehe die Frage hiermit zurück da ich nach längerer Recherche eine Lösung gefunden habe.
    danke nochmals für die bisherige Unterstützung
    reiner

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige