AW: Wo ist der Fehler?
21.05.2009 20:50:15
dan
Hallo,
das Problem liegt nicht im Zahl oder String, weil hier wird eigentlich ein Variant type vergleicht, weil was wir hier genau machen ist dies:
Cells(row, col).Value = 0 ... und Value ist eine Property, die gibt den Variant zurueck. Also ob Zahl oder string, in dem Vergleich wird eine implicit-conversion gemacht.
Laut Help: Value property as it applies to the Range object...Returns or sets the value of the specified range. Read/write Variant
Dein Code funzt nicht, weil es nicht komplett ist. Es fehlen die Else Teile. Aber besser waere es die einzelnen Bedingugen mit And zu verbinden. Siehe die Code-Samples unten ... nur als Beispiel gedacht. Gruss dan, cz.
Option Explicit
Public Sub SetTextboxVisibility()
If Worksheets("Tabelle1").Cells(10, 11) = "0" Then
If Worksheets("Tabelle1").Cells(11, 11) = "0" Then
If Worksheets("Tabelle1").Cells(10, 12) = "0" Then
If Worksheets("Tabelle1").Cells(11, 12) = "0" Then
If Worksheets("Tabelle1").Cells(10, 13) = "0" Then
If Worksheets("Tabelle1").Cells(11, 13) = "0" Then
If Worksheets("Tabelle1").Cells(10, 16) = "0" Then
If Worksheets("Tabelle1").Cells(11, 16) = "0" Then
Worksheets("Tabelle2").Shapes("Textfeld 1").Visible = True
Else
Worksheets("Tabelle2").Shapes("Textfeld 1").Visible = False
End If
Else
Worksheets("Tabelle2").Shapes("Textfeld 1").Visible = False
End If
Else
Worksheets("Tabelle2").Shapes("Textfeld 1").Visible = False
End If
' usw...
End If
End If
End If
End If
End If
End Sub
Public Sub SetTextboxVisibility2()
If (Worksheets("Tabelle1").Cells(10, 11) = "0" And _
Worksheets("Tabelle1").Cells(11, 11) = "0" And _
Worksheets("Tabelle1").Cells(10, 12) = "0" And _
Worksheets("Tabelle1").Cells(11, 12) = "0" And _
Worksheets("Tabelle1").Cells(10, 13) = "0" And _
Worksheets("Tabelle1").Cells(11, 13) = "0" And _
Worksheets("Tabelle1").Cells(10, 16) = "0" And _
Worksheets("Tabelle1").Cells(11, 16) = "0") Then
Worksheets("Tabelle2").Shapes("Textfeld 1").Visible = True
Else
Worksheets("Tabelle2").Shapes("Textfeld 1").Visible = False
End If
End Sub