Clever-Excel-Forum

Normale Version: Pastspecial funktioniert in VBA nur einmal
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen,

ich bin noch ein Neuling was VBA betrifft habe mir den folgenden Code zusammengesucht und umgestellt. Der Code funktioniert an sich auch.
Jedoch kommt nach einmaligem ausführen beim darauffolgenden mal die Fehlermeldung "Laufzeitfehler 1004" "Die PAstspecial-Methode des Range-Objekts konnte nicht ausgeführt werden". Huh Huh
Das Makros soll einen Bereich in Tabelle "Themenboard"  nach einer Leerzelle durchsuchen und daraufhin die Werte aus der Tabelle "Daten dort eintragen.

Hier der Code:

Sub Eingabeübertrag()
'
' Eingabeübertrag Makro
'
'
    ActiveSheet.Unprotect
    Application.ScreenUpdating = False
    Sheets("Daten").Select
    Range("D2:G2").Copy
    Sheets("Themenboard").Select
    ActiveSheet.Unprotect
    [D4:D25].SpecialCells(xlBlanks).Cells(1).Select
    ActiveCell.Offset(0, -1).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveSheet.Protect
    Sheets("Eingabe").Select
    Range("A1").Select
    ActiveSheet.Protect
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
   
End Sub


Vielen Dank schon mal im Voraus  :)
Hallo,

Application.CutCopyMode = False

löscht ja auch die Zwischenablage.

Gruß Uwe
Danke Uwe für die schnelle Antwort.


Leider bringt die Änderung nichts.

Aber wird bei erneutem ausführen die Zwischenablage nicht neu mit den Zellen D2:G2 befüllt?

Gruß
Brian
Hallo Brian,

(28.10.2016, 07:00)briansen93 schrieb: [ -> ]Aber wird bei erneutem ausführen die Zwischenablage nicht neu mit den Zellen D2:G2 befüllt?

das ist richtig. Ich kann den Fehler in meinem Testaufbau auch nicht nachvollziehen.
Da wäre eine Beispieldatei, in der dieses Verhalten bei Dir auch auftritt, erforderlich.

Gruß Uwe
Hier die Datei
Hallo Brian,

ja, die Zwischenablage wird ab dem 2. Unprotect von Themenboard gelöscht. Frag mich nicht wieso.
Folgender Code kommt ohne Selects aus und überträgt die Werte direkt ohne Copy/Paste:
Sub Eingabeuebertrag1()
   Sheets("Eingabe").Unprotect
   Sheets("Themenboard").Unprotect
   With Sheets("Themenboard").Range("D4:D25")
     If Application.CountBlank(.Cells) Then
       .SpecialCells(xlBlanks).Cells(1).Offset(0, -1).Resize(, 4).Value = _
         Sheets("Daten").Range("D2:G2").Value
     Else
       MsgBox "Das Themenboard ist schon voll.", vbInformation
     End If
   End With
   Sheets("Eingabe").Protect
   Sheets("Themenboard").Protect
End Sub
Schaue auch mal hier rein:

Achtung Makrorekorder oder Wer selektiert denn da?
Performance (2) - Select Activate Bremsen und ein Beispiel

Gruß Uwe
Wow danke Uwe ::)

Funktioniert einwandfrei *thumbsup*
Hallöchen,

die Excel-Zwischenablage wird bei verschiedenen Aktionen gelöscht, z.B. auch beim Anlegen / Kopieren oder Löschen von Blättern, Blattschutz einstellen oder aufheben, Speichern  usw.