Anzeige
Archiv - Navigation
1768to1772
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

Kommentare mit Format übertragen

Kommentare mit Format übertragen
05.07.2020 09:57:45
Lemmy
Hallo zusammen,
ich möchte Kommentare aus dem Arbeitsblatt Tabelle1 von A7 -A5000….. auslesen.
Im Arbeitsblatt Kommentare sollen Kommentare fortlaufend Aufgleistet werden.
Wäre es möglich,dass alle Formate sowie Zeilensprünge die im Kommentar vorhanden sind zu überttagen.
Ist ein Text z.B. rot dann so soll der Text auch rot übertragen werden.
Habe ich einen Zeilensprung eingegeben soll der Zeilensprrung auch übertragen werden.
Jede Aufistungsbennnung z.B. 01_Auto oder 03_Katze hat nur einmal einen Kommentar
Sollte kein Kommentar vorhanden sein, dann soll in dem Arbeitsblatt Kommentar die Bemerkung "kein Kommentar" angezeigt werden.
(Beispiel 04_Maus; kein Kommentar)
https://www.herber.de/bbs/user/138780.xlsx
LG
Lemmy

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

Betreff
Datum
Anwender
Anzeige
AW: Kommentare mit Format übertragen
05.07.2020 10:02:39
Hajo_Zi
Hallo Lemmy,
kopieren Zielzelle wählen, rechte Maustaste, Inhalte einfügen, Kommentare.

