Excel nur Zelleninhalt in Zwischenspeicher. Profis gefragt?

3 Antworten

Ich denke am einfachsten geht das über einen kleinen Umweg. Such Dir einen Bereich der weit außerhalb Deiner Tabellen liegt, im Beispiel "X1:X3" und kopiere nur die Werte dorthin. Dann kopierst Du diesen Bereich. Das Screenupdating habe ich ausgeschaltet, damit nicht zu diesem Bereich gesprungen wird.

Private Sub CommandButton3_Click()
On Error GoTo ErrorHandler
Dim rngZelle As Range

Application.ScreenUpdating = False
Range(ActiveCell, ActiveCell.Offset(2, 0)) = "ok"
ActiveCell.Offset(0, -1).Select
Range(ActiveCell, ActiveCell.Offset(2, 0)).Copy
Set rngZelle = ActiveCell
Range("X1:X3").PasteSpecial (xlPasteValues)
Range("X1:X3").Copy

rngZelle.Offset(3, 1).Select
ErrorHandler: Application.ScreenUpdating = True
End Sub

Hilft Dir das?

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)
abdun 
Fragesteller
 13.02.2020, 15:09

Hi,

danke für deine Unterstützung, jedoch ist dies nicht möglich.
Denn ich brauche den Inhalt der Zelle einfach als Wert im Zwischenspeicher. Ohne dass die Zellenrahmen oder sonstwas mitkopiert wird.

Hier packe ich mal ein Bild rein, damit es eindeutig ist.
Danke

https://www.directupload.net/file/d/5728/m4n4no4q_png.htm][IMG]https://s19.directupload.net/images/200213/temp/m4n4no4q.png

0
Oubyi, UserMod Light  14.02.2020, 01:27
@abdun

Das hatte ich auch so verstanden.
Allerdings bin ich der Meinung das mein Code genau DAS macht.
Es werden nur die Werte des ausgewählten Bereiches nach "X1:X3" kopiert und dann wird "X1:X3" kopiert, wo ja keinerlei Formatierung vorhanden ist. Da kann kein Rahmen mit kopiert werden.

Ich verstehe nicht, warum das bei Dir nicht klappt.

0
abdun 
Fragesteller
 23.02.2020, 12:54
@Oubyi, UserMod Light

Das klappt im allgemeinen.
Also wenn ich es in Word eingebe, dann ist auch alles in Ordnung, nur der Text wurde markiert. Jedoch gebe ich es in einem Browser in einer E-Mailvorlage ein, welches mit HTML geschrieben wurde. Hier fügt er leider einen Rahmen hinzu. Kopiere ich den Text manuell gibts kein Rahmen, kopiere ich über Script, gibts ein Rahmen.
Strange...

0
Oubyi, UserMod Light  23.02.2020, 16:47
@abdun

Ich habe das gerade nochmal bei mir getestet und kann Dein Problem nicht nachvollziehen.
Bei mir werden in der eMail sauber nur die drei Werte untereinander eingefügt, wenn ich z.B. STRG & V drücke. Ich kann mir auch absolut nicht vorstellen, woher da ein Rahmen kommen soll, denn um X1:X3, das kopiert wurde, ist ja keiner.

Daher kann ich Dir jetzt wohl leider nicht mehr weiterhelfen.

0
abdun 
Fragesteller
 24.02.2020, 09:15
@Oubyi, UserMod Light

Hallo,

danke für deine Nachricht und deine Hilfsversuche.
Um es nachzuvollziehen kannst du folgendes machen:

https://html-online.com/editor/

Geh bitte auf diese Seite. Hier siehst du rechts den HTML Code und links das Ergebnis dessen.

  1. Leere bitte das linke Feld, also alles markieren und löschen (nicht zwingend nötig).
  2. Nun kannst du einmal in Excel eine Zelle anklicken und den Text oben manuell rauskopieren. Alternativ halt Doppelklick auf Zelle --> Text markieren --> Kopieren
  3. Füge nun diesen im HTML Editor (links! da es kein HTML Code ist) ein.
  4. Nun sollte nur der Text eingefügt worden sein.

Anschließend machst du bitte das gleiche mit deinem Script. Also den Kopiervorgang mit deinem Script und dann in das linke Feld der oben genannten Seite einfügen. Dann wirst du merken, dass dort noch der Zellrahmen eingefügt wird.

Nun sollte das Problem eindeutig sein. Für deine weitere Hilfe bin ich dir dankbar.
Gruß

0
abdun 
Fragesteller
 24.02.2020, 09:20
@abdun

Zusatz:
Du siehst dann auch rechts im HTML Code, dass die Tabellendaten mitkopiert wurden, da diese in HTML Code vorhanden sind. Auf dieser Seite klappt es zumindest wenn ich es mit STRG+SHIFT+V (also unformatiert) einfüge. Jedoch klappt es in meinem anderen Fall nicht. Dafür muss ich die Zelle in Excel komplett formatlos in die Zwischenablage kriegen.

0
Oubyi, UserMod Light  24.02.2020, 16:15
@abdun

Alles klar. Jetzt kann ich es nachvollziehen. Und ich habe auch eine Lösung, denke ich. Da musste ich zwar erstmal etwas "graben" und Alles "ummodeln", aber so sollte es klappen:

Private Sub CommandButton3_Click()
Dim oData As New DataObject
Dim strKopieren As String

Range(ActiveCell, ActiveCell.Offset(2, 0)) = "ok"

strKopieren = ActiveCell.Offset(0, -1).Value & _
vbCrLf & ActiveCell.Offset(1, -1).Value & vbCrLf & _
ActiveCell.Offset(2, -1).Value

With oData
  .SetText strKopieren
  .PutInClipboard
End With

End Sub

Falls Du (so wie ich zuerst) die Fehlermeldung:

Fehler beim Kompilieren
Benutzerdefinierter Typ nicht definiert

bekommst, musst Du erst noch folgendes machen:

Gehe im VBA-Editor auf:

Extras/ Verweise

und setze da ein Häkchen bei:

Microsoft Forms 2.0 Object Library

Danach sollte es funktionieren.

Klappt es?

1
abdun 
Fragesteller
 16.11.2020, 15:10
@Oubyi, UserMod Light

Lang ist es her.
Ich habe es nun endlich erprobt.
Jedoch funktioniert es nicht.
Hast du es erprobt gehabt?

0
Oubyi, UserMod Light  16.11.2020, 17:22
@abdun

Ja, das war mit Sicherheit von mir getestet.
Und "funktioniert nicht" ist die mit Abstand schlechteste Beschreibung eines auftretenden Fehlers. Also:
WIE funktioniert es nicht? Welche Fehlermeldung? Welches, warum, falsches Ergebnis? Usw.

0
abdun 
Fragesteller
 17.11.2020, 16:28
@Oubyi, UserMod Light

Vielen Dank für deine Rückmeldung.

Das kopierte (z.B. eine Zahl) wird als " ￿￿ " oder als "??" ausgegeben.

0
Oubyi, UserMod Light  17.11.2020, 17:50
@abdun

Ich habe mir jetzt nochmal den oben geposteten Code auf einen Button gelegt. Wenn ich den drücke wird ok in drei Zellen geschrieben und die Werte links neben diesen Zellen werden in die Zwischenablage kopiert. Dann kann ich z.B. eine beliebige Zelle auswählen und mit Strg&V diese Werte einfügen. Oder das Ganze auch in Word einfügen. Klappt, egal ob Zahl oder Text.

Also kann ich Dein Problem leider nicht nachvollziehen und daher auch schlecht lösen. Vor allem verstehe ich nicht, wo die ?? herkommen sollen. Die müssen doch irgendwo gestanden haben, sonst hätten sie ja nicht kopiert werden können.

0
abdun 
Fragesteller
 18.11.2020, 11:50
@Oubyi, UserMod Light

Erstmal ein riesen Dank für deine Hilfe.

Ich habe es nun mit einer neuen Excel Datei erprobt. Es geht leider nicht.

In den folgenden Bildern kannst du das Resultat bei mir sehen:

https://1drv.ms/u/s!ApmsOpg-H9KV22fO1fdR1pSRucxV?e=g8P8kx

https://1drv.ms/u/s!ApmsOpg-H9KV22gmp3hClQuKNDbf?e=VZc5Fu

Hier kannst du auch gerne meine Testdatei runterladen:

https://1drv.ms/x/s!ApmsOpg-H9KV22awP4eV7tZo76Fz?e=DAZwvW

Gern kannst du mit mir auch deine Datei teilen. Ich verstehe nicht warum es bei dir funktioniert. Ich bekomme absolut keine Fehlermeldungen angezeigt.

0
Oubyi, UserMod Light  18.11.2020, 13:10
@abdun

Tja, jetzt wird es ganz komisch.
Ich habe Deine Datei runtergeladen und bei mir in Excel geöffnet und sie funktioniert einwandfrei.
Ich bekomme die drei Zahlen links von der aktiven Zelle in die Zwischenablage kopiert und kann die dann einfügen wo ich will und bekomme diese Zahlen auch genau so in drei Zellen untereinander (oder in WORD in drei Zeilen) ausgegeben.
Wie rufst Du denn die Zwischenablage ab?
Versuche mal alle Möglichkeiten:

STRG & V
"Nur den Text übernehme"
Inhalte einfügen/ Unicode-Text
Inhalte einfügen/ Text

Hast Du auch mal versucht, das woanders einzufügen, in WORD oder im Browser oder sonstwo? Oder mal eine andere Schriftart im Zielbereich?

Klappt bei mir (Excel 2019) alles.

0
abdun 
Fragesteller
 18.11.2020, 14:01
@Oubyi, UserMod Light

Oh nein.... :(

Ich habe es auf einem anderen PC erprobt. Da funktioniert es. Warum geht es denn bei mir nicht. Hast du irgendeine Idee? Oder muss ich mein Office 2019 neu installieren und erneut probieren?

0
abdun 
Fragesteller
 18.11.2020, 14:09
@Oubyi, UserMod Light

Ich habe es gerade auf dem anderen Rechner nochmal erprobt.
Nun geht es da auch nicht. Ganz komisch.
Kannst du die Datei bei dir verändern, abspeichern, schließen, erneut öffnen und dann nochmal erproben ob es funktioniert?

0
Oubyi, UserMod Light  18.11.2020, 17:58
@abdun

Habe ich gerade alles gemacht. Klappt immer, egal, was ich anstelle.

Ich habe absolut keine Idee, woran das bei Dir liegen könnte.

0

Hallo Abdun!

Die Offset-Schreibweise ist mit unsympathisch, ich habs mit meiner Methode hingekriegt.

Sub Kopieren()
   Zeile = Selection.Row
   Spalte = Selection.Column
   Cells(Zeile, Spalte) = "ok"
   Cells(Zeile, Spalte - 1).Copy
   Range("X1").Select ' eine beliebige unformatierte Zelle
   Selection.PasteSpecial Paste:=xlPasteValues
   Application.CutCopyMode = False
   Selection.Copy
   Cells(Zeile, Spalte).Select
End Sub

Woher ich das weiß:eigene Erfahrung – Faulheit >> Neugier >> Wissen
abdun 
Fragesteller
 13.02.2020, 15:50

Hi,

danke für deine Unterstützung, jedoch ist dies nicht die Lösung, da der Zellrahmen miteingefügt wird. (Aber nur im Browser im Word oder wo anders wird der Zellrahmen nicht mit eingefügt).

Denn ich brauche den Inhalt der Zelle einfach als Wert im Zwischenspeicher. Ohne dass die Zellenrahmen oder sonstwas mitkopiert wird.

Hier packe ich mal ein Bild rein, damit es eindeutig ist.

Danke

https://www.directupload.net/file/d/5728/m4n4no4q_png.htm][IMG]https://s19.directupload.net/images/200213/temp/m4n4no4q.png

0

Grundsätzlich kann man auch 'nur' den Wert pasten.
Zeichne ein Makro auf wo du anstatt STRG-C. ins Menu ->Einfügen öffnest und dort explizit "Werte" auswählst (oder nach dem anwählen der Zielzelle mit "rechtem Maus-Klick die Kachel für's einfügen wählst die "123" als Icon hat.
Dann schau dir den Makro Code an.
.PasteSpecial   bla bla  

abdun 
Fragesteller
 13.02.2020, 14:33

Danke für deine Antwort.

Jedoch möchte ich den zu kopierenden Text Formatlos in den Zwischenspeicher kopieren, da ich es manuell in einem Browser mit STRG+V einfügen muss.

Also die Möglichkeit bei Excel, es formatlos einfügen zu können, bringt mir an der Stelle nicht viel.
Trotzdem Danke für deine Bemühung.

0