VBA-Code wird nicht richtig getriggert :-(
04.02.2005 17:35:59
Eugenie
ich beiß heute noch meinen Tisch ganz zu Kleinholz - wäre nett, wenn ihr meinen Tisch retten könntet :-)
Folgendes Problem:
Ich habe diesen (siehe etwas weiter unten) Code, der nicht ganz so will wie ich - gedacht ist, daß dieser Code durchlaufen wird, wenn im Tabellenblatt 'Master' was geändert wird.
Die MessageBox erscheint auch brav, wenn ich auf einem beliebigen Tabellenblatt was ändere - im Gegensatz zum Rest der Routine: der wird nur durchlaufen, wenn ich im Tabellenblatt 'Sprachen' irgendwo einen Zellinhalt ändere. Was mir zumindest zeigt, daß der Code an sich so durchgeht ....
Was läuft da schief und weswegen wird die Routine nicht getriggert, wenn ich außerhalb des Tabellenblattes 'Sprachen' eine Änderung habe?
Nach der langen Vorrede hier der Code
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim bLand As Byte
Dim bSprache As Byte
Dim lgRow As Long
Dim lgZiel As Long
MsgBox Sh.Name & ", " & Target.Address
If IsEmpty(Sheets("Master").Range("Land").Value) Or IsEmpty(Sheets("Master").Range("Sprache").Value) Then Exit Sub
Application.EnableEvents = False
Range("U152:U65536").ClearContents
lgZiel = Sheets("Sprachen").Range("ErgebnisListe").Row
bLand = Sheets("Master").Range("Land")
bSprache = Sheets("Master").Range("Sprache")
Cells(lgZiel - 1, 19) = Sheets("Master").Range("Land").Value
With Sheets("Sprachen")
If bSprache = 1 Then
For lgRow = .Range("Gegenstand").Row To .Cells(Rows.Count, bLand * 2 + bSprache + 5).End(xlUp).Row
If .Cells(lgRow, bLand * 2 + bSprache + 5) <> "" And .Cells(lgRow, 6) <> "" Then
Cells(lgZiel, 21) = .Cells(lgRow, 6)
lgZiel = lgZiel + 1
End If
Next
Else
For lgRow = .Range("Gegenstand").Row To .Cells(Rows.Count, bLand * 2 + bSprache + 4).End(xlUp).Row
If .Cells(lgRow, bLand * 2 + bSprache + 4) <> "" Then
Cells(lgZiel, 21) = .Cells(lgRow, bLand * 2 + bSprache + 4)
lgZiel = lgZiel + 1
End If
Next
End If
End With
Application.EnableEvents = True
End Sub
Ich hoffe, irgendwer sieht, was da (nicht) abläuft ....
MfG
Eugenie