AW: Kommentare mit Format übertragen
05.07.2020 10:33:08
Lemmy
Hallo Hajo,
geht narütlich auch... das Kopieren
...nur leider ändern sich die Inhalte fortlaufend und ich muss alles einzen übertragen. Bei den Zeilenanzahl von größer 100 ist das sehr aufwendig.
Es wäre schön wenn das über ein Makro aktualisiert werden könnte.
LG
Lemmy
AW: Kommentare mit Format übertragen
05.07.2020 10:11:19
Oberschlumpf
Hi,
was meinst du mit
...Zeilensprünge die im Kommentar vorhanden sind...
Frage zu: "Ist ein Text z.B. rot dann so soll der Text auch rot übertragen werden."
In deiner Bsp-Datei gibt es keine roten Texte.
Wo genau soll der rot formatierte Text angezeigt werden?
In deiner Bsp-Datei werden in der Tabelle "Kommentar " in Spalte A die Kommentare genau wie in Tabelle "Tabelle1" übernommen.
Soll das genau so in unseren Lösungen übernommen werden, oder willst du die Kommentare eigentkich nur in Spalte B haben?
In Spalte B stehen direkt in den Zellen die Kommentartexte aus Spalte A.
Aber einfach nur Text, ohne Formatierung.
Soll auch das genau so übernommen werden (mit Makro), oder sollen genau in Spalte B auch die Formatierungen, wie z Bsp roter Text, angezeigt werden?
Zeig bitte eine neue Bsp-Datei, in der halt meine Fragen beantwortet werden.
Vielen Dank schon mal.
Ciao
Thorsten
Anzeige
AW: Kommentare mit Format übertragen
05.07.2020 10:27:19
Lemmy
Hallo Thorsten,
Zeilensprünge:
02_Hund Der Hund ist klein...Zeilensprung ....aber (rot).... Zeilensprung ...will nicht ins Auto.
Im Arbeitsblatt sollen immer die Auflistungen und Komentare bei zum Beispiel einem Marko-Start erneuert werden.
https://www.herber.de/bbs/user/138782.xlsx
Ich habe die Datei etwas angepasst
LG
Lemmy
AW: Kommentare mit Format übertragen
05.07.2020 10:38:57
Oberschlumpf
Hi Lemmy,
danke, das sieht schon mal besser aus.
Eine Frage hatte ich leider vergessen.
Ist in "Tabelle1" in Spalte A in jeder Zelle die anfangs stehende Nummer - immer - mit einem Unterstrich vom Rest des Eintrages getrennt?
01_Text
02_Text
2546_Text
123_Text
Oder gibt es da Unterschiede?
Wenn Unterschiede, bitte noch mal eine Bsp-Datei, in der die von mir erfragten Unterschiede auch zu erkennen sind.
Danke.
Ciao
Thorsten
Anzeige
AW: Kommentare mit Format übertragen
05.07.2020 12:05:35
Lemmy
Hallo Throsten,
Nr._Text_Text_Zahlen_etc so will ich es immer machen!
Im Text nach dem ersten Unterstrich werden auch Zahlen stehen z.B. 01_Auto_123_zuhause_567
Die Nr. ist bis zu 3_stellig. Du hattest sogar 4 stellen.
Ich hoffe das es nicht soweit kommt!
LG
Lemmy
AW: Kommentare mit Format übertragen
05.07.2020 23:09:42
fcs
Hallo Lemmy,
hier ein entsprechendes Makro.
Wie bei Kommentaren üblich ist die Ausführung des Makros relativ langsam.
Stelle dich bei vielen Datenzeilen also auf eine Bearbeitungszeit im Minutenbereich ein.
LG
Franz
'Makro in einem allgemeinen Modul gespeichert.
Sub Kommentare_extrahieren()
Dim wksListe As Worksheet
Dim wksKommentar As Worksheet
Dim zeiL As Long, zeiK As Long, zeiL_1 As Long, zeiK_1 As Long
Dim varText As Variant, bolKommentar As Boolean, strKommentar As String
Dim rngZelle As Range
Dim objTextframe As TextFrame
Dim iPos As Integer, iPos1 As Integer, iPos2 As Integer
Dim arrColor(), lngColor As Long, iColor As Integer
Dim StatusCalc As Long
If MsgBox("Kommentar-Auswertung akrualisieren?", _
vbQuestion + vbOKCancel, "Kommetare auswerten") = vbCancel Then Exit Sub
'Makrobremsen lösen
With Application
.ScreenUpdating = False
StatusCalc = .Calculation
.Calculation = xlCalculationManual
End With
Set wksListe = ActiveWorkbook.Worksheets("Tabelle1")
zeiL_1 = 7 'Zeile mit 1. Wert in Auflistung
Set wksKommentar = ActiveWorkbook.Worksheets("Kommentar ")
zeiK_1 = 7 'Zeile mit 1. Wert in Kommentare
With wksKommentar
'vorhandene Einträge löschen
zeiK = .Cells(.Rows.Count, 1).End(xlUp).Row
If zeiK >= zeiK_1 Then
.Range(.Rows(zeiK_1), .Rows(zeiK)).Clear
End If
zeiK = zeiK_1 'Startzeile im Zielblatt detzen
End With
With wksListe
varText = ""
'Zeilen in Liste abarbeiten
For zeiL = zeiL_1 To .Cells(.Rows.Count, 1).End(xlUp).Row + 1
Set rngZelle = .Cells(zeiL, 1)
'Prüfen, ob sich der Text in der Zeile geändert hat
If rngZelle.Value  varText Then
If zeiL > zeiL_1 Then
'Wort in Zelle in Spalte Aeintragen
wksKommentar.Cells(zeiK, 1).Value = varText
If bolKommentar = False Then
wksKommentar.Cells(zeiK, 2).Value = "kein Kommentar"
Else
'Kommentar-Text in Spalte B eintragen
wksKommentar.Cells(zeiK, 2).Value = strKommentar
'Text in Zelle entsprechend gespeicherten Werten farbig formatieren
If iColor > 0 Then
With wksKommentar.Cells(zeiK, 2)
For iColor = 1 To UBound(arrColor, 2)
.Characters(arrColor(1, iColor), _
arrColor(2, iColor)).Font.Color = arrColor(3, iColor)
Next
End With
End If
End If
zeiK = zeiK + 1
End If
'Variablen für nächsten Eintrag setzen
varText = rngZelle.Value
bolKommentar = False
iColor = 0
Erase arrColor
End If
If rngZelle.Comment Is Nothing Then
'kein Kommentar in Zelle vorhanden
Else
bolKommentar = True
With rngZelle.Comment
strKommentar = .Text
iPos1 = 1
Set objTextframe = .Shape.TextFrame
'Farbe des 1. Buchstabens merken
lngColor = objTextframe.Characters(iPos1, 1).Font.Color
For iPos = 2 To Len(strKommentar)
'prüfen, ob sich die FRarbe des Buchstabens geändert hat
If objTextframe.Characters(iPos, 1).Font.Color  lngColor Then
'1. und letzte Position mit der Farbe in Array schreiben
iPos2 = iPos - 1
iColor = iColor + 1
ReDim Preserve arrColor(1 To 3, 1 To iColor)
arrColor(1, iColor) = iPos1
arrColor(2, iColor) = iPos2
arrColor(3, iColor) = lngColor
'neue 1. Position und Farbe merken
iPos1 = iPos
lngColor = objTextframe.Characters(iPos, 1).Font.Color
End If
Next
'Werte für letztes Zeichen in Array schreiben
iPos2 = Len(strKommentar)
iColor = iColor + 1
ReDim Preserve arrColor(1 To 3, 1 To iColor)
arrColor(1, iColor) = iPos1
arrColor(2, iColor) = iPos2
arrColor(3, iColor) = lngColor
End With
End If
Next
End With
'Inhalte der Zellen vertikal zentrieren
With wksKommentar
.Range(.Cells(zeiK_1, 1), .Cells(zeiK, 2)).VerticalAlignment = xlCenter
.Activate
End With
'Makrobremsen zurücksetzen
With Application
.ScreenUpdating = True
.Calculation = StatusCalc
.Calculate
End With
End Sub

