Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1616to1620
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

Kopieren dauert zu lange

Kopieren dauert zu lange
09.04.2018 08:54:52
Frank
Hallo,
ich habe zwei Tabellenblätter. Im zweiten Tabellenblatt "Einlesen" sind die aktuellen Daten.(Wagennummer, KM, Datum) Nun sollen diese in das erste Tabellenblatt "Anlagen" kopiert werden.
Bedingung: Die Wagennummer(Spalte B/Spalte A) muss gleich sein.
Problem: Die Wagennummer existiert mehrfach.
Mit meinem Script funktioniert es zwar, aber durch die Schleifen dauert das ewig da die Tabelle "Einlesen" bis zu 120 und die Tabelle "Anlagen" bis zu 800 Einträge hat.
Gibt es da eine schnellere Lösung?
Mein Script:

Sub einlesen_km()
Dim Z As Integer
Dim Zz As Integer
Dim i As Integer
Dim ii As Integer
Z = Sheets("Einlesen").UsedRange.Rows.Count
Zz = Sheets("Anlagen").UsedRange.Rows.Count
For i = 6 To Z
'Sheets("Einlesen").Cells(1, 1) = i
For ii = 7 To Zz
'Sheets("Einlesen").Cells(1, 2) = ii
If Sheets("Anlagen").Cells(ii, 2) = Sheets("Einlesen").Cells(i, 1) Then
Sheets("Anlagen").Cells(ii, 11) = Sheets("Einlesen").Cells(i, 2)
Sheets("Anlagen").Cells(ii, 12) = Sheets("Einlesen").Cells(i, 3)
End If
Next ii
Next i
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopieren dauert zu lange
09.04.2018 09:06:00
Dieter(Drummer)
Hallo Frank,
du könntest schonmal im Code, in der nächsten Zeile nach letzter "DIM Zeile" folgendes einfügen:
Application.Screenupdating = False

Das müsste schon etwas helfen.
Gruß, Dieter(Drummer)
AW: Kopieren dauert zu lange
09.04.2018 10:46:17
Frank
Hallo Dieter,
da die andere Lösung funktioniert und sehr schnell ist, habe ich dieses jetzt nicht mehr ausprobiert.
Trotzdem Vielen Dank!
AW: Kopieren dauert zu lange
09.04.2018 09:23:28
Daniel
Hi
in welcher Tabelle existiert die Wagennummer mehrfach, in "Anlagen" oder in "Einlesen"?
Wenn nur in "Anlagen" die Wagennummern mehrfach vorkommen können, würde ich die SVerweisfunktion verwenden.
Auch das geht per VBA:
Z = Sheets("Einlesen").UsedRange.Rows.Count
Zz = Sheets("Anlagen").UsedRange.Rows.Count
With Sheets("Anlagen").Range("K7:L" & Zz)
.columns(1).FormulaR1C1 = "=IfError(VLookUp(RC2,Einlesen!R6C1:R" & Z & "C3,2,0),"""")"
.columns(2).FormulaR1C1 = "=IfError(VLookUp(RC2,Einlesen!R6C1:R" & Z & "C3,3,0),"""")"
.Formula = .Value
End With
Gruß Daniel
Anzeige
AW: Kopieren dauert zu lange
09.04.2018 10:44:39
Frank
Hallo Daniel,
Deine Lösung funktioniert, aber ich verstehe sie noch nicht so ganz :/
Werde mir den die Funktionen FormulaR1C1 und VLookUp mal genauer anschauen...
Vielen Dank!
AW: Kopieren dauert zu lange
09.04.2018 10:58:30
Daniel
Hi
der Code macht nichts anderes, als die Formel:
=WennFehler(SVerweis(B7;Einlesen!$A$6:$C$?;2;0);"") 

in die Zelle K7 und die Folgezellen einzutragen und dann die Formelergbenisse zu kopieren und durch ihren Wert zu ersetzen.
Die Formel wird in VBA in der Englischen Schreibweise mit R1C1-Addressierungsart angegeben (entspricht dem Z1S1 im deutschen)
Gruß Daniel
Anzeige
AW: Kopieren dauert zu lange
09.04.2018 10:56:31
Frank
Wie sähe das den aus wenn jetzt eine weitere Bedingung dazu kommen würde.
z.B. wenn in "Anlagen" Spalte C ein "x" stehen müste?
AW: Kopieren dauert zu lange
09.04.2018 11:02:58
Daniel
Hi
einfach die Formel mit der entsprechenden WENN-Abfrage erweitern:
=Wenn(C7="x";WennFehler(SVerweis(B7;Einlesen!$A$6:$C$120;2;0);"";"")
bzw dann für den VBA-Code
.columns(1).FormulaR1C1 = "=IF(RC3=""x"",IfError(VLookUp(RC2,Einlesen!R6C1:R" & Z & "C3,2,0),""""),"""")"
für die zweite Spalte dann entsprechend.
Gruß Daniel
AW: Kopieren dauert zu lange
09.04.2018 13:02:10
Frank
Danke!!!!!
AW: Kopieren dauert zu lange
11.04.2018 12:27:35
Frank
Hallo,
Mit dieser Formel habe ich nun das Problem, dass die Zellen wenn kein x vorhanden ist gelehrt werden.
Gruß
Frank
Anzeige
AW: Kopieren dauert zu lange
11.04.2018 13:02:20
Daniel
Hi
eine Möglichkeit wäre, vor einfügen der Formel den Autofilter in dieser Spalte auf "x" zu setzten.
die Formel wird dann nur in die sichtbaren Zellen eingetragen und die Zeilen ohne "x" bleiben erhalten.
die andere Möglichkeit wäre, dass du die Formel etwas abänderst bei "ungleich x" anstelle des SVerweises den Wert aus der Zelle ausgeben lässt:
bisher Formel in Spalte Y: =Wenn(X1="x";SVerweis(...);"")
jetzt Formel in Spalte Z: =Wenn(X1="x",SVerweis(...);Y1)

dann die Formel in Spalte Z kopieren und in Y als Wert einfügen
Gruß Daniel
PS: die Formeln sind hier nur Prinzip-Formeln, die Zellbezüge musst du entsprechend anpassen.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige