Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1168to1172
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zelle wie Button

Zelle wie Button
Peter
Hallo!
Ich habe 3 Spalten, in die eine Wertigkeit von niedrig, mittel und hoch eingetragen werden soll. Dazu habe ich eine Lösung, die folgendermaßen aussieht:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim markiert, default As String
markiert = "X"
default = ""
If Not Intersect(Target, Range("E5:G103")) Is Nothing Then
Select Case Target.Value
Case default
Target.Value = markiert
Case markiert
Target.Value = default
End Select
Select Case Target.Column
Case 5
ActiveSheet.Cells(Target.Cells.Row, 6).Value = ""
ActiveSheet.Cells(Target.Cells.Row, 7).Value = ""
Case 6
ActiveSheet.Cells(Target.Cells.Row, 5).Value = ""
ActiveSheet.Cells(Target.Cells.Row, 7).Value = ""
Case 7
ActiveSheet.Cells(Target.Cells.Row, 5).Value = ""
ActiveSheet.Cells(Target.Cells.Row, 6).Value = ""
End Select
ActiveSheet.Cells(Target.Cells.Row, 22).Activate
End if
End Sub
Hierbei wird zum einen bei einem Klick in eine Zelle einer Zeile ein X sozusagen als Marker für die Wertigkeitsstufen gesetzt. Im zweiten Schritt wird eine mögliche Markierung in den beiden anderen Zellen gelöscht.
So, im dritten Schritt lege ich den Fokus danach auf ein belanglose Zelle weiter hinten in der Zeile, denn, würde ich das nicht tun, wäre noch die Zelle aktiviert, in die ich gerade eine Markierung gesetzt habe. Würde ich erneut in die gleiche Zelle reinklicken, dann würde ich den Inhalt (also das X) modifizieren können, das will ich nicht.
Kann ich, um das Aktivieren einer anderen Zelle zu vermeiden, einfach die markierte Zelle deaktivieren, also dann eigentlich keine Zelle auswählen?
P

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zelle wie Button
05.08.2010 15:03:09
ChrisL
Hi Peter
Da es kein Unselect/Deselect gibt, würde ich vorschlagen den betroffenen Bereich mit einem Schreibschutz zu versehen:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim markiert, default As String
markiert = "X"
ActiveSheet.Unprotect
If Not Intersect(Target, Range("E5:G103")) Is Nothing Then
Range(Cells(Target.Row, 5), Cells(Target.Row, 7)).ClearContents
Target = markiert
End If
ActiveSheet.Protect
End Sub

cu
Chris
AW: Zelle wie Button
05.08.2010 15:40:31
fcs
Hallo Peter,
mit den folgenden Anpassungen kann per Zellselektion immer nur ein "X" in der Zeile gesetzt werden.
Per Doppelklick kann man ggf. ein eingetragenens "X" wieder löschen. Es ist nicht unbedingt notwendig Leerstrings in die Zellen zu schreiben, man kann die Zellinhalte auch löschen.
Gruß
Franz
Option Explicit
Private Const markiert As String = "X"
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("E5:G103")) Is Nothing _
And Target.Cells.Value = markiert _
And Target.Cells.Count = 1 Then
Target.ClearContents
Cancel = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("E5:G103")) Is Nothing And Target.Cells.Count = 1 Then
If Application.WorksheetFunction.CountIf(Range(Cells(Target.Cells.Row, 5), _
Cells(Target.Cells.Row, 7)), markiert) = 0 Then
Target.Value = markiert
End If
End If
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige