29.11.2023, 13:51 (Dieser Beitrag wurde zuletzt bearbeitet: 29.11.2023, 13:55 von MuMa0806.)
(29.11.2023, 13:10)snb schrieb: Du schreibst: 'verschieben', du meinst 'verwechseln', 'austauschen'.
Code:
Sub M_snb() y = -1
For Each it In Intersect(Selection.EntireRow, Range("J9:OP14")).SpecialCells(-4144) c00 = it.Offset(y).Comment.Text it.Offset(y).Comment.Text it.Comment.Text it.Comment.Text c00 Next End Sub
Richtig...verwechseln bzw austauschen...korrekt!
Deinen Code habe ich mir kopiert. Das Dimensionieren von y habe ich noch hinbekommen, aber für was steht das "it" in deinem Code?
Danke aber erst einmal bis hier hin! @Gast123:
Dein Code funktioniert insoweit, dass es die Kommentare verschiebt, allerdings nicht für die gesamte Zeile und es überschreibt die vorhandenen Kommentare.
Wie snb es richtigerweise festgestellt hat, meine ich, dass die Kommentare wechseln bzw ausgetauscht werden sollen.
schmunzel, da kam snb mit seinem berühmten Einzeiler hinzu. Einer der besten Programmierer. Ich denke it ist die Abkürzung für Item als Objekt. c00 ist auch eine Standard Variable von ihm.
wie gesagt, ich freue mich sehr, dass du dich meines kleinen "Problems" annimmst.
Ich habe die 'Option Explicit' herausgelöscht und im Zellenbereich versucht. Dabei bekam ich jedoch einen "Laufzeitfehler '91': Objektvariable oder With-Blockvariable nicht festgelegt".
Wenn zwei Kommentare direkt übereinander stehen, funktioniert der Code einwandfrei! Allerdings soll der Kommentar auch in eine Zelle ohne Kommentare getauscht werden.
Ich versuche es ein wenig plastischer Darzustellen und stelle eine abgespeckte Version meines Excel-Dienstplanes mit zur verfügung.
Hier ist der Bereich von L6:ON15 betroffen.
Ich möchte, wenn ich über die 'Stammdaten' einen neuen Mitarbeiter in die Schicht implementiere und dieser nach Nachnamen geordnet ist, dass sich der Datensatz L6:ON15 im 'Dienstplan' ebenfalls mit ordnet. Ich habe es bereist geschafft, dass ich dies mit den Zellinhalten und ohne Formatierung hinbekomme, scheitere jedoch an den Kommentaren.
Ich hoffe, es irgendwie passend erklärt zu haben. Ansonsten fragt gern nach...
Ich bedanke mich für die tolle Unterstützung bis hier her..
Zitat:Allerdings soll der Kommentar auch in eine Zelle ohne Kommentare getauscht werden.
Das ist dann aber kein Tausch, sondern ein Verschieben bzw. Neueintrag. Du bekommst dann den Fehler, weil es noch kein "Kommentarobjekt" in der Zelle gibt. Siehe der Ansatz vom Gast aus #9
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
30.11.2023, 11:51 (Dieser Beitrag wurde zuletzt bearbeitet: 30.11.2023, 11:52 von snb.)
Ah, neue Wünsche: Comments verwechseln oder erstellen und kopiieren
1. Verzichte immer auf verbundene Zellen 2. Passe kopiierte Code immer an an der neue Kontext ("J9:OP15" <> "J6:ON14")
Code:
Sub M_snb() y = -1
For Each it In Intersect(Selection.EntireRow, Range("J6:ON14")).SpecialCells(-4144) If Intersect(it.Offset(y), Intersect(Selection.EntireRow, Range("J6:ON14")).SpecialCells(-4144)) Is Nothing Then it.Offset(y).AddComment c00 = it.Offset(y).Comment.Text it.Offset(y).Comment.Text it.Comment.Text If c00 <> "" Then it.Comment.Text c00 Next End Sub