Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1096to1100
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

PasteSpecial

PasteSpecial
Hampelmann
Hallo,
ich habe mit PasteSpecial ein kleines Problem, ich hoffe Ihr könnt mir helfen.
Folgende Situation:
Ich habe große Datenmengen in einer Exceltabelle (ohne Formatierung), davon muss ich einen Großteil
in eine andere Exceltabelle (mit Formatierung) kopieren. Da ich das hin und her springen zwischen
den einzelnen Excel-Blättern leid war hab ich mir auf jedem meiner Monitore je ein Excel geöffnet
und kopiere die Daten in dem einen Excel und füge es über

Sub Einfuegen_Format_beibehalten()
ActiveSheet.PasteSpecial Format:="Unicode-Text", Link:=False, _
DisplayAsIcon:=False
End Sub

in die andere Excel Instanz ein. Funktioniert auch wunderbar solang ich nicht versuche alles aus einer Excel Instanz zu kopieren und einfügen, denn da funzt komischerweiße die Prozedur nicht mehr.
Fehlermeldung:
"Die PasteSpecial-Methode des Worksheet-Objektes konnte nicht gefunden werden."
Jetzt ist meine Frage: Wie muss ich die Prozedur umschreiben damit ich sowohl aus der selben wie auch aus einer zweiten Excel Instanz die Daten kopieren kann, ohne das das Zielformat überschrieben wird.
Danke im vorraus!!!

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: PasteSpecial
25.08.2009 12:37:06
Hajo_Zi
Halo unbekannter,
für
ActiveSheet
dies
Worksheets("Tabelle1").Range("A1")

AW: PasteSpecial
25.08.2009 13:03:55
Hampelmann
Hallo Hajo,
Danke für deine schnelle Antwort!
Ich habe "ActiveSheet" durch "Worksheets("Tabelle1").Range("A1")" ersetzt, jedoch funtz es immer noch nicht.
Gruß Hampelmann
AW: PasteSpecial
25.08.2009 13:12:15
Hajo_Zi
Hallo Unbekannter,
Du hast also den Nmaen Deiner Zieltabelle eintragen und auch die Zielzelle. Habe ich zufällig das richtige hingeschrieben.
Gruß Hajo
Anzeige
AW: PasteSpecial
25.08.2009 13:17:41
Hampelmann
Hallo Hajo,
ich habe die Zieltabelle und Zielzelle angepasst, hab es oben vergessen zu erwähnen.
Gruß Hampelmann
AW: PasteSpecial
25.08.2009 13:24:55
Hajo_Zi
Hallo Unbekannter,
ich war davon ausgegangen das Dein Code läuft und habe ihn deshalb nicht geprüft.
Mein Excel kennnt die Befehle
Format:="Unicode-Text", Link:=False, _
DisplayAsIcon:=False
Nicht und ich vermute mal Deins auch nicht.
Gruß Hajo
AW: PasteSpecial
25.08.2009 13:28:57
Hampelmann
Hallo Hajo,
das ist komisch, da das Makro ja funktioniert (wenn ich den Inhalt aus der zweiten Excel Instanz kopiert habe) und zu dem Quellcode kam ich über die Funktion Makro Aufzeichnen.
Dieses Makro funktioniert halt nur dann nicht wenn ich aus der selben Excelinstanz die Daten kopiere.
Gruß Hampelmann
Anzeige
AW: PasteSpecial
25.08.2009 13:37:20
Hajo_Zi
Halo Unbekannter,
ich hätte ja
Worksheets("Tabelle1").Range("A22").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
benutzt.
Gruß Hajo
AW: PasteSpecial
25.08.2009 13:39:05
Matthias5
Hallo Hajo,
es müssen nur die entsprechenden Daten in der Zwischenablage liegen.
Kopiere mal diesen Beitragstext und rufe in Excel "Inhalte einfügen" auf, dann kennt dein Excel das auch! ;-)
Gruß,
Matthias
AW: PasteSpecial
25.08.2009 13:33:26
Matthias5
Hallo,
wenn du die bereits eingefügten Daten noch einmal aus aus Excel heraus kopierst und einfügen willst, steht dir .PasteSpecial Format:="Unicode-Text" nicht mehr zur Verfügung. Vielleicht lädst du mal ein Beispiel hoch oder machst anders verständlicher, was genau du ausführst.
Hinweis: Hajos Hinweis zur Verwendung von Range ist hier nicht richtig, da Pastespecial in diesem Fall auf das Worksheet-Objekt angewendet wird. Das hat er wohl übersehen.
Gruß,
Matthias
Anzeige
AW: PasteSpecial
25.08.2009 13:46:57
Hampelmann
Hallo Matthias,
Szenario 1:
Ich öffne Excel und kopiere von da Daten heraus. Anschließend öffne ich nochmal Excel und füge dort mit dem oben genannten Makro diese Daten ein. Das funktioniert auch soweit. Er überschreibt das Zellformat der Zieldatei nicht.
Szenario 2:
Ich öffne Excel kopiere die Daten heraus und öffne diesmal nur eine 2 Arbeitsmappe. Wenn ich nun mit dem oben genannten Maktro die Daten einfügen will dann kommt eben diese Fehlermeldung und er fügt keine Daten ein.
Gruß Hampelmann
AW: PasteSpecial
25.08.2009 13:55:29
Matthias5
Hi,
die Option .PasteSpecial Format:="Unicode-Text" steht dir schlicht und ergreifend nicht zur Verfügung, wenn du innerhalb derselben Instanz einfügst.
Ich weiß jetzt nicht, in welchen Ablauf das Ganze eingebunden ist. Wenn du unbedingt eine zweite Instanz verwenden musst (musst du?), müsstest eigentlich zwei Aufrufe haben. Einen zum Einfügen innerhalb der ersten Instanz (siehe Hajos Codeschnipsel) und einen zum Einfügen in der zweiten Instanz (dein Code).
Gruß,
Matthias
Anzeige
AW: PasteSpecial
25.08.2009 14:04:42
Hampelmann
Hallo Matthias,
der Aufruf einer zweiten Instanz ist praktischer, da ich somit etwas schneller voran komme.
Ich werde es dann halt so machen das ich 2 verschiedene Makros schreibe.
Vielen Dank euch für die Hilfe!
Viele Grüße
Hampelmann
Mit OnErrorResumeNext das 2. Makro sparen
25.08.2009 22:39:00
Daniel
Hi
wenn du die OnErrorResumeNext-Funktion richtigt nutzt, kannst du beide Funktionen in ein Makro packen, so etwa in dem Stil:
Sub Einfügen()
on Error Resume Next
Err = 0
hier der Code zum Einfügen aus einer anderen Excelinstanz
if Err  0 then
hier den Code zum Einfügen aus der gleichen Excelinstanz
end if
On error Goto 0
End sub
das funktioniert dann so:
durch OnErrorResumeNext wird bei einem Fehler einfach mit der nächsten Programmzeile weitergemacht, dafür wird dann aber die Systemvariable Err mit einem Wert (dem Fehlercode) befüllt.
damiit kannst du prüfen, ob die erste Einfügevariante erforlgreich war und wenn nein, die zweite Variante ausführen.
Gruß, Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige