Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
708to712
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
708to712
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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!
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
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

261 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige