Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
ja, wenn Du nur die Zelle änderst. Es geht doch aber um's kopieren und einfügen.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 06.12.2015
Version(en): 2016
Hallo,
dann möchte ich mich auch an diesem Thema versuchen:
- sichern aller Kommentare
- Copy/Paste
- in diesem Bereich die Kommentare aus der Sicherungskopie wieder einfügen:
Code:
Sub Vorbereitung()
'Kommentare sichern
With ActiveSheet.UsedRange
ad = .Cells(1).Address
.Copy
End With
Sheets.Add(, ActiveSheet).Range(ad).PasteSpecial xlComments
End Sub
'----------------------------------------------------------------------------------------------------
Sub Kopieren()
Sheets(3).UsedRange.Copy 'Quelle der zu kopierenden Zellen
ad = Sheets(3).UsedRange.Cells(1).Address
ActiveSheet.Range(ad).PasteSpecial
For Each c In Selection
If Not Sheets(2).Range(c.Address).Comment Is Nothing Then
Sheets(2).Range(c.Address).Copy
c.PasteSpecial xlComments
End If
Next c
End Sub
mfg
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo cgo,
Fenneks Beitrag (der aber leider (auch) das Ziel leicht verfehlte) erinnerte mich daran, das auch mehrere Zellen kopiert werden können sollen.
Das wäre dann mein Vorschlag (für einfaches Kopieren und Einfügen per Strg+c und Strg+v) auch für mehrere Zellen auf einmal:
'Automatisches Einfügen eines Kommentars bei Ändern des Zellinhaltes
'Automatisches Löschen eines Kommentars bei Entfernen des Zellinhaltes
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngZelle As Range
Dim varT As Variant
Dim oComment As Comment
With Target.Areas(1)
varT = .Formula
On Error Resume Next
Application.EnableEvents = False
Application.Undo
.Formula = varT
For Each rngZelle In .Cells
With rngZelle
If Len(.Formula) Then
If .Comment Is Nothing Then
.AddComment.Text Application.UserName & Chr(10) & Date & " " & Format(Time, "hh:mm:ss")
Else
.Comment.Text Application.UserName & Chr(10) & Date & " " & Format(Time, "hh:mm:ss") & _
Chr(10) & .Comment.Text
End If
.Comment.Shape.TextFrame.AutoSize = True
Else
If Not .Comment Is Nothing Then
.Comment.Delete
End If
End If
End With
Next rngZelle
Application.EnableEvents = True
On Error GoTo 0
End With
End Sub
Ich habe die zeitliche Anordnung mal auf absteigend geändert und die automatische Größenanpassung eingeschaltet.
Gruß Uwe
Registriert seit: 11.04.2019
Version(en): 2016
(20.04.2019, 00:36)Kuwer schrieb: Hallo cgo,
Fenneks Beitrag (der aber leider (auch) das Ziel leicht verfehlte) erinnerte mich daran, das auch mehrere Zellen kopiert werden können sollen.
Das wäre dann mein Vorschlag (für einfaches Kopieren und Einfügen per Strg+c und Strg+v) auch für mehrere Zellen auf einmal:
Ich habe die zeitliche Anordnung mal auf absteigend geändert und die automatische Größenanpassung eingeschaltet.
Gruß Uwe
Liebe Dank!
Was nun noch fehlt ist, dass nur in der Spalte A (und neuerdings auch in Spalte Q) Kommentare erlaubt sind. Kann man irgendwie beeinflussen, dass in den anderen Spalten Kommentare nicht möglich sind (d.h. auch bei Kopieren einer kommentierten Zelle aus Spalte A oder Q in eine der die restlichen Spalten kein Kommentar kopiert wird) ?!
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo,
Kommentare nur in Spalten A und Q:
Microsoft Excel Objekt Tabelle1Option Explicit
'Automatisches Einfügen eines Kommentars bei Ändern des Zellinhaltes
'Automatisches Löschen eines Kommentars bei Entfernen des Zellinhaltes
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngZelle As Range
Dim varT As Variant
Dim oComment As Comment
With Target.Areas(1)
varT = .Formula
On Error Resume Next
Application.EnableEvents = False
Application.Undo
.Formula = varT
For Each rngZelle In .Cells
With rngZelle
Select Case .Column
Case 1, 17 'Zelle befindet sich in Spalte A oder Q
If Len(.Formula) Then
If .Comment Is Nothing Then
.AddComment.Text Application.UserName & Chr(10) & Date & " " & Format(Time, "hh:mm:ss")
Else
.Comment.Text Application.UserName & Chr(10) & Date & " " & Format(Time, "hh:mm:ss") & _
Chr(10) & .Comment.Text
End If
.Comment.Shape.TextFrame.AutoSize = True
Else
If Not .Comment Is Nothing Then
.Comment.Delete
End If
End If
Case Else 'Zelle befindet sich in einer anderen Spalte
If Not .Comment Is Nothing Then
.Comment.Delete
End If
End Select
End With
Next rngZelle
Application.EnableEvents = True
On Error GoTo 0
End With
End Sub
VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media
Code erstellt und getestet in Office 14 - mit VBAHTML 12.6.0
Gruß Uwe
Registriert seit: 11.04.2019
Version(en): 2016
DANKE Uwe! Ich bin begeistert : )
Alles funktioniert so wie ich es mir vorgestellt habe.
Ich habe noch eine letzte Frage: in der Spalte F gibt es Einträge mit jeweils Verlinkungen zu bestimmten Dateien. Wenn ich den Eintrag kopiere, wurde bisher auch der Link übernommen. Dies funktioniert aktuell nicht mehr und ich Frage mich, ob das am Skript liegt?! Gewünscht ist, dass die Links tatsächlich mitkopiert werden.
Herzlichen Dank für deine große Hilfe!
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo,
(29.04.2019, 13:26)cgo schrieb: Gewünscht ist, dass die Links tatsächlich mitkopiert werden.
das geht nicht ... zumindest fällt mir da jetzt nichts Vernünftiges ein. Also entweder alte Kommentare beibehalten oder alles, inklusive Kommentare und Hyperlinks, wird kopiert.
Gruß Uwe
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
eventuell geht das in der Art? Ich setzte hier voraus, dass die Verknüpfung zu der Datei absolut ist, also z.B. mit C:\ beginnt - oder einem anderen Laufwerksbuchstaben.
Code:
Application.Undo
.Formula = varT
If ActiveCell.Value Like "?:\*" Then
.Hyperlinks.Add ActiveCell.Value, ActiveCell.Value
End If
For Each rngZelle In .Cells
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 11.04.2019
Version(en): 2016
Hallo schauan,
danke für den Vorschlag. Wo wäre der Code denn innerhalb Uwe's Skript einzubringen, um das mal zu testen?
An Uwe hätte ich noch eine Frage: seit dem das Skript genutzt wird muss leider nach Editieren einer Zelle 2x TAB gedrückt werden, um in die nächste Zelle zu wechseln. Kann dies geändert werden?!?!
Ich danke Euch vielmals!
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
06.05.2019, 11:54
(Dieser Beitrag wurde zuletzt bearbeitet: 06.05.2019, 12:04 von Kuwer.)
Hallo,
beide Sachen sind jetzt drin:
Microsoft Excel Objekt Tabelle1Option Explicit
'Automatisches Einfügen eines Kommentars bei Ändern des Zellinhaltes
'Automatisches Löschen eines Kommentars bei Entfernen des Zellinhaltes
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngZelle As Range
Dim varT As Variant
Dim oComment As Comment
With Target.Areas(1)
varT = .Formula
On Error Resume Next
Application.EnableEvents = False
Set rngZelle = ActiveCell
Application.Undo
rngZelle.Activate
.Formula = varT
For Each rngZelle In .Cells
With rngZelle
If .Column = 6 Then 'wenn Spalte F
If .Value Like "?:\*" Then
.Hyperlinks.Add .Value, .Value
End If
End If
Select Case .Column
Case 1, 17 'Zelle befindet sich in Spalte A oder Q
If Len(.Formula) Then
If .Comment Is Nothing Then
.AddComment.Text Application.UserName & Chr(10) & Date & " " & Format(Time, "hh:mm:ss")
Else
.Comment.Text Application.UserName & Chr(10) & Date & " " & Format(Time, "hh:mm:ss") & _
Chr(10) & .Comment.Text
End If
.Comment.Shape.TextFrame.AutoSize = True
Else
If Not .Comment Is Nothing Then
.Comment.Delete
End If
End If
Case Else 'Zelle befindet sich in einer anderen Spalte
If Not .Comment Is Nothing Then
.Comment.Delete
End If
End Select
End With
Next rngZelle
Application.EnableEvents = True
On Error GoTo 0
End With
End Sub
VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media
Code erstellt und getestet in Office 14 - mit VBAHTML 12.6.0
Gruß Uwe