Clever-Excel-Forum

Normale Version: Kommentare verschieben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
(29.11.2023, 12: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.

Aber auch dir vielen Dank für deine Mühen...!!!
Hallo

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.

mfg Gast 123
Oh Mann…Ich fühle mich geehrt!  17
Lösche 'Option Explicit' und der Code läuft makellos.
Hallo MuMa0806 ,

(29.11.2023, 20:48)snb schrieb: [ -> ]Lösche 'Option Explicit' und der Code läuft makellos.

schau dazu bitte unbedingt hier: Option Explicit, Intellisense und Techniken des Schreibens

Gruß, Uwe
@Kuw,

Vergessen den Code zu testen ?
Wo ist deiner bessere Vorschlag ?
Hallo snb,

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..

VG MuMa
Hallöchen,

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
Ja…in diesem Fall wäre es ein verschieben…bzw eine Zelle mit Kommentar mit einer Zelle ohne Kommentar tauschen.

VG
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
Seiten: 1 2 3 4