Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1648to1652
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

Rahmen ungeschützter Zellen wenn Mauszeiger drüber

Rahmen ungeschützter Zellen wenn Mauszeiger drüber
16.10.2018 11:52:32
Andre
Hallo liebe Excel Experten,
meine Arbeitsmappe besteht aus mehreren Arbeitsblättern, in denen bestimmte Zellen geschützt und andere zur EingabeBearbeitung nötig sin. Damit der Benutzer sofort sieht welche Zellen er bearbeiten kann und welche nicht, soll ein Rahmen oder eine Farbe um die Zelle enstehen, wenn der Mauszeiger über so einer steht.
Durch eigene Recherche bin ich nicht allzu weit gekommen.
Dieser Code bewirkt zb gar nichts:

Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X    _
_
_
As Single, ByVal Y As Single)
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Der bewirkt höchstens einen Kompilationsfehler
16.10.2018 13:47:21
EtoPHG
Andre,
Würdest du (was übrigens immer zu empfehlen ist) im VBE - Extras - Optionen - |Editor] -
die Checkbox [x] Variablendeklaration erforderlich setzen, stände als erste Codezeile immer
Option Explicit. Das würde dich dann darauf hinweisen, dass
 With .Borders(xlEdgeLeft)
ein unzulässiger oder nicht ausreichend definierter Verweis ist.
Ein With-Konstrukt muss auf ein gültiges Objekt verweisen und kann nicht einfach mit einer Eigenschaft (.Borders) beginnen. Welche .Borders sollen denn da gesetzt werden?
Aber der ganze Ansatz mit dem _MouseMove Ereignis ist schon falsch, denn dieses Ereignis wird nur ausgelöst, wenn du mit dem Cursor über den Button fährst, nicht aber wenn du den Zeiger über Zellen bewegst!
Das was du willst, könnte mit aufwändiger API-Programmierung zwar erreicht werden, ist aber jenseits von sich auszahlendem Komfort für den Anwender. Warum nicht einfach die erlaubten Zellen z.B. gelb färben und dem Benutzer damit mitteilen, hier kann etwas eingegeben/verändert werden?
Gruess Hansueli
Anzeige
AW: Der bewirkt höchstens einen Kompilationsfehler
16.10.2018 15:06:04
Andre
Hallo EtoPHG,
danke für deine Antwort.Ich habe schon befürchtet, dass das ganze zu aufwändig ist.
Alle Eingabefelder farblich zu kennzeichnen ist aus gestalterischer Sicht meines AG nicht erwünscht.
Wie wäre es wenn die Felder die nicht geschützt sind, bei anklicken anders farblich hinterlegt werden,
danach aber ihre ursprüngliche Farbe bekommen?
Vielen Dank für schonmal!
Grüße
Andre
Design, Widerspruch usw.
16.10.2018 15:15:54
EtoPHG
Hallo Andre,
Damit der Benutzer sofort sieht welche Zellen er bearbeiten kann ...
und
Alle Eingabefelder farblich zu kennzeichnen ist aus gestalterischer Sicht meines AG nicht erwünscht. und Wie wäre es wenn die Felder die nicht geschützt sind, bei anklicken anders farblich hinterlegt werden sind widersprüchlich.
Also warum nicht alle Eingabefelder von Anfang an mit Background versehen. Wenn der Inhalt überprüft und für richtig befunden, dann den Background auf "keine Füllung" ändern.
Das dürfte im Bereich deiner Progger-Fähigkeiten liegen.
Gruess Hansueli
Anzeige
Üblich ist es ja eher, ganze Tabellen mehr oder …
16.10.2018 15:21:11
Luc:-?
…weniger dezent und zellfunktionsspezifisch einzufärben und dabei EingabeFelder ungefärbt zu belassen, André;
das habe ich schon des Öfteren gesehen. Anderenfalls ist das, was du nun vorschlägst, mal xl-typisch gewesen, aber inzwischen so stark abgeschwächt worden, dass manchem das nicht mehr reicht. Deshalb gibt's dazu seit Jahren immer wieder mal Anfragen und Lösungen, die mit etwas Glück im Archiv zu finden sind.
🙈 🙉 🙊 🐵 Gruß, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige
MouseMove für Zellen: nur indirekt mit Kommentar
16.10.2018 16:11:27
Daniel
Hi
ein "MouseMove" gibt es nicht für Excelzellen (zumindest keines, welches du mit VBA-Bordmitteln und dem Kennisstand "bescheiden" nutzen kannst).
dh auch mit VBA wirst du für diese Problemstellung nicht weit kommen.
das einzige was in die Richtung deiner Wünsche geht, wäre folgendes:
- richte für jede Eingabezelle einen Kommentar ein, in welchen du z.B. reinschreibst, was in diese Zelle eingegeben werden soll.
das Kommentarfeld wird angezeigt, wenn du mit der Maus über dem Eingabefeld stehest ohne diese anzuklicken (dh. das entspricht am ehesten noch dem MouseMove)
dauerhaft werden alle Zellen mit Kommentar durch ein kleines Dreieck in der rechten oberen Ecke kenntlich gemacht, welches nicht störten sollte.
Gruß Daniel
Anzeige
AW: MouseMove für Zellen: nur indirekt mit Kommentar
16.10.2018 16:54:39
Andre
Das Problem ist das die Tabelle recht komplex ist, um eine gewisse Übersichtlichkeit gewährleisten zu können, sind einzelne Teile der Tabelle farblich in "Pakete" eingeteilt.
Haha und ja Eto, das bekomme ich in der Tat geradeso noch hin.. :D
Nur die Tabelle soll halt eher "automatisch"/ intuitiv sein.
Trotzdem danke für eure Hilfe, ich sehe mal was ich finde. :)
Beste Grüße
Andre
AW: MouseMove für Zellen: nur indirekt mit Kommentar
18.10.2018 10:06:28
Andre
Hallo nochmal,
ich habe jetzt einen Code gefunden, welcher immer die aktive Zelle farblich hinterlegt und danach wieder die ursprüngliche Farbe annimmt. Klappt auch wunderbar, nur möchte ich ja nur, dass die bearbeitbaren Zellen farblich markiert werden.
Ich habe folgenden Code benutzt, und muss gestehen ich verstehe davon kaum etwas... :'D
(noch nicht so gut vertraut mit vba)
Die Bereiche auf denen sich dieser Code beziehen soll sind zb E12:G16 und E18:G22 und viele mehr...
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fehler
Cells.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _
Formula1:="="
Selection.FormatConditions(1).Interior.Color = 3407718
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub

Anzeige
AW: MouseMove für Zellen: mit bed Format
18.10.2018 10:26:39
Daniel
naja, das hast du keine besonders gute Lösung gefunden, da sollte es auch bessere geben.
außerdem hast du hier ja kein MouseMove, sondern die Färbung der Zelle erfolgt nur dann, wenn du die Zelle anklickst.
das ganze geht etwas einfacher:
1. im Modul des Tabellenblatts folgenden Code, er legt die aktive Zelle in einem Namen ab, so dass du ihn später in bedingten Formatierung verwenden kannst:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveCell.Name = "AktiveZelle"
End Sub

2. in einem allgemeinen Modul schreibst du folgenden Code. Damit bekommst du eine neue Funktion, mit welcher du prüfen kannst, ob eine Zelle geschützt ist oder nicht:
Function IstGesperrt(Optional Zelle As Range) As Boolean
If Zelle Is Nothing Then Set Zelle = Application.Caller
IstGesperrt = Zelle.Locked
End Function
3. richte jetzt für den betroffenen Zellbereich eine Bedingte Formatierung mit folgender Formel als Regel ein.
=UND(Spalte()=Spalte(AktiveZelle);Zeile()=Zeile(AktiveZelle);Nicht(IstGesperrt()))
Gruß Daniel
Anzeige
AW: MouseMove für Zellen: mit bed Format
18.10.2018 10:42:07
Andre
Hallo Daniel,
vielen Dank für deine schnelle Antwort!!
Das klappt an sich super, allerdings nachdem ich eine Zelle anklicke dauert es ungefähr 5 Sekunden bis diese eingefärbt wird... Liegt das an meinem Rechner bzw kann man das irgendwie beschleunigen? :D
Gruß
Andre
AW: MouseMove für Zellen: mit bed Format
18.10.2018 11:02:16
Daniel
HI
vielleicht wenn du die Bedingte Formatierung nicht für alle Zellen gültig machst, sondern nur für den Bereich, in dem die Eingabezellen liegen?
Gruß Daniel
AW: MouseMove für Zellen: mit bed Format
18.10.2018 11:05:34
Daniel
wobei ich ein Tabellenblattdesign, bei dem der Anwender nicht sofort erkennt, in welche Zellen er was eingeben soll, sondern erst jede Zelle anklicken muss um das herauszufinden, für nicht gerade gelungen.
Anzeige
AW: MouseMove für Zellen: mit bed Format
18.10.2018 11:11:27
Andre
Hi
ja habe die bed. Formatierung bisher nur auf 15 Zellen angewendet..
Ja das stimmt, ich würde mich sehr über eine Idee/einen Vorschlag freuen. :)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige