Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1536to1540
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

Fehler Paste - Methode

Fehler Paste - Methode
28.01.2017 15:12:36
Johannes
Hallo zusammen,
ich habe vollgendes Problem, unzwar möchte ich Daten aus einer Excel Tabelle in einer andere kopieren. Das Ganze soll innerhalb einer Mappe auf einen Befehl hin passieren, aber ich möchte, dass vor dem kopieren zwei Sachen überprüft werden sollen.
Ich will nämlich eine historische Tabelle mit Daten füttern, deswegen müssen zwei Zellen pro Reihe auf Redundanz geprüft werden. Habe mir da auch schon was überlegt, allerdings führt Excel das immer nur einmal aus, danach wird an der Paste Methode rumgemeckert... PasteSpecial habe ich auch schon probiert, funktioniert auch nicht.
Wenn ihr mir helfen könnt, wäre das echt super, verzweifle so langsam daran!
Private Sub CommandButton2_Click()
Dim wksz As Worksheet, wksq As Worksheet 'wksq = Quelltabelle, wksz = Zieltabelle
Dim i As Integer, j As Integer
Set wksq = Worksheets("Prozent_Export")
Set wksz = Worksheets("historische Tabelle")
For i = 2 To 50
For j = 2 To 50
If Not wksq.Cells(i, 1) = wksz.Cells(j, 1) And wksq.Cells(i, 5) = wksz.Cells(j, 5) Then
wksq.Rows(i).Copy
End If
Next j
wksz.Range("A" & Rows.Count).End(xlUp).Offset(1).Select
wksz.Paste
Next i
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler Paste - Methode
28.01.2017 15:17:49
Hajo_Zi
ich würde vermuten nach Copy fehlt Exit For
Es wird nur die erste gefundene Zeile kopiert.
Warum nicht in der inneren Schleife
wksq.Rows(i).Copy wksz.Range("A" & Rows.Count).End(xlUp).Offset(1)

AW: Fehler Paste - Methode
28.01.2017 15:27:16
Johannes
Ne das tuts auch nicht
und ich möchte ja zuerst, dass alle Einträge in meine Ziel Tabelle geprüft werden, deswegen nicht in der inneren Schleife
AW: Fehler Paste - Methode
28.01.2017 15:30:04
Hajo_Zi
gut dann wird nur der letzte gefundene kopiert.
Das möchtest Du aber. Ich kann Dir da nicht weiter helfen.
Gruß Hajo
Anzeige
AW: Fehler Paste - Methode
28.01.2017 15:37:00
Johannes
nein, wird er nicht. Einmal führt Excel das Ganze auch immer aus, danach klappts nicht mehr.
Schade, aber trotzdem Danke dir
AW: Rückfragen
28.01.2017 15:59:16
Gerd
Hallo Johannes,
1.) Willst du jeweils die gesamten Zellen übertragen oder nur die Werte?
1a.) Falls nur Werte aus welchem Spaltenbereich?
2.) Wie oft kommt eine Übereinstimmung mit den beiden Bedingungen vor?
2a.) Falls mehrere: Sollen alle relevanten Zeilen übertragen werden oder die erste oder die letzte?
3.) Wie sieht dein fehlgeschlagener Versuch mit Pastespecial aus?
Gruß Gerd
AW: Rückfragen
28.01.2017 16:45:17
Johannes
Hallo Gerd,
zu 1. Es soll, wenn keine Übereinstimmung vorhanden ist, sollen die Werte in den Zellen bzw. die gesamte Zeile übertragen werden
zu 2. es kann schon etwas häufiger zu einer Übereinstimmung kommen. Ich möchte aus einer Umfrage heraus quasi jede einzelne Umfrage abspeichern. So lange ich aber die Umfrage nicht abbreche, exportiert mir das Tool alle vorhergegangenen Umfragen wieder mit. Deswegen die Überprüfung ob die Werte schon vorhanden sind.
zu 3. Excel spuckt den Laufzeitfehler 1004 aus, genauso wie mit Paste
Lg Johannes
Anzeige
AW: Ohne Paste - Methode
30.01.2017 22:03:04
Gerd
Hallo Johannes,
so genau hast du meine Fragen nicht beantwortet. Daher ist der Code z.T. auf Vermutung beruhend. :-)
Sub teste_mal()
Dim Q As Worksheet, Z As Worksheet, K As Range, L As Long
Set Q = Worksheets("Prozent_Export")
Set Z = Worksheets("historische Tabelle")
Set K = Q.Cells(Q.Rows.Count, 1)
With Z.Cells(1, 1).CurrentRegion.Columns(1)
For L = 2 To Q.Cells(1, 1).CurrentRegion.Columns(1).Rows.Count
If WorksheetFunction.CountIfs(.Cells, Q.Cells(L, 1), _
.Offset(, 4), Q.Cells(L, 5)) = 0 Then
Set K = Union(K, Q.Cells(L, 1))
End If
Next
End With
K.EntireRow.Copy Z.Cells(Z.Rows.Count, 1).End(xlUp).Offset(1)
Set K = Nothing
Set Q = Nothing: Set Z = Nothing
End Sub
Gruß Gerd
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige