Anzeige
Archiv - Navigation
1368to1372
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

PasteSpecial

PasteSpecial
08.07.2014 13:56:34
Lothar Roth

Hallo,
ich habe ein Problem mit dem Befehl PasteSpecial.
Ich möchte den Inhalt mehrerer Zellen aus Tabellenblatt "Master" in eine bestimmte Zeile in Tabellenblatt "Daten" kopieren. Um die richtige Zeile zu finden verwende ich eine Index-Nr. die es nur einmal gibt. Im Prinzip soll das zur Aktualisierung eines Datensatzes dienen, ohne die Datenzeile in der Tabelle suchen zu müssen. Das funktioniert soweit auch ganz gut. Wähle ich jetzt aber die kopierten Zellen in dem Tabellenblatt "Master" wieder aus, um den Inhalt zu löschen, werden alle folgenden Zeilen ab der zuletzt kopierten und eingefügten Zeile im Tabellenblatt "Daten" ebenfalls gelöscht.
Nehme ich den Code zum Löschen der Zellen im Tabellenblatt "Master wieder heraus, funktioniert alles wieder und die restlichen Daten in der Tabelle "Daten" bleiben erhalten. Ich habe schon seit mehreren Tagen gebastelt, aber kann den Fehler nicht finden. Da ich absoluter Anfänger im Bereich VBA bin brauche ich etwas Hilfe.
Kann mir irgend jemand sagen, was ich falsch mache?
Hier den Code den ich dazu verwenden wollte:
Schon mal vielen Dank im Voraus

Sub Update()
Application.ScreenUpdating = False
Worksheets("Daten").Select
x = Cells(Rows.Count, 1).End(xlUp).Row + 1
For i = 1 To x
If Cells(i, 1) = Worksheets("Master").Cells(3, 2) Then
Worksheets("Master").Select
Range("B3:J3").Select
Selection.Copy
Worksheets("Daten").Select
Cells(i, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Worksheets("Master").Select
Range("B3:J3").ClearContents
End If
Next
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PasteSpecial
08.07.2014 15:48:19
Crazy Tom
Hallo Lothar
schon mal so probiert?
Sub Update()
Application.ScreenUpdating = False
Worksheets("Daten").Select
x = Cells(Rows.Count, 1).End(xlUp).Row + 1
For i = 1 To x
If Cells(i, 1) = Worksheets("Master").Cells(3, 2) Then
Worksheets("Master").Range("B3:J3").Copy
Worksheets("Daten").Select
Cells(i, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
Next
Worksheets("Master").Range("B3:J3").ClearContents
End Sub
MfG Tom

AW: PasteSpecial
08.07.2014 15:55:55
Crazy Tom
nochmal Hallo Lothar
oder auch so
Option Explicit
Sub Update()
Application.ScreenUpdating = False
Worksheets("Daten").Select
x = Cells(Rows.Count, 1).End(xlUp).Row + 1
For i = 1 To x
If Cells(i, 1) = Worksheets("Master").Cells(3, 2) Then
Worksheets("Master").Range("B3:J3").Copy
Worksheets("Daten").Cells(i, 1).PasteSpecial Paste:=xlPasteValues
End If
Next
Worksheets("Master").Range("B3:J3").ClearContents
Application.ScreenUpdating = True
End Sub
MfG Tom

Anzeige
AW: PasteSpecial
08.07.2014 21:11:05
Lothar Roth
Hallo Tom,
Erst einmal vielen Dank für die schnelle Hilfe, jetzt funktioniert es. Das zweite Beispiel funktioniert auch. Ich denke ich habe meinen Fehler erkannt.
Ich vermute das Problem lag darin, dass ich versucht habe den Bereich der kopierten Daten zu löschen, bevor "Next" ausgeführt wurde. Habe mich heute für einen VBA Kurs angemeldet und hoffe ich kann auch irgendwann mal jemandem helfen. Das ist genial, dass es so ein Forum gibt wo man uns Anfängern hilft.
Vielen Dank noch mal
Gruß Lothar

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige