Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Pastspecial funktioniert in VBA nur einmal
#1
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  :)
Antworten Top
#2
Hallo,

Application.CutCopyMode = False

löscht ja auch die Zwischenablage.

Gruß Uwe
Antworten Top
#3
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
Antworten Top
#4
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
Antworten Top
#5
Hier die Datei


Angehängte Dateien
.xlsm   Testdatei.xlsm (Größe: 35,59 KB / Downloads: 6)
Antworten Top
#6
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
Antworten Top
#7
Wow danke Uwe ::)

Funktioniert einwandfrei *thumbsup*
Antworten Top
#8
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste