Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Focus auf ein Zelle abfragen

Focus auf ein Zelle abfragen
11.12.2004 00:44:11
Stefan
Hallo große Helfer,
da ich bei meiner Excel-Tabelle auf Grund von Mehrfachnutzung keinen Zellenschutz verwenden kann stellt sich die Frage, ob ich nicht beim Anklicken einer "geschützten Zelle" eine Meldung anzeigen kann? Somit kann ich zwar nicht verhindern, daß etwas überschrieben wird, ich kann aber den Benutzer darauf aufmerksam machen.
Eine zweite Frage fällt mir gerade noch ein. Kann ich bei einer Mehrfachnutzung eines Excelblattes erkennen ob bzw. wer gleichzeitig das Tabellenblatt geöffnet hat? Mir fällt nur ein, daß ich ein Blatt schützen könnte und beim Schreiben den Fehlercode abfange. Diese Lösung gefällt mir aber nicht so gut.
Vielen Dank im Voraus
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Undo-Makro
Beate
Hallo Stefan,
Eingaben werden sofort wieder gelöscht:
Ins Codefenster der Tabelle folgendes Makro:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 5 And Target.Row < 9 Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
Else
End If
End Sub

Bei einer Eingabe wird geprueft, ob die Eingabe im zu schuetzenden Bereich liegt (Hier Zeilen 6-8). Wenn ja, dann schaltet das Makro die Ereignissteuerung von Excel temporaer aus, widerruft die Eingabe mit der Anweisung "Application.Undo" und schaltet danach die Ereignissteuerung wieder ein.
Es existiert folgende Beispieldatei (und dort Nr. 12 wählen aber auch Nr. 25 ist ähnlich und zeigt, wie man Bereiche einschränkt, für die es gelten soll):
http://www.excel-center.de/foren/file.php?4,file=18
Gruß,
Beate
Anzeige
OT: Nachfrage
PeterW
Hallo Beate,
wäre in dem Fall nicht das Worksheet_SelectionChange-Ereignis besser geeignet?
Gruß
Peter
AW: OT: Nachfrage
Beate
Warum? Du willst doch nur, dass das Makro anspringt, wenn in zu schützenden Zellen was geändert wurde und nicht jedesmal, weil nur eine andere Zelle aktiviert wurde.
Gruß,
Beate
Anzeige
AW: OT: Nachfrage
PeterW
Hallo Beate,
dann hab ich die Ausgangsfrage wohl nicht richtig gelesen/verstanden ob ich nicht beim Anklicken einer "geschützten Zelle" eine Meldung anzeigen kann, sorry.
Gruß
Peter
@ Peter
Beate
Hallo Peter,
meiner Meinung nach war er nur so zurückgerudert, weil er keine Schutzmöglichkeit fand.
Die wäre aber über das Undo-Makro möglich und somit die Meldung überflüssig. Verhindern scheint ihm lieber zu sein, als nur zu warnen. IMHO.
Gruß,
Beate
Anzeige
AW: Focus auf ein Zelle abfragen
11.12.2004 21:17:53
Stefan
Hallo Beate, hallo Peter und die anderen Helfer,
das Problem ist folgendes. Ich kann das Tabellenblatt nicht schützen! Da ich Mehrfachbenutzung zulasse, kann das Blatt nicht geschütz werden, bzw. beim Blattschutz aufheben erfolgt der Fehler. In den Zellen stehen aufsummierte Werte, die durch Drücken einer Schaltfläche aus anderen Zellen weiter aufsummiert werden. Normalerweise soll keiner auf die Schaltfläche klicken, aber es reicht, wenn eine MsgBox erscheint.
Dank Stefan
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Focus auf eine Zelle abfragen in Excel


Schritt-für-Schritt-Anleitung

  1. Makro aktivieren: Öffne Excel und aktiviere die Entwicklertools. Gehe zu „Datei“ > „Optionen“ > „Menüband anpassen“ und aktiviere die Entwicklertools.

  2. VBA-Editor öffnen: Klicke auf „Entwicklertools“ und dann auf „Visual Basic“, um den VBA-Editor zu öffnen.

  3. Arbeitsblatt auswählen: Wähle das Arbeitsblatt aus, in dem Du die Funktion implementieren möchtest.

  4. Code einfügen: Im Codefenster des Arbeitsblattes füge folgenden Code ein:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If Not Intersect(Target, Me.Range("A1:B10")) Is Nothing Then
            MsgBox "Achtung! Diese Zelle ist geschützt."
        End If
    End Sub
  5. Zellenbereich anpassen: Ändere A1:B10 auf den gewünschten Zellenbereich, wo Du eine Meldung anzeigen möchtest.

  6. Makro speichern: Speichere die Datei als „Excel-Makro-fähige Arbeitsmappe (*.xlsm)“.

  7. Testen: Wechsle zu einer der definierten Zellen, um sicherzustellen, dass die MsgBox erscheint.


Häufige Fehler und Lösungen

  • Fehler: Fokus auf Zelle nicht verfügbar
    Lösung: Stelle sicher, dass die Datei als .xlsm gespeichert ist und die Makros aktiviert sind.

  • Fehler: Focus-Zelle Excel funktioniert nicht
    Lösung: Überprüfe den Zellenbereich im Code. Wenn der Bereich nicht übereinstimmt, wird die MsgBox nicht angezeigt.

  • Fehler: Excel Fokus Zelle aktivieren nicht möglich
    Lösung: Überprüfe, ob Du im richtigen Arbeitsblatt arbeitest und ob der Code korrekt eingefügt wurde.


Alternative Methoden

  • Worksheet_Change-Ereignis: Anstelle von Worksheet_SelectionChange kannst Du das Worksheet_Change-Ereignis verwenden, um spezifische Änderungen in bestimmten Zellen zu überwachen.

  • Formeln nutzen: Du kannst auch Datenvalidierung oder bedingte Formatierungen verwenden, um visuelle Hinweise zu geben, wenn Nutzer in geschützte Zellen klicken.


Praktische Beispiele

  1. Eingaben in geschützten Zellen: Wenn Du verhindern möchtest, dass Nutzer in geschützte Zellen schreiben, kannst Du den Worksheet_Change-Code verwenden, um Änderungen rückgängig zu machen.

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Me.Range("C1:C5")) Is Nothing Then
            Application.EnableEvents = False
            Application.Undo
            Application.EnableEvents = True
            MsgBox "Änderungen in diesem Bereich sind nicht erlaubt."
        End If
    End Sub
  2. Anzeige von Nutzern: Wenn Du herausfinden möchtest, wer das Dokument geöffnet hat, könnte ein VBA-Script zur Überwachung der Nutzeraktivitäten hilfreich sein.


Tipps für Profis

  • Fehlermeldungen anpassen: Du kannst die MsgBox so anpassen, dass sie spezifische Informationen enthält, z.B. über den aktuellen Benutzer oder die Art der Eingabe.

  • Ereignisse kombinieren: Kombiniere mehrere Ereignisse, um eine umfassendere Kontrolle über die Eingaben zu haben. Zum Beispiel, die Kombination von SelectionChange und Change.

  • Sichtbarkeit steuern: Mit dem Visible-Attribut kannst Du die Sichtbarkeit von Zellen dynamisch steuern, um das Nutzererlebnis zu verbessern.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die MsgBox nur einmal erscheint?
Du kannst eine globale Variable erstellen, um zu tracken, ob die MsgBox bereits angezeigt wurde.

2. Was tun, wenn ich mehrere geschützte Bereiche habe?
Erweitere die Bedingung im Code mit mehreren Intersect-Überprüfungen oder verwende ein Select Case-Konstrukt, um verschiedene Bereiche zu behandeln.

3. Funktioniert das auch in Excel 365?
Ja, die oben genannten Methoden funktionieren in Excel 365 sowie in anderen Versionen, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige