AW: position checkbox
07.03.2006 15:50:39
Ralf
Hallo Thomas,
ich habe das so gelöst: Im Tabellenblatt für alle Zellen nur eine einzige Combobox verwendet, die (je nach ausgewählter Zelle) auf der Zellposition und mit angepasstem Inhalt angezeigt wird. Du musst hier die Combobox [cbAuswahl] eben durch eine Checkbox ersetzen. Platziere also eine Checkbox auf dem Tabellenblatt, vergib ihr einen Namen und setzte die Visible-Eigenschaft auf true. Dann passe Dir folgenden Code an Deine Bedürfnisse an.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Zeile#, Spalte%, FreieKFZ()
Zeile = (Target.Row + 5) Mod 11 'Ab Zeile 6 beginnende, alle 11 Zeilen
Spalte = (Target.Column - 1) Mod 2 'Alle 2 Spalten ab Spalte A beginnend
If Target.Row > 4 And Target.Column <= 10 Then
Select Case Zeile
Case 0, 3, 4, 5, 6, 7
Select Case Spalte
Case 0
If Zeile = 0 Then
cbAuswahl.Top = Target.Top
cbAuswahl.Left = Target.Left
Columns(Target.Column).ColumnWidth = cbAuswahl.Width / 6
' cbAuswahl.Height = 25
Rows(Target.Row & ":" & Target.Row).RowHeight = 25
ElseIf Zeile = 3 Or Zeile = 4 Or Zeile = 5 Then
cbAuswahl.Top = Target.Top
cbAuswahl.Left = Target.Left
Columns(Target.Column).ColumnWidth = cbAuswahl.Width / 6
cbAuswahl.Value = "Bitte wählen Sie einen Anhänger aus"
ElseIf Zeile = 6 Then
cbAuswahl.Top = Target.Top
cbAuswahl.Left = Target.Left
Columns(Target.Column).ColumnWidth = cbAuswahl.Width / 6
cbAuswahl.Value = "Bitte wählen Sie einen Fahrer aus"
ElseIf Zeile = 7 Then
cbAuswahl.Top = Target.Top
cbAuswahl.Left = Target.Left
Columns(Target.Column).ColumnWidth = cbAuswahl.Width / 6
' Rows(Target.Row).RowHeight = cbAuswahl.Height - 3.5
cbAuswahl.Value = "Bitte wählen Sie einen Beifahrer aus"
iArt = 4
Boxeninhalt "Q", "R"
End If
Case Else
cbAuswahl.Visible = False
End Select
Case Else
cbAuswahl.Visible = False
End Select
End If
End Sub
Anmerkung: Hab ein paar Zeilen aus dem Ursprungscode herausgelöscht. Evtl. ein paar zuviel, aber nach grober Durchsicht sollte das funktionieren.
Ciao, Ralf