(02.08.2025, 11:01)volti schrieb: Aber dieses hier (mehrere Zellen kopieren)
Code:
Sub Test() Dim MyData As New DataObject MyData.SetText Range("B1:B10").Value MyData.PutInClipboard End Sub
führt zum Fehler "Typen unverträglich". Klappt bei mir zumindest nicht.
Hallo Karl-Heinz,
Das ist logisch, weil das Range-Objekt hier ein 2D-Array zurückgibt und das kann VBA nicht automatisch in einen String umwandeln... muss man halt selber machen.
Nun ja, ich vermute mal das Excel beim Kopieren der Zelle intern den gleichen Code benutzt der z.B. auch für CSV benutzt wird. Da gilt ja auch das die CSV-Steuerzeichen in "" eingeschlossen werden. Somit müssten auf einem deutschen System wenn der Text Cr, Lf oder ; enthält die "" erscheinen. Probiert hab ich das nicht...
Wie auch immer, der OP wird um ein Makro nicht herumkommen. Und Dein Code ist doch gut... muss er mal probieren wie es auf seiner Maschine funktioniert.
Hatte ich auch erst vermutet, aber nach einem kleinen Test kann ich das nicht bestätigen. Möglicherweise ist die Idee von Volti näher dran?
Unabhängig davon kann man das DataObject nicht mehr verwenden, weil es anscheinend in den neueren Windows Versionen nicht mehr fehlerfrei funktioniert. Ein kleiner Test hat die Aussage aus dem Link von #10 bestätigt und die Funktionalität ist tatsächlich abhängig vom Explorer, was das DataObject vollkommen unbrauchbar macht.
02.08.2025, 18:08 (Dieser Beitrag wurde zuletzt bearbeitet: 02.08.2025, 18:08 von Schnattie.)
Zitat:
(02.08.2025, 11:38)volti schrieb: Ich denke mal, Excel will die Zelle als Datensatz bzw. als Ganzes erhalten. Wenn dort Umbrüche drin sind, werden im Texteditor ja so zu sagen wieder mehrere "Datensätze" daraus.
passt das dazu, dass die "" jeweils am Anfang und am Ende des gesamten Zellinhaltes erscheinen? Also egal ob ich nur eine Zelle oder mehrere zusammenhängend, oder auch mehrere nicht zusammenhängend (mit STrg) auswähle und via STrg+C kopiere, erscheint jeweils am Anfang und am Ende der einzelnen Zellinhalte das " .... Oder mit anderen Worten: Pro Zelle werden jeweils am Anfang und am Ende " eingefügt.
An dieser Stelle sage ich nochmal Danke für euren Input. Ich werde meine Inhalte ins wordpad kopieren, da dort die "" nicht übergeben werden und von dort nochmal via Strg+C erneut kopieren und dann direkt in den Chat posten.
04.08.2025, 19:38 (Dieser Beitrag wurde zuletzt bearbeitet: 04.08.2025, 19:39 von Schnattie.)
... nunja, ich habe aufgrund der Übersichtlichkeit nun solange rumgebastelt und die Zellinhalte verkürzt, bis ich keine ZEICHEN(10) mehr brauchte. Somit gibt es jetzt das Problem mit den "" nicht mehr.
Allerdings wäre es in dem externen Chat leserlicher, wenn nun jeweils einfach eine leere Zeile dazwischen wäre. So ergibt sich eine neue Frage:
Darf ich das hier weiterführen oder soll ich ein neues Thema daraus machen?
Die zu kopierenden Zellbereiche werden jeweils durch FILTER() Arrays erstellt. Lässt sich FILTER(....) so "umbauen", dass der Array leere Zellen zwischen den einzelnen Werten einbindet? Das doch mal ne spannende Frage, oder ??? passen dazu hab ich diese neue Fragestellung natürlich in der Beispiel xls im neuen Blatt "Filter" dargestellt
Beispiel_member-era_build-era_TestDaten_korrektur.xlsx (Größe: 39,81 KB / Downloads: 3)
b) füge bereits Leerzeilen in Deine Texte ein und in Spalte B so 6 -7 Leerzeichen in diesen Zeilen dazu Ginge auch per Formel, wenn Du A frei lässt: =WENN(A3="";" ";VERKETTEN("--> ";$A3;": ";member!$C3;" Güter; ZA: ";member!$B3;" eine Zeile reicht jetzt")) Die Leerzeichen könntest Du beim Filtern entfernen =WECHSELN(FILTER(Textdaten!B2:B134;LÄNGE(Textdaten!B2:B134)>5);" ";"")
c) Sortieren nach Filtern mit Hilfsspalte Gib in B2:B21 die Zahlen 1 bis 20 ein, kopiere das und setze es nochmal drunter Dann nimmst Du in C2 diese Formel: =SORTIEREN(A2:B41;2;1)
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)