AW: Wert in Matrix - Daten linksrechts
22.07.2016 14:18:38
Piet
Hallo Nilo
bei deinem Code wie du ihn im Original zeigst stimmt so einiges nicht.
Probier den unteren mal aus. Der sollte laufen, wurde von mir getestet.
zu den einzelnen Fehlern: - Set rSearch = wsSrc.Range("A2:I3")
du legst den Suchbereich auf 2 Zeilen fest, sprichst aber in deinem Text von 50.000 Zeilen
Daten in Tabelle Matrix in A1 bis I50000 - Die For Next Schleife richtet sich nach "A2:I3"
wsSrc.Range("A2:I3").Copy - Du kopierst immer aus dieser Zeile, egal wo du die Daten findest!
wsSrc.Range("A2:I3").Copy
Worksheets("Suche").Range("H18:O18")
Du kopierst bis Spalte I, und willst nur bis Spalte "O" einfügen. Das kann so nicht hinhauen!
Es waren mehrere Fehler warum das Makro so nicht laufen konnte. Bei suchen in 50.000 Zeilen
ist es besser die Find Methode zu verwenden. Eine For Next Schleife ist da echt zu langsam!!
Würde mich freuen wenn es jetzt klappt.
mfg Piet
Option Explicit '22.7.2016 für Herber Forum
Sub kopieren_neu()
Dim rFind As Object, z As Long
Dim wsSrc As Object, AI As Long
AI = CLng(Worksheets("Suche").Range("A3"))
'belegt die Variable wsSrc als Object: (Tabelle)
Set wsSrc = Worksheets("Matrix")
'kurzer Suchlauf (ohne Directory Vorgabe) nach ganzem Wert
Set rFind = wsSrc.Range("A:I").Find(What:=AI, After:=Range("A1"), LookAt:=xlWhole)
'If rFind Is Nothing Then Exit Sub 'Ende ohne Msg Meldung
If rFind Is Nothing Then MsgBox AI & " No Find ": Exit Sub
z = rFind.Row 'z=Zeile in "Matrix" notieren
wsSrc.Range("A" & z & ":I" & z).Copy 'kopiert Daten im aktuelle Worksheet
Worksheets("Suche").Range("H18:p18").PasteSpecial Paste:=xlPasteValues, Transpose:=False
End Sub