Hallo Leute,
ich hoffe ihr könnt mir helfen.
Ich habe schon Ewigkeiten das Net und das Forum durchsucht und ein paar Sachen gefunden.
Leider bin ich nicht an mein Ziel gekommen.
Ich habe eine Excel Datei mit zwei Blättern.
Jetzt möchte ich Tabelle 1 Spalte 2 mit
Tabelle zwei Spalte 4 vergleichen.
Dabei will ich ermitteln welche Werte ich Zellen von Tabelle 2, schon in Tabelle 1 vorhanden sind.
Und wenn diese vorhanden sind will ich in entsprechender Zeile , in Spalte 20 ein X setzten.
Genau das habe ich schon mit VBA gemacht,
das ganze klappt auch ganz gut.
Nur leider sind es pro Tabelle 200.000 Datensätze und das dauert mit VBA 25h.
Habt Ihr eine möglichkeit dieses schneller zu machen.
Grüße
Marco
''++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Deklartion
Dim Wks1 As Worksheet
Dim lngCounterColum As Long
Dim lngCounterRow_Clean As Long
Dim lngCounterRow_FileAll As Long
Dim CkeckBit As Boolean
Dim EndRow_Clean As Long
Dim EndColumn_Clean As Long
Dim EndRow_FileAll As Long
Dim EndColumn_FileAll As Long
Dim error As Integer
Dim OK As Integer
Dim Row As Long
Dim ColumnART As Long
Dim ColumnERP As Long
Dim Test1 As String
Dim Test2 As String
Dim FindString As String
Dim Rng As Range
Dim Cell As String
''++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Deklartion
Sub Search()
For Wks = 1 To Worksheets.Count
If Worksheets(Wks).Name = "PDM_Daten" Then
Set Wks_Clean = Sheets("PDM_Daten")
Set Wks_FileAll = Sheets("fileAll00-0F")
With Wks_Clean
EndRow_Clean = .Cells(Rows.Count, 2).End(xlUp).Row '' Ermitteln letzte Zeile
EndColumn_Clean = .Cells(2, Columns.Count).End(xlToLeft).Column '' Ermittel letzte Spalte
End With
With Wks_FileAll
EndRow_FileAll = .Cells(Rows.Count, 4).End(xlUp).Row '' Ermitteln letzte Zeile
EndColumn_FileAll = .Cells(2, Columns.Count).End(xlToLeft).Column '' Ermittel letzte Spalte
End With
For lngCounterRow_Clean = 1 To EndRow_Clean
FindString = Wks_Clean.Cells(lngCounterRow_Clean, 2).Value
If Trim(FindString) <> "" Then
With Wks_FileAll.Range("D:D")
Set Rng = .Find(What:=FindString, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
Cell = Rng.Address
Cell = Right(Cell, Len(Cell) - 3)
Wks_FileAll.Cells(Cell, 20).Value = "X"
Wks_FileAll.Cells(2, 21).Value = lngCounterRow_Clean
''Else
''MsgBox "Nothing found"
End If
End With
End If
''Next lngCounterRow_FileAll
Next lngCounterRow_Clean
Application.ScreenUpdating = False '' Screen Update
End If
Next Wks
Exit Sub
End Sub
|