Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
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

Nur Werte einfügen - Funktioniert nicht

Nur Werte einfügen - Funktioniert nicht
25.07.2018 07:32:16
Sait
Hallo zusammen,
ich möchte in der Spalte B in die nächste leere Zelle und dort möchte ich dann nur die Werte aus der Zwischenablage einfügen.
Eigtl. ganz simpel, aber ich erhalte jedes mal eine Fehlermeldung

Dim x As Long
x = Range("B7").End(xlDown).Row
Cells(x + 1, 2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Wenn ich einfach nur "ActiveSheet.Paste" schreibe, dann fügt er die Zwischenablage ein, aber _
natürlich nicht als Wert.
Ich komme da einfach nicht weiter und bin für jede Hilfe dankbar!
Viele Grüße, Sait

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur Werte einfügen - Funktioniert nicht
25.07.2018 07:40:56
Matthias
Hallo
Das funktioniert bei mir
Dim x As Long
x = Range("B7").End(xlDown).Row
Cells(x + 1, 2).PasteSpecial Paste:=xlPasteValues
Gruß Matthias
AW: Nur Werte einfügen - Funktioniert nicht
25.07.2018 07:49:19
Sait
Hallo Matthias,
danke für die Unterstützung! diesen Weg hatte ich auch vorher probiert, aber auch da erscheint die Fehlermeldung: "Laufzeitfehler '1004' Die PasteSpecial-Methode des Range-Objektes konnte nicht ausgeführt werden."
AW: Nur Werte einfügen - Funktioniert nicht
25.07.2018 08:20:09
RPP63
Moin!
Was befindet sich denn in der Zwischenablage?
Übrigens kann man den Code noch kürzen, außerdem braucht man keine Variable:
Range("B7").End(xlDown).Offset(1, 0).PasteSpecial xlPasteValues

Gruß Ralf
Anzeige
Noch etwas
25.07.2018 08:22:00
RPP63
Blattschutz gesetzt?
Der muss natürlich vor dem Einfügen entfernt werden.
(Oder im _Open per UserInterfaceOnly:=True gesetzt werden)
AW: Noch etwas
25.07.2018 08:48:34
Sait
Es ist kein Blattschutz gesetzt
AW: Nur Werte einfügen - Funktioniert nicht
25.07.2018 08:45:37
Sait
Hallo RPP63,
in der Zwischenablage befindet sich eine Kombination aus Zahlen + Text ("17.843 Stk.") es sind ca. 20 Zellen mit ähnlichem Inhalt.
Leider kommt auch da wieder der gleiche Fehler. Aber er findet auch ohne eine Variable die nächste leere Zelle :) Danke dafür!
AW: Nur Werte einfügen - Funktioniert nicht
25.07.2018 09:27:20
Daniel
Hi
Was hast du denn wie kopiert und was passiert zwischen Kopieren und Einfügen?
PasteSpecial ist das Excelspezifische Einfügen aus der Excel-Zwischenablage.
ActiveSheet.Paste fügt aus der allgemeinen Windows-Zwischenablage ein.
Es gibt Aktionen, bei denen die Excel-Zwischenablage geleert wird.
So eine Aktion darf nicht zwischen Kopieren und Einfügen mit PasteSpecial ausgeführt werden.
Zeige bitte den Code ab dem Kopieren bis zum Einfügen.
Gruß Daniel
Anzeige
AW: Nur Werte einfügen - Funktioniert nicht
25.07.2018 12:18:39
Sait
Hallo Daniel,
ich hatte irgendwie deinen Beitrag vorher übersehen... Deswegen melde ich mich erst jetzt dazu.
Es ist so, dass per Makro ein bestimmter Bereiche aus "Excel-Datei 1" kopiert wird und in "Excel-Datei 2" am ende der Spalte B eingefügt werden soll. Wie im Thread schon geschrieben funktioniert das einfache Einfügen ["ActiveSheet.Paste"] problemlos, aber das Einfügen der Werte leider nicht.
Makro 1 (nur der relevante Teil)
Sheets("Gesamt").Select
Range("B4:M6").Select
Selection.Copy
Call datei_oeffnen
Makro 2 (einfache Einfügen funktioniert)
Sub datei_oeffnen()
Worksheets("Eingabe").Activate
Dim Pfad As String
Dim Datei As String
Dim Dateipfad_1 As String
Pfad = Cells(9, 5).Value
Datei = ThisWorkbook.Sheets("Eingabe").Cells(10, 5).Value
Dateipfad_1 = Pfad & Datei & ".xlsx"
Workbooks.Open Filename:=Dateipfad_1
Dim x As Long
x = Range("B7").End(xlDown).Row
Cells(x + 1, 2).Select
ActiveSheet.Paste
End Sub
Ich hoffe die Infos helfen weiter?
Anzeige
AW: Nur Werte einfügen - Funktioniert nicht
26.07.2018 01:19:10
fcs
Hallo Sait,
grundsätzlich kann es Probleme geben wenn im zu kopierenden Bereich oder im Zielbereich verbundenen Zellen vorkommen.
Damit es nicht zu Problemen im Ablauf der beiden Makros kommt ist es vermutlich besser wenn der zu kopierende Zellbereich als Parameter an das 2. Makro übergeben wird.
Dann kann der Kopierbefehl unmittelbar vor der PasteSpecial-Anweisung stehen.
Als weitere Möglichkeit könnten die Werte des zu kopierenden Bereichs einzeln im Zielblatt eingetragen werden.
Als weitere Möglichkeit den Ablauf zu stabilisieren sollten die Referenzen zu den Zellen immer komplett verwendet werden, wenn 2 Mappen in die Aktionen involviert.
Gruß
Franz
'Variante 1: Der zu kopierende Bereiche wir per PasteSpecial _
im Zielbereich eingefügt
Sub Test1()
Call datei_oeffnen(rngCopy:=ThisWorkbook.Sheets("Gesamt").Range("B4:M6"))
End Sub
Sub datei_oeffnen(rngCopy As Range)
Dim x As Long
Dim Pfad As String, Datei As String, Dateipfad_1 As String
Dim wkbZiel As Workbook
With ThisWorkbook.Worksheets("Eingabe")
Pfad = .Cells(9, 5).Value
Datei = .Cells(10, 5).Value
End With
Dateipfad_1 = Pfad & Datei & ".xlsx"
Set wkbZiel = Application.Workbooks.Open(Filename:=Dateipfad_1)
With wkbZiel.Worksheets(1) 'oder .Worksheets("Blattname")
x = .Range("B7").End(xlDown).Row
If x = .Rows.Count Then x = 7
rngCopy.Copy
.Cells(x + 1, 2).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
.Cells(x + 1, 2).Select
End With
wkbZiel.Save
'    wkbZiel.Close savechanges = True
End Sub
'Variante 2: Die Zellen des kopierten Bereiches werden einzeln im _
Zielbereich eingetragen
Sub Test2()
Call datei_oeffnen_2(rngCopy:=ThisWorkbook.Sheets("Gesamt").Range("B4:M6"))
End Sub
Sub datei_oeffnen_2(rngCopy As Range)
Dim x As Long
Dim Pfad As String, Datei As String, Dateipfad_1 As String
Dim wkbZiel As Workbook
Dim Zeile As Long, Spalte As Long
With ThisWorkbook.Worksheets("Eingabe")
Pfad = .Cells(9, 5).Value
Datei = .Cells(10, 5).Value
End With
Dateipfad_1 = Pfad & Datei & ".xlsx"
Set wkbZiel = Application.Workbooks.Open(Filename:=Dateipfad_1)
With wkbZiel.Worksheets(1) 'oder .Worksheets("Blattname")
x = .Range("B7").End(xlDown).Row
If x = .Rows.Count Then x = 7
For Zeile = 1 To rngCopy.Rows.Count
For Spalte = 1 To rngCopy.Columns.Count
.Cells(x + 1, 2).Offset(Zeile - 1, Spalte - 1).Value = _
rngCopy.Cells(Zeile, Spalte).Value
Next Spalte
Next Zeile
End With
wkbZiel.Save
'    wkbZiel.Close savechanges = True
End Sub

Anzeige
AW: Nur Werte einfügen - Funktioniert nicht
26.07.2018 01:52:14
Daniel
Hi
Ich vermute Mal, dass das Öffnen der Datei die Excel-Zwischenablage löscht.
Das erkennst du daran, dass der laufende Rahmen um die kopierten Zellen verschwindet. Ist der Rahmen weg, kannst du auch nicht mehr aus der Excel-Zwischenablage einfügen.
Die richtige Reihenfolge im Anlauf wäre also
1. Datei öffnen
2. Zellbereich kopieren
3. Einfügen
Hierbei hilft natürlich, wenn man vollständig referenziert und auf das unsinnige Select verzichtet.
https://www.online-excel.de/excel/singsel_vba.php?f=78
Gruß Daniel
AW: Nur Werte einfügen - Funktioniert nicht
26.07.2018 14:04:58
Sait
Halo Franz, Hallo Daniel,
vielen Dank für eure Unterstützung!
Ich habe jetzt alles durchprobiert, es funktioniert einfach nicht. Aber ich habe jetzt festgestellt, dass es nicht am Makro liegt, sondern an der vorhandenen Excel-Datei. Wie ich das Problem lösen werde, muss ich mir noch überlegen. Dennoch vielen Dank für die Hilfe!
Viele Grüße
Sait
Anzeige
AW: Nur Werte einfügen - Funktioniert nicht
28.07.2018 11:02:38
fcs
Hallo Sait,
sonstige potentielle Probleme:
1. Ereignismakros in der zu öffnenden Datei
In diesem die Ereinismakros vor dem Öffnen der Datei deaktivieren per
Application.EnableEvents = False

und dem Schließen bzw. am des Makros wieder aktivieren per
Application.EnableEvents = True
2. Blattschutz im Ziel-Tabellenblatt
Dieser muss dann vor dem Einfügen aufgehoben und danach wieder gesetzt werden.
Gruß
Franz

316 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige