Microsoft Excel

Herbers Excel/VBA-Archiv

Inhalte einfügen | Herbers Excel-Forum


Betrifft: Inhalte einfügen von: Karsten
Geschrieben am: 09.12.2009 13:39:45

Hallo,

ich möchte, dass, wenn ich eine ganze Zelle kopiere, der Inhalt über:

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

und wenn ich einen Teilinhalt der Zelle kopiert habe über:

ActiveSheet.Paste

einfüge. Mir geht es darum, die Zellformatierungen nicht mit zu übertragen.

Oder anders gesagt: Teilinhalte einer Zelle lassen sich nicht mit:
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

einfügen. Gibt es dafür eine anderen Befehl?

Im Moment siht mein Makro folgendermassen aus:

Sub Strg_V()

On Error Resume Next
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

On Error Resume Next
ActiveSheet.Paste


Application.CutCopyMode = False
    Dim NeuData As DataObject
    Set NeuData = New DataObject
    NeuData.SetText ""
    NeuData.PutInClipboard

End Sub

Danke für eure Hilfe.

Gruß
Karsten

  

Betrifft: mit "Selection.PasteSpecial" von: Björn B.
Geschrieben am: 09.12.2009 13:45:03

Hallo Karsten,

wenn ich dich richtig verstanden habe, dann suchst du das hier:

Selection.PasteSpecial

Bitte testen und Rückmeldung.

Gruß
Björn B.


  

Betrifft: AW: mit "Selection.PasteSpecial" von: Karsten
Geschrieben am: 09.12.2009 13:52:59

Hallo Björn,


danke. Mit Selection.PasteSpecial läßt sich zwar auch ein Teilinhalt einfügen, aber bei Kopieren einer ganzen Zelle wird die Formatierung überflüssigerweise gleich mitübernommen.

Gruß
Karsten


  

Betrifft: naja, dann hast du die falsche Frage gestellt... von: Björn B.
Geschrieben am: 09.12.2009 13:59:58

Hallo Karsten,

Deine Frage war im ersten Beitrag:

Teilinhalte einer Zelle lassen sich nicht mit:
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False 

einfügen. Gibt es dafür eine anderen Befehl?

Das habe ich Dir beantwortet. Mit dem von mir genannten Befehl lassen sich die Teilinhalte einfügen.

Du willst wahrscheinlich wissen, ob es einen Befehl für beides gibt?
Oder was willst du?

Gruß
Björn B.


  

Betrifft: AW: naja, dann hast du die falsche Frage gestellt... von: Karsten
Geschrieben am: 09.12.2009 14:04:13

Hallo Björn,

ok. Ich brauche einen Befehl, der für beides geht, aber Formatierungen sollen nicht übernommen werden.

Gruß
Karsten


  

Betrifft: kein Ahnung... von: Björn B.
Geschrieben am: 09.12.2009 14:24:56

Hallo,

also ich kenne keinen Befehl, der in beiden Fällen funktioniert.
Sind ja aber auch 2 verschiedene Dinge, deshalb glaube ich nicht, dass es überhaupt einen gibt.
Wäre für mich unlogisch...

Das eine Mal ist das kopierte Objekt eine Zelle (mit allen Inhalten, Formatierungen, Formeln, Rahmen, Gültigkeiten, usw). Davon möchtest du selektiv nur den Wert der Zelle einfügen.

Das andere Mal ist das kopierte Objekt ein Text / String / Zahl, den Du in die Zelle einfügen möchtest, hier kann also nur Text eingefügt werden, es gibt ja nicht mehr.

Wie kopierst Du denn Deine Daten?
Kannst Du nicht statt die ganze Zelle zu kopieren nur den Inhalt kopieren? Dann hättest du das Problem gelöst...
z.B. mit
Wert = Range("A1").Value
den Wert speichern, und diesen kannst du dann einfach wieder einfügen.

Ich lass mal offen, vielleicht kennt jemand doch noch einen Befehl.

Gruß
Björn B.


  

Betrifft: AW: kein Ahnung... von: Karsten
Geschrieben am: 09.12.2009 15:35:41

Hallo Björn,

Der Wert wird immer per Hand kopiert und durch die Macht der Gewohnheit dann auch im Ganzen.
Das Ganze sieht als Beispiel so aus:

https://www.herber.de/bbs/user/66461.xls

Da Formatierungsbefehle im Privat Sub.... durchlaufen werden, habe ich mich für diese Variante entschieden, weil sonst der Inhalt der Zwischenablage verloren geht.

Vielleicht gibt es die Möglichkeit, wenn es keinen Paste-Befehl für beide Fällen gibt, im Modul Strg+V, in VBAsch übersetzt, folgendes einzubauen:

If Ganze Zelle kopiert Then
Selection.PasteSpecial
Else
ActiveSheet.Paste
End If

Gruß
Karsten


Beiträge aus den Excel-Beispielen zum Thema "Inhalte einfügen"