Anzeige
AW: Kommentare mit Format übertragen
06.07.2020 08:00:35
lemmy
Hallo Franz,
meine Arbeit benötigt ein vielfaches von Minuten.....nun ist Zeit um "Kaffee" zu trinken.
Die Minuten sind im Moment nur Sekunden!
Erster Test lief perfekt!
Franz...das war super, danke!
Nun teste ich noch ein wenig, bin optimistisch das alles läüft.
LG
Lemmy
AW: Kommentare mit Format übertragen
06.07.2020 08:50:53
lemmy
Hallo Franz,
ich habe doch noch eine Bitte!
Ich würde gerne den Kommentar in Spalte C und die Listung in Spalte B haben.
Was muss geändert werden?
LG
Lemmy
AW: Kommentare mit Format übertragen
06.07.2020 12:35:15
fcs
Hallo Lemmy,
dazu muss in den entsprechenden Zeilen die 2 durch eine 3 und die 1 durch eine 2 ersetzt werden.
Zur Vereinfachung hab ich 2 Variablen eingefügt mit diesen Werten. Dann wird auch offensichtlicht, wo do die Änderungen nötig sind.
LG
Franz
'Makro in einem allgemeinen Modul gespeichert.
Sub Kommentare_extrahieren()
Dim wksListe As Worksheet
Dim wksKommentar As Worksheet
Dim zeiL As Long, zeiK As Long, zeiL_1 As Long, zeiK_1 As Long
Dim varText As Variant, bolKommentar As Boolean, strKommentar As String
Dim rngZelle As Range
Dim objTextframe As TextFrame
Dim iPos As Integer, iPos1 As Integer, iPos2 As Integer
Dim arrColor(), lngColor As Long, iColor As Integer
Dim StatusCalc As Long
Dim spaWert As Long, spaKom As Long
If MsgBox("Kommentar-Auswertung aktualisieren?", _
vbQuestion + vbOKCancel, "Kommetare auswerten") = vbCancel Then Exit Sub
'Makrobremsen lösen
With Application
.ScreenUpdating = False
StatusCalc = .Calculation
.Calculation = xlCalculationManual
End With
Set wksListe = ActiveWorkbook.Worksheets("Tabelle1")
zeiL_1 = 7  'Zeile mit 1. Wert in Auflistung
Set wksKommentar = ActiveWorkbook.Worksheets("Kommentar ")
zeiK_1 = 7  'Zeile mit 1. Wert in Kommentare
spaWert = 2 'Spalte B - Spalte für Text aus Tabelle 1
spaKom = 3  'Spalte C - Spalte für Kommentar-Text aus Tabelle 1
With wksKommentar
'vorhandene Einträge löschen
zeiK = .Cells(.Rows.Count, spaWert).End(xlUp).Row
If zeiK >= zeiK_1 Then
.Range(.Rows(zeiK_1), .Rows(zeiK)).Clear
End If
zeiK = zeiK_1 'Startzeile im Zielblatt detzen
End With
With wksListe
varText = ""
'Zeilen in Liste abarbeiten
For zeiL = zeiL_1 To .Cells(.Rows.Count, 1).End(xlUp).Row + 1
Set rngZelle = .Cells(zeiL, 1)
'Prüfen, ob sich der Text in der Zeile geändert hat
If rngZelle.Value  varText Then
If zeiL > zeiL_1 Then
'Wort in Zelle in Spalte Aeintragen
wksKommentar.Cells(zeiK, spaWert).Value = varText
If bolKommentar = False Then
wksKommentar.Cells(zeiK, spaKom).Value = "kein Kommentar"
Else
'Kommentar-Text in Spalte B eintragen
wksKommentar.Cells(zeiK, spaKom).Value = strKommentar
'Text in Zelle entsprechend gespeicherten Werten farbig formatieren
If iColor > 0 Then
With wksKommentar.Cells(zeiK, spaKom)
For iColor = 1 To UBound(arrColor, 2)
.Characters(arrColor(1, iColor), _
arrColor(2, iColor)).Font.Color = arrColor(3, iColor)
Next
End With
End If
End If
zeiK = zeiK + 1
End If
'Variablen für nächsten Eintrag setzen
varText = rngZelle.Value
bolKommentar = False
iColor = 0
Erase arrColor
End If
If rngZelle.Comment Is Nothing Then
'kein Kommentar in Zelle vorhanden
Else
bolKommentar = True
With rngZelle.Comment
strKommentar = .Text
iPos1 = 1
Set objTextframe = .Shape.TextFrame
'Farbe des 1. Buchstabens merken
lngColor = objTextframe.Characters(iPos1, 1).Font.Color
For iPos = 2 To Len(strKommentar)
'prüfen, ob sich die FRarbe des Buchstabens geändert hat
If objTextframe.Characters(iPos, 1).Font.Color  lngColor Then
'1. und letzte Position mit der Farbe in Array schreiben
iPos2 = iPos - 1
iColor = iColor + 1
ReDim Preserve arrColor(1 To 3, 1 To iColor)
arrColor(1, iColor) = iPos1
arrColor(2, iColor) = iPos2
arrColor(3, iColor) = lngColor
'neue 1. Position und Farbe merken
iPos1 = iPos
lngColor = objTextframe.Characters(iPos, 1).Font.Color
End If
Next
'Werte für letztes Zeichen in Array schreiben
iPos2 = Len(strKommentar)
iColor = iColor + 1
ReDim Preserve arrColor(1 To 3, 1 To iColor)
arrColor(1, iColor) = iPos1
arrColor(2, iColor) = iPos2
arrColor(3, iColor) = lngColor
End With
End If
Next
End With
'Inhalte der Zellen vertikal zentrieren
With wksKommentar
.Range(.Cells(zeiK_1, spaWert), .Cells(zeiK, spaKom)).VerticalAlignment = xlCenter
.Activate
End With
'Makrobremsen zurücksetzen
With Application
.ScreenUpdating = True
.Calculation = StatusCalc
.Calculate
End With
End Sub

Anzeige
AW: Kommentare mit Format übertragen
06.07.2020 14:29:38
lemmy
Hallo Franz,
hat alles super geklappt!
Vielen vielen Dank!
LG
Lemmy

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige