Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1892to1896
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

Paste Special

Paste Special
02.08.2022 08:17:16
Tim
Hallo zusammen,
mir ergibt sich gerade folgendes Problem:
In meinem Makro wird eine andere .xlsm-Datei (=Datei 2) geöffnet und eine Range aus ihr in meine Datei (=Datei 1) übertragen. Funktioniert soweit so gut:

'Daten 2. Datei auswählen
Sheets("Tabelle2").Activate
nameWB = ActiveWorkbook.Name
ActiveSheet.Range("L5:N196").Copy
'Datei 1 auswählen und einfügen
ThisWorkbook.Activate
Cells(searchCellRow + 4, searchCellColumn).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
In einem zweiten Zug wird aus einem anderen Tabellenblatt auf Datei 2 eine einzige Zelle kopiert. In ihr steht ein Name. Dieser soll nun in einen Zellverbund (3 Zellen, gleich groß), in Datei 1 eingefügt werden:

'Name holen & ausfüllen
Workbooks(nameWB).Activate
Sheets("Informationen").Activate
ActiveSheet.Range("C12").Copy
ThisWorkbook.Activate
Cells(searchCellRow - 1, searchCellColumn).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Hier bekomme ich folgende Fehlermeldung(en):
1) "Für diese Aktion müssen alle verbundenen Zellen dieselbe Größe haben."
-> Zellengröße gecheckt, alle gleich groß. Anschließend im Code die Zellen mit .UnMerge geteilt und die nächste Fehlermeldung erhalten:
2) "Die Paste-Special-Methode des RangeObjektes konnte nicht ausgeführt werden.
Das .Select im Code ist, damit ich mich beim Debuggen orientieren kann, ob die richtigen Zellen ausgewählt sind :)
Hat jemand einen Ansatz, an was es liegen könnte? Komme einfach nicht mehr weiter. (Die Paste Special Zeile habe ich in anderen Codes 1:1 so drin. Dort funktioniert sie :( )
Vielen Dank :)

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Paste Special
02.08.2022 08:53:53
Alwin
Hallo Tim,
Größe der verbundenen Zellen bedeutet: Du kannst aus 3 verbundenen Zellen in 3 Verbundene kopieren.
Wenn du aus einer einzelnen Zelle in die verbundenen Zellen kopieren willst, musst du den Verbund auflösen - Wert in 1. Zelle des ehemaligen Verbundes einfügen - erneut den Verbund erzeugen.
Gruß Uwe
AW: Paste Special
02.08.2022 08:57:53
Tim
Hallo Uwe,
das hatte ich mir schon gedacht und ja als Antwort auf die Fehlermeldung 1) formuliert. Anschließend habe ich Fehlermeldung 2 erhalten.
Hast du dafür auch eine Lösung.
Vielen Dank schonmal für deine Zeit :)
Grüße, Tim
AW: Paste Special
02.08.2022 08:57:57
Daniel
Hi
wenn du nur einen einzelnen Wert ohne Formatierung übertragen willst, dann verwende nicht

Quelle.Copy
Ziel.PasteSpecial
sondern

Ziel.Value = Quelle.Value
wenn du somit einen Zellverbund füllen willst, musst du darauf achten, dass Ziel die linke obere Zelle des Zellverbundes ist, denn diese wird angezeigt.
Gruß Daniel
Anzeige
AW: Paste Special
02.08.2022 09:06:19
Tim
Hallo Daniel,
hier bekomme ich leider die Meldung: "Objekt unterstützt diese Eigenschaft oder Methode nicht"

'Name aus Datei 2 in Datei 1 einfügen
Cells(searchCellRow - 1, searchCellColumn).Value = Workbooks(nameWB).Cells("C12")
Egal ob ich C12 über Cells oder Range abrufe.
Gruß, Tim
.Cells(12,3) oder .Range("C12")
02.08.2022 09:15:07
Alwin
ändere so:
AW: .Cells(12,3) oder .Range("C12")
02.08.2022 09:27:58
Tim
Beide Wege im Voraus schon probiert.
Fehlermeldung kommt trotzdem.
AW: Paste Special
02.08.2022 09:30:03
Daniel
Hi
ein Workbook hat keine Range oder Cells
ein Workbook hat Worksheets, und die diese Worksheets haben dann die Range oder Cells.
du hast bei Workbooks(nameWB).Cells("C12") vergessen, das Worksheet anzugeben.
also im Prinzip so, wie wenn du auf einen Brief als Empfänger nur die Stadt und die Hausnummer schreibst, aber nicht die Straße.
die vollständige Referenzierung ist Workbook().Worksheet().Cells()

wie man bei Range oder Cells die Zellen korrekt anspreicht und das Cells("C12") unsinn ist, sollte man auch bei VBA-Bescheiden wissen.
Gruß Daniel
Anzeige
AW: Paste Special
02.08.2022 09:54:24
Tim
Hallo Daniel,
das mit dem "C12" sehe ich ein. Hatte vorher Range("C12") abgerufen und das C12 stehen lassen. Natürlich ist der Weg über den Zeilen-/Spaltenindex der richtige.
Außerdem hat .Value noch gefehlt.
Bekomme bei der aktuellen Zeile Code immernoch dieselbe Fehlermeldung:

'Name aus Datei 2 in Datei 1 einfügen
Cells(searchCellRow - 1, searchCellColumn).Value = Workbooks(nameWB).Worksheet("1_allgemeine_Informationen").Cells(12, 3).Value

Gruß,
Tim
AW: Paste Special
02.08.2022 10:00:06
Daniel
Hi
du musst das auch richtig schreiben, in VBA hat man da ein Plural-s hinten dran.
"WorkSheets" genauso wie "Workbooks"
alternativ auch einfach nur kurz "Sheets", das verarbeitet VBA genauso.
im prinzip hast du das ja alles in deinem Code an anderere Stelle schon richtig drinstehen. Warum also hier falsch machen?
Gruß Daniel
Anzeige
AW: Paste Special
02.08.2022 10:15:42
Tim
Hallo Daniel,
vielen Dank. Funktioniert jetzt.
Sitze einfach schon zu lange vor der selben Zeile.
Viele Grüße,
Tim

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige