VBA Range Find Laufzeitfehler
16.09.2014 13:22:46
Zissy
ich schreibe gerade mein erstes Makro. Und bekomme eine Fehlermeldung einfach nicht weg.
Laufzeitfehler '91': Objektvariable oder With-Blockvariable nicht festgelegt
Diese Meldung tritt im Bereich V. auf.Tabelle 2: Liefert die Daten, zu jeder Kennung & Gruppe gibt es unterschiedliche Texte. je Text eine neue Zeile mit Kennung & Gruppe
Tabelle 1: Soll pro Zeile je eine kenning & Gruppe haben mit allen dazugehörigen Texten. Wobei jeder Text eine Spalte ist und immer nur entsprechend ein "ja" gesetzt warden soll, wenn vorhanden.
Habt ihr eine Idee wo mein Fehler ist?
Grüße, Zissy
Sub pruef()
Dim wks1 As Worksheet
Dim wks2 As Worksheet
Dim Zei1 As Integer
Dim Zei2 As Integer
Dim ZeiAz As Integer
Dim SpalteNr As Integer
Dim ZeileNr As Integer
Set wks1 = Worksheets("Tabelle2")
Set wks2 = Worksheets("Tabelle1")
Zei1 = 1 ' Zeilenindex für wks1
Zei2 = 1 ' Zeilenindex für wks2
ZeiAz = wks2.Cells(1, Columns.Count).End(xlToLeft).Column ' Spaltenanzahl wks2
' I. Durchlaufe komplette Spalte
Do Until IsEmpty(wks1.Cells(Zei1, 3))
Zei1 = Zei1 + 1
' II. nur Gruppe1 betrachten
If InStr(wks1.Cells(Zei1, 7), "Gruppe1") > 0 Then
' III. wenn Kennung nicht vorhanden in wsk2
If Range(wks2.Cells(1, 1), wks2.Cells(Zei2, 1)).Find(wks1.Cells(Zei1, 3)) Is Nothing _
_
Then
Zei2 = Zei2 + 1
' Kennung setzten in wks2 Spalte 1 schreiben
wks2.Cells(Zei2, 1).Value = wks1.Cells(Zei1, 3)
' setzten in wks2 Spalte 2 schreiben
wks2.Cells(Zei2, 2).Value = wks1.Cells(Zei1, 6)
' setzten in wks2 Spalte 3 schreiben
wks2.Cells(Zei2, 3).Value = wks1.Cells(Zei1, 5)
' Gruppe setzten in wks2 Spalte 4 schreibens
wks2.Cells(Zei2, 4).Value = wks1.Cells(Zei1, 7)
' IV. Schreibe ja entsprechend, wenn/wo Text in Titel auftaucht
If Range(wks2.Cells(1, 5), wks2.Cells(1, ZeiAz)).Find(wks1.Cells(Zei1, 8), _
LookIn:=xlValues) Is Nothing Then
Else
SpalteNr = wks2.Cells.Find(wks1.Cells(Zei1, 8).Value).Column
wks2.Cells(Zei2, SpalteNr).Value = "ja"
End If
' V. wenn Kennung bereits in wsk2 vorhanden - Schreibe ja entsprechend, wenn/wo _
Text in Titel auftaucht
Else
SpalteNr = wks2.Range(wks2.Cells(1, 5), wks2.Cells(1, ZeiAz)).Find(wks1.Cells( _
Zei1, 8)).Column
ZeileNr = wks2.Range(wks2.Cells(1, 1), wks2.Cells(Zei2, 1)).Find(wks1.Cells(Zei1, 3)).Row
wks2.Cells(ZeileNr, SpalteNr).Value = "ja"
End If
End If
Loop
End Sub