Hallo VBA-Profis,
ich habe eine VBA Code geschrieben, der an der FETT markierten Stelle einen Laufzeitfehler 13 - Typen unverträglich meldet. Ich finde das Problem nicht, gerade weil es bei der Variable darüber darüber funktioniert. Ich würde mich mega über eure Hilfe freuen und bedanke mich schonmal im Voraus.
Dim selectedView As New Collection
Dim selectedOrg As New Collection
Public Sub readBoxes()
'Add Org levels if checked
Set selectedView = New Collection
Set selectedOrg = New Collection
If ActiveSheet.CheckBox1.Value Then
selectedView.Add ("General Data 1+2")
End If
If ActiveSheet.CheckBox2.Value Then
selectedView.Add ("MRP 1-4")
End If
If ActiveSheet.CheckBox3.Value Then
selectedView.Add ("Purchasing")
End If
If ActiveSheet.CheckBox4.Value Then
selectedView.Add ("Sales")
End If
If ActiveSheet.CheckBox5.Value Then
selectedView.Add ("Quality")
End If
If ActiveSheet.CheckBox6.Value Then
selectedView.Add ("Foreign Trade Export Import")
End If
If ActiveSheet.CheckBox7.Value Then
selectedView.Add ("Forecasting")
End If
If ActiveSheet.CheckBox8.Value Then
selectedView.Add ("Work Scheduling")
End If
If ActiveSheet.CheckBox9.Value Then
selectedView.Add ("General Plant Data Storage 1-2")
End If
If ActiveSheet.CheckBox10.Value Then
selectedView.Add ("Warehouse Management 1-2")
End If
If ActiveSheet.CheckBox11.Value Then
selectedView.Add ("Accounting 1-2")
End If
If ActiveSheet.CheckBox12.Value Then
selectedView.Add ("Costing 1-2")
End If
If ActiveSheet.CheckBox13.Value Then
selectedOrg.Add ("Plant")
End If
If ActiveSheet.CheckBox14.Value Then
selectedOrg.Add ("Global")
End If
If ActiveSheet.CheckBox15.Value Then
selectedOrg.Add ("MRP Area")
End If
If ActiveSheet.CheckBox16.Value Then
selectedOrg.Add ("Sales Organization")
End If
If ActiveSheet.CheckBox17.Value Then
selectedOrg.Add ("Distribution Channel")
End If
If ActiveSheet.CheckBox18.Value Then
selectedOrg.Add ("Warehouse Number")
End If
If ActiveSheet.CheckBox19.Value Then
selectedOrg.Add ("Valuation Area")
End If
If ActiveSheet.CheckBox20.Value Then
selectedOrg.Add ("Purchasing Organization")
End If
If ActiveSheet.CheckBox21.Value Then
selectedOrg.Add ("Country Key")
End If
If ActiveSheet.CheckBox22.Value Then
selectedOrg.Add ("Bank Country Key")
End If
If ActiveSheet.CheckBox23.Value Then
selectedOrg.Add ("Company Code")
End If
If ActiveSheet.CheckBox24.Value Then
selectedOrg.Add ("Credit Control Area")
End If
Call showRows
End Sub
Private Sub showRows()
Dim view As String
Dim org As String
Dim containView As Boolean
Dim containOrg As Boolean
For i = 27 To 545
containView = False
containOrg = False
view = Cells(i, 1).Value
org = Cells(i, 2).Value
For n = 1 To selectedView.Count
If selectedView(n) = view Then
containView = True
Exit For
End If
Next n
For j = 1 To selectedOrg.Count
If selectedOrg(j) = org Then
containOrg = True
Exit For
End If
Next j
If containView = True And containOrg = True Then
Rows(i).Hidden = False
Else
Rows(i).Hidden = True
End If
Next i
End Sub
|