in Excel werden logische Felder standardmäßig als „WAHR“ oder
„FALSCH“ dargestellt.
was sind denn logische Felder, Zellen in denen aufgrund einer
Formel Wahr oder Falsch erscheint?
ja (du kannst aber auch ‚per Hand‘ das reinschreiben, wird ebenso als ‚boolean‘ erkannt)
Wie schaffe ich es, das das Feld als ‚Checkbox‘ dargestellt
wird, Ausgewählt, wenn es wahr ist, und nicht ausgewählt, wenn
es falsch ist?
Ist mir noch unklar.
wenn ich z.B. eine Tabelle habe, in der ich mehrere Zeilen auf den Status ‚markiert‘ setzen möchte, kann ich natürlich (per Hand, per ODBC Import, per VBA …) in der Spalte „markiert“ die Konstanten „WAHR“ oder „FALSCH“ eintragen, sieht aber komisch aus. Benutzerfreundlicher ist in dem Feld eine Checkbox, die man anklicken/anhaken kann oder eben nicht.
(muss aber automatisch gehen, da es mehrere Tausend Felder
betrifft)
Sieht nach Vba aus.
nein, ich weiß, dass es auch über die Feldformatierung geht, ich weiß nur nicht mehr, wie (war glaube ich unter ‚Benutzerdefiniert‘)
wenn ich z.B. eine Tabelle habe, in der ich mehrere Zeilen auf
den Status ‚markiert‘ setzen möchte, kann ich natürlich (per
Hand, per ODBC Import, per VBA …)
es ist gleich wie eingefügt wird, aus einer Zelle in der „Wahr“ steht kannst du kein Kontrollkästchen machen durch irgendwelche Zellformatierungen.
Die Kontrollkästchen muß man schon selbst erstellen.
Option Explicit
Sub test()
Dim rArea As Range
Dim rSel As Range
Dim rCell As Range
Dim nAreas As Integer
Dim nArea As Integer
Dim nRows As Integer
Dim nRow As Integer
Dim nCols As Integer
Dim nCol As Integer
Dim oCheckbox As OLEObject
Dim xValue As Variant
Set rSel = Selection
nAreas = rSel.Areas.Count
For nArea = 1 To nAreas
Set rArea = rSel.Areas(nArea)
nRows = rArea.Rows.Count
nCols = rArea.Columns.Count
For nRow = 1 To nRows
For nCol = 1 To nCols
Set rCell = rArea.Cells(nRow, nCol)
xValue = rCell.Value
If VarType(xValue) = vbBoolean Then
Set oCheckbox = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", \_
Link:=False, DisplayAsIcon:=False, \_
Left:=rCell.Left + 1, Top:=rCell.Top + 1, \_
Width:=rCell.Width - 1, Height:=rCell.Height - 1)
oCheckbox.LinkedCell = rCell.Address
oCheckbox.Object.Caption = ""
End If
Next
Next
Next
End Sub