Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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
Anzeige

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."
Anzeige
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
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)
Anzeige
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!
Anzeige
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
Anzeige
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
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Werte aus der Zwischenablage in Excel einfügen – Lösungen für häufige Probleme


Schritt-für-Schritt-Anleitung

  1. Bereich kopieren: Stelle sicher, dass du den gewünschten Zellbereich in Excel kopierst. Zum Beispiel:

    Sheets("Gesamt").Range("B4:M6").Copy
  2. Zielarbeitsblatt aktivieren: Aktiviere das Arbeitsblatt, in das du die Werte einfügen möchtest:

    Worksheets("Eingabe").Activate
  3. Einfügen der Werte: Verwende die PasteSpecial-Methode, um nur die Werte einzufügen:

    Dim x As Long
    x = Range("B7").End(xlDown).Row
    Cells(x + 1, 2).PasteSpecial Paste:=xlPasteValues
  4. Fehlermeldungen prüfen: Falls du Fehlermeldungen erhältst, überprüfe die Zwischenablage oder ob Blattschutz aktiv ist.


Häufige Fehler und Lösungen

  • Fehlermeldung: "Der Inhalt konnte nicht in die Zwischenablage kopiert werden": Dies kann passieren, wenn die Excel-Zwischenablage geleert wird. Achte darauf, dass zwischen dem Kopieren und Einfügen keine weiteren Aktionen in Excel erfolgen.

  • Einfügen funktioniert nicht: Stelle sicher, dass der Bereich, den du kopierst, keine verbundenen Zellen enthält. Diese können Probleme beim Einfügen verursachen.

  • Blattschutz aktiv: Überprüfe, ob im Zielarbeitsblatt Blattschutz aktiv ist. Dieser muss vor dem Einfügen entfernt werden.


Alternative Methoden

  1. Direktes Einfügen der Werte in einer Schleife:

    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
  2. Verwendung von Application.EnableEvents: Deaktiviere Ereignismakros, um Störungen zu vermeiden:

    Application.EnableEvents = False
    ' Code zum Öffnen der Datei
    Application.EnableEvents = True

Praktische Beispiele

Hier ist ein Beispiel, wie du Werte aus einer Datei in eine andere einfügen kannst:

Sub WerteEinfügen()
    Dim wkbZiel As Workbook
    Dim x As Long
    Set wkbZiel = Workbooks.Open(Filename:="DeinDateipfad.xlsx")
    x = wkbZiel.Worksheets(1).Range("B7").End(xlDown).Row
    ThisWorkbook.Sheets("Gesamt").Range("B4:M6").Copy
    wkbZiel.Worksheets(1).Cells(x + 1, 2).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    wkbZiel.Save
    wkbZiel.Close
End Sub

Tipps für Profis

  • Überprüfe die Excel-Version: Manchmal können bestimmte Funktionen in älteren Versionen nicht wie erwartet funktionieren. Stelle sicher, dass du die neueste Version verwendest.

  • Verwende Application.CutCopyMode = False, um den Kopiermodus zu beenden, nachdem du die Werte erfolgreich eingefügt hast.

  • Achte darauf, dass keine Formatierungen in der Zwischenablage sind, die das Einfügen stören könnten.


FAQ: Häufige Fragen

1. Warum funktioniert das Einfügen von Werten nicht?
Das Einfügen kann scheitern, wenn die Excel-Zwischenablage geleert wird oder wenn im zu kopierenden Bereich verbundene Zellen vorhanden sind.

2. Wie kann ich sicherstellen, dass die Werte korrekt eingefügt werden?
Vermeide Aktionen, die die Zwischenablage leeren, und überprüfe, ob der Blattschutz aktiv ist. Verwende die PasteSpecial-Methode, um sicherzustellen, dass nur Werte eingefügt werden.

3. Welche Einstellungen sollte ich in Windows 11 beachten?
Stelle sicher, dass keine anderen Anwendungen die Zwischenablage beeinflussen und dass dein Excel-Programm aktualisiert ist, um Komplikationen mit dem Kopieren und Einfügen zu vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige