Betrifft: mehrere Werte suchen Match SCHWIERIG!!!
von: MarkusB.
Geschrieben am: 02.02.2010 01:49:40
Hallo allerseits!
Ich habe folgendes Problem:
Ich möchte das Workbook durchsuchen lassen. Die Werte die abgeglichen werden befinden sich auf dem ersten Sheets(1) in Spalte C. In diesem Fall 001 bis z.B. 321. Wenn eine Übereinstimmung auf den folgenden Sheets vorliegt (die Werte befinden sich auch in Spalte C der jeweiligen Sheets) soll an dieser Stelle in einem festgelegten Bereich (z.B. Treffer bei Sheet(3).Range("C8") dann soll im Sheet(3).Range("E8:V8") ein Wert, in diesem Fall nach dem Betrag gesucht werden z.B: 1.234,56 Euro -->if Range("E8:V8").value <> 0 then ...
Dieser Wert soll dann kopiert werden und in das erste Sheets(1) in einem Festgelegten Bereich, in diesem Beispiel M8 eingefügt werden. Wichtig sind dabei die Identischen Zeilen, in diesem Beispiel 8 (i = 8)
Der Code den ich hab klappt nicht, irgendwie werden die Schleifen nicht richtig durchlaufen... bekomme immer nur einen Wert von einem Sheet kopiert und nicht alle!!! Ich glaube Case ist falsch gesetzt...
Kann mir jemand helfen?
Vielen Dank!!!
MarkusB.
Sub teste() Dim n As Integer, i As Integer, test, wks As Worksheet Dim rng As Object Application.ScreenUpdating = False With Sheets(1) For i = 12 To .Cells(Rows.Count, 3).End(xlUp).Row For n = 2 To Worksheets.Count Set wks = Worksheets(n) test = Application.Match(.Cells(i, 3), wks.Columns(3), 0) If Not IsError(test) Then Select Case n ' Hier soll geprüft werden welches wks Case Is = 2 rng = wks.Range(wks.Cells(test, 5), wks.Cells(test, 19)) If Len(rng.Value) <> 0 Then rng.Copy Sheets(1).Range("M" & i).Activate Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False End If Case Is = 3 For Each rng In _ Worksheets(n).Range(Worksheets(n).Cells(test, 5), _ Worksheets(n).Cells(test, 13)) If Len(rng.Value) <> 0 Then rng.Copy Sheets(1).Activate Range("N" & i).Activate Selection.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False End If Next End Select End If Next n Next i End With Application.ScreenUpdating = True End Sub
Betrifft: AW: mehrere Werte suchen Match SCHWIERIG!!!
von: Rene
Geschrieben am: 02.02.2010 15:05:36
Hallo Markus,
ersetze
rng = wks.Range(wks.Cells(test, 5), wks.Cells(test, 19))
durch
For Each rng In wks.Range(wks.Cells(test, 5), wks.Cells(test, 19))
und "Next" vor Case is=3 nicht vergessen.
Dann sollte es klappen.
Gruß Uppe
Betrifft: AW: mehrere Werte suchen Match SCHWIERIG!!!
von: MarkusB.
Geschrieben am: 04.02.2010 22:48:34
Hi Rene,
vielen Dank für deine Antwort, war der richtige Hinweis... :-) SUPER!
Das Forum ist echt sehr Hilfreich!
Viele Grüße
Markus B.
Betrifft: AW: mehrere Werte suchen Match SCHWIERIG!!!
von: MarkusB.
Geschrieben am: 04.02.2010 22:50:16
Hi Rene!
Vielen Dank für deine Antwort, war der richtige Hinweis...! :-)
Das Forum ist echt sehr hilfreich!
Viele Grüße!
MarkusB.