Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro verhindern, wenn Zelle nicht verlassen wurde

Makro verhindern, wenn Zelle nicht verlassen wurde
18.01.2013 09:41:37
Dietmar
Guten Morgen,
gibt es eine VBA-Möglichkeit, einem Berechnungsmakro eine Warnmeldung voranzustellen, wenn in einer Zelle von definierten Bereichen ein Wert eingetragen wurde, aber die Zelle nicht verlassen wurde.
Beispiel:
In den Bereichen A2:A10; C2:C10; E2:E10 sollen Werte eintragbar sein, die Anschließend per VBA in Zelle A1
summiert werden. Soweit so gut.
Wenn nun aber z.B. in Zelle A9 ein Wert eingetragen wurde, ABER nicht verlassen wurde, soll die Berechnung nicht nur einfach verhindert werden, SONDERN eine Msgbox mit einem HInweis erscheinen 'Bitte verlassen Sie die Zelle, in die Sie gerade etwas eingetragen haben'.
Danke für jeden Tipp.
Viele Grüße
Dietmar aus Aachen

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro verhindern, wenn Zelle nicht verlassen wurde
18.01.2013 09:59:41
Matze
Hallo Dietmar,
ich hab da jetzt keinen konkreten Vorschlag zur Lösung, aber ich würde gerne mal wissen wie der Wert in Zelle A9 eingetragen wird.
Hängt das mit dem schon vorhanden Makro zusammen ?
Matze

nein, ist nur Eingabebereich ...
18.01.2013 10:10:52
Dietmar
Hi Matze,
nein, A9 gehört zu einem der drei Bereiche in die Zahlenwerte eintragbar sind. Das Makro summiert die Inhalte der drei Bereiche
Wenn ich nun eine Zahl eintrage in einer Zelle dieser drei Bereiche eintrage und dann mein Makro anstoße, OBWOHL ich die Zelle noch nicht verlassen habe, passiert nichts. Das ist soweit ja bekannt. Ich möchte nun aber, dass dann eine Msgbox erscheint.
Gruß
Dietmar

Anzeige
AW: nein, ist nur Eingabebereich ...
18.01.2013 10:13:53
hary
Hallo Dietmar
Warum ueberwachst du nicht den Bereich im Worksheet_Change Ereigniss? Dann wird es nur ausgefuehrt wenn sich was im Bereich aendert.
gruss hary

ist schon anderweitig belegt ...
18.01.2013 10:17:44
Dietmar
Hi Hary,
das geht leider nicht, weil dieser Befehl auf der Seite bereits belegt ist.
Gibt es nicht ein Prüfroutine für 'Wenn Zelle in Bereichen XYZ aktiviert ist und der Eintrag "" ist, dann ...' ?
Gruß
Dietmar

AW: ist schon anderweitig belegt ...
18.01.2013 10:22:20
hary
Hallo Dietmar
Kannst doch mehrere Sachen einbauen.
Bsp.:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H2:H3000")) Is Nothing Then
Call User1
ElseIf Not Intersect(Target, Range("I2:AI3000")) Is Nothing Then
Call Name2
End If
End Sub

gruss hary

Anzeige
leider nein ...
18.01.2013 10:40:41
Dietmar
Hi Hary,
nein so geht's nicht, weil der Call nun aufgerufen wird, wenn das richtige gemacht wurde, also wenn ein Wert eingetragen wurde und die Zelle verlassen wurde.
Das 'Not Intersect' in ein 'Intersect' umwandeln ist auch nicht die Lösung.
Die Prüfung soll erst eingestoßen werden, WENN ich mein Summierungs-Makro anstoße. Dann soll geprüft werden, ob ich mich noch in einer Zelle befinde, in die ich einen Wert eingetragen haben, ABER diese noch nicht verlassen habe.
Bin gespannt ob's dafür eine Lösung gibt.
Viele Grüße
Dietmar

AW: leider nein ...
18.01.2013 10:46:18
hary
Hallo
Also bei mir ist so, wenn der Cursor in einer Zelle steht kann ich kein Makro ausfuehren(Grau hinterlegt)
gruss hary

Anzeige
AW: leider nein ...
18.01.2013 10:51:01
hary
Hallo
Also bei mir ist so, wenn der Cursor in einer Zelle steht kann ich kein Makro ausfuehren(Grau hinterlegt)
gruss hary

ok ...
18.01.2013 11:04:48
Dietmar
Hallo Hary,
das hatte ich ja ganz am Anfang auch geschrieben.
OK, danke Dir für Deine Mühe.
ich tüftele mal noch ein bisschen, vielleicht fällt mir noch was ein.
Viele Grüße
Dietmar

AW: ok ...
18.01.2013 16:28:59
Peter
Hallo Dietmar,
es gehört zu den Grundregeln in Excel, dass man nach der Eingabe in einer Zelle entweder die RETURN-Taste betätigt und/oder die Zelle verläßt. Wenn die Eingabe nicht abgeschlossen ist, dann ist praktisch alles blockiert. Es sei denn, man startet einen entsprechenden Makro aus einer anderen Datei heraus. Beispiel: Eingabe in irgendeine Zelle in der Datei_A und Auslösung des Makros in der Datei_B.
Sub Makro1()
'dieser Makro steht in "Datei_B"
Windows("Datei_A.xlsm").Activate
Sheets("Tabelle1").Select
ActiveCell.Offset(1, 0).Range("a1:a1").Select
End Sub
Nach den drei Zeilen kannst Du Deinen speziellen Code einfügen. Die Aufforderung zum Herausgehen aus der Eingabezelle kann entfallen.
Mit freundlichem Gruß
Peter Kloßek
Anzeige

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige