Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
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

Wenn die Selektion eine Zelle verlässt

Wenn die Selektion eine Zelle verlässt
24.08.2018 15:23:01
Felix
Guten Tag allerseits,
nach ewigem Herumgesuche in den Excel-Foren dieser Welt konnte ich keine Lösung zu meinem Problem finden. Ich hoffe ihr könnt mir helfen.
Das Problem ist eigentlich recht simpel.
Ich habe eine Eingabemaske (auf einem Arbeitsblatt) mit 8 Feldern, einem DropDown und danach einem weiteren Feld (Bemerkungen). Am unteren Ende steht ein Button, welcher die eingetragenen Daten in einer Tabelle auf dem zweiten Arbeitsblatt speichert.
Ich möchte nun, dass der Nutzer seine Eingaben ausschließlich mit der Tastatur erledigen kann. Durch den Blattschutz ist es kein Problem, dass er von Zelle zu Zelle (mit Enter) springt, ohne in eine Falsche zu geraten.
Ich habe nun über die Worksheet_Change Funktion ein kleines Script geschrieben. Wenn in der Bemerkungszelle eine Eingabe getätigt wird, wird eine MsgBox aufgerufen, die fragt ob die Eingaben ok sind und bei "ja" sie in Tabelle2 speichert (führt die Prozedur des Buttons aus).
Worin liegt nun das Problem?
Die Bemerkungszelle muss nicht gefüllt werden. Sie kann auch leer bleiben. Das Problem ist, die Worksheet_Change Funktion erkennt ja nur eine Änderung, wenn die Zelle im "Bearbeitungsmodus" war (also mit F2 oder Doppelklick betätigt).
Ich habe mir versucht mit SendKeys zu behelfen, aber das zerhaut mir im weiteren Verlauf des Programms einige Prozeduren.
1. Frage: Kann man SendKeys nur einmalig ausführen?
2. (wichtigere) Frage: Gibt es eine Prozedur, die erkennt wenn die Selektion von der Bemerkungszelle weggenommen wird?
Die Zelle, die danach angesteuert wird, ist wieder die erste Eingabezelle. Deshalb fällt die Prüfung "ob diese Zelle selektiert wurde" auch weg. (Es laufen andere Worksheet_Changes für die 1. Zelle)
Vielen Dank schon mal und ein schönes Wochenende!

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn die Selektion eine Zelle verlässt
24.08.2018 15:38:03
Oberschlumpf
Hi Felix,
übernimm diesen Code ins Tabellenmodul:

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lBemerkZelle As Variant
'trag anstelle von $A$1 DIE Zelle ein, um die es dir geht
'die $-Zeichen müssen genau so angegeben werden
If Target.Address = "$A$1" Then
lBemerkZelle = Target.Address
Else
lBemerkZelle = ""
End If
'auch hier anstelle von $A$1 die Zelle um die es dir geht
If lBemerkZelle = "$A$1" Then
If MsgBox("Sind die Eingaben ok?", vbYesNo + vbQuestion, "Frage") = vbNo Then
Application.EnableEvents = False
Range(lBemerkZelle).Select
Application.EnableEvents = True
End If
End If
End Sub

Hilfts?
Wenn nein, zeig uns bitte per Upload eine Bsp-Datei, die vom Aufbau aussieht wie deine richtige Datei.
Ciao
Thorsten
Anzeige
AW: Wenn die Selektion eine Zelle verlässt
24.08.2018 15:43:35
Nepumuk
Hallo Felix,
teste mal:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static sblnBemerung As Boolean
    If Target.Address = "$C$1" Then 'Hier kommt die Adresse deiner Bemerkunszelle rein
        sblnBemerung = True
    Else
        If sblnBemerung Then
            If MsgBox("Eingaben in Ordnung?", vbQuestion Or vbOKCancel, "Abfrage") = vbOK Then
                sblnBemerung = False
                
                'Dein Code zum übertragen
                
            End If
        End If
    End If
End Sub

Du musst natürlich die Adresse deiner Bemerkungszeile hier: If Target.Address = "$C$1" Then anpassen.
Gruß
Nepumuk
Anzeige
AW: Wenn die Selektion eine Zelle verlässt
24.08.2018 17:07:12
Felix
Hallo ihr beiden,
vielen Dank für die Antworten. Ich werde das am Montag auf der Arbeit mal austesten und eine Rückmeldung geben. Ich dachte ehrlich gesagt nicht, dass hier am Freitagnachmittag noch so aktiv geanwortet wird. :D
Viele Grüße
AW: Wenn die Selektion eine Zelle verlässt
27.08.2018 10:28:00
Felix
Hallo Nepumuk,
ich habe deine Lösung angewandt, da der Code von Oberschlumpf bei mir nicht funktioniert hat.
Das funktioniert jetzt soweit auch ganz gut, nur jetzt habe ich ein Problem mit meinem Dropdown darüber.
Kurz zur Funktionsweise: 8 Felder, 1 Dropdown, 1 Bemerkungszelle (D16)
Eingabe in jedes der 8 Felder, Enter, Dropdown auswählen (Maus) oder reinschreiben (Ja / Nein), wenn Ja, dann werden im Formular weitere Eingabefelder (G3 bis G14) offengelegt und das erste davon per VBA selektiert.
In diese Felder soll dann auch was eingetragen werden. Die letzte Zelle die mit Enter angesteuert wird ist aber wieder die Bemerkungszelle.
Alles funktioniert ohne Probleme, wenn ich das Dropdown (D14) per Maus betätige.
Wenn ich allerdings "ja" reinschreibe und Enter drücke, springt mir mein Code zwar in die erste "neue" Zelle G3 aber wenn ich diese Zelle dann verlasse, kommt die Messagebox als hätte ich die Selektierung der Bemerkungszelle aufgehoben (Führt also praktisch deinen Code aus).
Vielleicht war mein Gedankengang über die Selektierung auch nicht ganz richtig. Kann man per VBA abfragen ob die Bemerkungszelle mit Enter verlassen wurde?
Anzeige
AW: Wenn die Selektion eine Zelle verlässt
27.08.2018 12:51:26
Felix
Hallo nochmal,
ich habe das Dropdown jetzt weiter nach oben verlegt und konnte das Problem so "umgehen".
Ich danke euch vielmals für die Hilfe!
Gruß Felix

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige