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

Klick auf Zelle bringt App.Caller="Schaltfläche 1"

Forumthread: Klick auf Zelle bringt App.Caller="Schaltfläche 1"

Klick auf Zelle bringt App.Caller="Schaltfläche 1"
13.12.2005 16:36:25
Reinhard
Hallo Wissende,
zur Beantwortung von https://www.herber.de/forum/messages/708147.html habe ich die Datei:

Die Datei https://www.herber.de/bbs/user/29212.xls wurde aus Datenschutzgründen gelöscht

entwickelt.
Sie hat eine Schaltfläche (aus Formular) und u.A. folgenden Code
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
MsgBox Application.Caller
If Application.Caller = "Schaltfläche 1" Then Exit Sub
Set Bereich = Application.Union(Range("C9:G9"), Range("C10:G10"), Range("C11:G11"))
If Not Application.Intersect(Target, Bereich) Is Nothing Then
eing = InputBox("Passwort")
If eing <> "xyz" Then Exit Sub
'Blattschutz aufheben
End If
End Sub

Ein Klick auf eine Zelle im überwachten Bereich führt dazu dass workshheet_Selectionchange gleich verlassen wird durch die Application.Caller Abfrage.
Wieso ist der Application.Caller = "Schaltfläche 1" *staun*
Und wieso klappt der pre-Tag hier nicht?
Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Klick auf Zelle bringt App.Caller="Schaltfläche 1"
13.12.2005 16:44:31
Galenzo
weil Fehler!
teste mal:
Select Case TypeName(Application.Caller)
Case "Range"
v = Application.Caller.Address
Case "String"
v = Application.Caller
Case "Error"
v = "Error"
Case Else
v = "unknown"
End Select
MsgBox "caller = " & v
Viel Erfolg!
Anzeige
AW: Klick auf Zelle bringt App.Caller="Schaltfläche 1"
13.12.2005 16:49:52
Reinhard
Hallo Galenzo,
dann verstehe ich bei
If Application.Caller = "Schaltfläche 1" Then Exit Sub
nur das Gebäude wo die bahnhofsuhr dranhängt :-)
Wieso wird da Exit Sub angesprungen wenn doch Application.caller=error ist!?
Gruß
Reinhard
AW: Klick auf Zelle bringt App.Caller="Schaltfläche 1"
14.12.2005 10:39:22
Galenzo
Wegen: On Error Resume Next!!!
in deiner Zeile:
If Application.Caller = "Schaltfläche 1" Then Exit Sub
tritt bei
Application.Caller = "Schaltfläche 1"
ein Fehler auf ("Typen unverträglich") - es greift also "On Error Resume Next" und macht mit der nächsten Anweisung weiter - und die ist "Exit Sub"
zur Verifizierung "On Error Resume Next" mal auskommentieren
Anzeige
Das widerspricht vollkommen dem...
14.12.2005 10:48:33
Reinhard
Hallo Galenzo,
...was ich bis jetzt geschworen hätte. Ich war der Überzeugung dass wenn (bei Error resume next) und die If-Abfrage einen Fehler erzeugt dann mit der nächsten Zeile fortgesetzt wird und nicht mit dem Then-Zweig.
Also ich sah den Then-Zweig nicht als nächste Anweisung.
Danke ^ Gruß
Reinhard
Anzeige
die Hilfe sagt:
14.12.2005 11:07:24
Galenzo
die Hilfe sagt:
Resume Next: "..Bei Fehlern innerhalb der Prozedur mit der Fehlerbehandlungsroutine setzt das Programm die Ausführung mit der Anweisung fort, die unmittelbar auf die fehlerverursachende Anweisung folgt.."
AW: die Hilfe sagt:
14.12.2005 17:21:43
Reinhard
Hallo Galenzo,
danke für deine Geduld. Es liegt owohl daran dass sich alles in mir wehrt die Zeile
If Vergleich then Machedas
als 2 Anweisungen zu sehen oder so.
Für mich ist/war die nächste Anweisung, wenn bei If ein Fehler auftritt, die Anweisung nach der End If Anweisung daja die Bedingung nicht erfüllt wurde. Also bei mir ist/war die Nichterfüllung der If-Bedingung viel höherwärtig als resume next.
Okay, ich nehme es zur Kenntnis wie es ist, wieder was gelernt.
Gruß
Reinhard
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige