zu schwer, für Könner
12.05.2003 16:48:12
Michael Rueth
Hallo Stefanwenn du eine Gültigkeit festlegst und dann einen Eintrag anclickst, passiert zwar etwas, aber es entsteht kein abfangbares Ereignis. Deshalb habe ich das mal mit einer Combobox versucht, aber es läuft nicht richtig. Trotzdem mal den Code. Bevor Du den ausführst, mußt Du irgendwo in der Tabelle eine Combobox einfügen, zurechtgerückt wird sie dann automatisch.
Option Explicit
Dim AktiveZelle, Cell, GL, letzteAktZelle
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Target.Column <> 1 Or Target.Cells.Count <> 1 Then GoTo m1
On Error GoTo m2
Range(letzteAktZelle).Comment.Visible = False
m2:
Dim i
For i = 1 To ComboBox1.ListCount - 1
ComboBox1.RemoveItem (1)
Next
GL = "C3:C5" 'C3:C5 ist hier die Gültigkeitsliste
ActiveSheet.Shapes("ComboBox1").Visible = True
ActiveSheet.Shapes("Combobox1").Left = Target.Left
ActiveSheet.Shapes("Combobox1").Top = Target.Top
ActiveSheet.Shapes("Combobox1").Width = Target.Width + Target.Height
ActiveSheet.Shapes("Combobox1").Height = Target.Height + 2
AktiveZelle = Target.Address
For Each Cell In Range(GL)
ComboBox1.AddItem (Cell)
Next
ComboBox1.Value = Range(AktiveZelle).Value
ComboBox1_Change
Exit Sub
m1:
ComboBox1.Visible = False
End Sub
Private Sub ComboBox1_Change()
Range(AktiveZelle) = ComboBox1.Value
Range(AktiveZelle).ClearComments
For Each Cell In Range(GL)
If Cell = Range(AktiveZelle) Then
Range(AktiveZelle).AddComment (Cells(Cell.Row, Cell.Column + 1).Value)
' Range(AktiveZelle).Comment.Visible = True
End If
Next
letzteAktZelle = ComboBox1.TopLeftCell.Address
End Sub