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

application.caller

Forumthread: application.caller

application.caller
26.11.2002 12:00:57
Jörg
Hallo Forum ,

ich hätte da mal wieder ein Problem.
Ich habe auf einen Worksheet eine Checkbox dessen Zustand ich abfragen möchte, um darauf zu reagieren.

Hier der Code:
public sub test()
Dim blnWert As Boolean
Dim strAufrufendecheckbox$
On Error GoTo ErrorHandler
strAufrufendecheckbox = Application.Caller
Application.ScreenUpdating = False
If ActiveSheet.Shapes(strAufrufendecheckbox).ControllFormat.Value = 1 Then
blnWert = True
Else
blnWert = False
End If
If blnWert = True Then
blablabla

Ich bekomme immer den Fehler Typen unverträglich (Fehler 2003).
Wo liegt hier denn der Fehler.

Danke im Voraus

Jörg

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: application.caller
26.11.2002 12:19:35
ANdreas
Hallo Jörg,

schreib bitte dazu in welcher Zeile genau der Fehler auftritt!
Wenn ich das grob überfliege, fällt auf, dass es ControlFormat heißen muss, Du hast also ein "l" zuviel drin.

Wie gesagt wenn es das nicht war, dann schreib bitte dazu in welcher Zeile der Fehler auftritt,

Hoffe das hilft weiter,
Andreas

Anzeige
Re: application.caller
26.11.2002 12:50:51
Jörg
Hi Andreas,

der Fehler tritt in der Zeile auf:
strAufrufendecheckbox = Application.Caller

Gruss Jörg

Re: application.caller
26.11.2002 13:35:35
ANdreas
Hallo Jörg,

dann ist es klar! Aber dazu hast Du doch den ErrorHandler eingerichtet.
Also dieser Fehler tritt auf, wenn Du das Makro z.B. direkt im VB-Editor startest. Weist Du das Makro, so wie wohl beabsichtigt, der Checkbox zu, dann wird es dann ausgeführt, wenn Du auf die Checkbox klickst. Somit gibt es dann auch einen Caller und es tritt kein Fehler auf.

Hoffe das hilft weiter,
Andreas

Anzeige
Re: application.caller
26.11.2002 13:44:44
ANdreas
Hallo Jörg,

wenn Du Dir noch mal mein Lösungsvorschlag von damals genau anguckst, dann habe ich auf diesen Sachverhalt hingewiesen (also dass das Makro nur von den Checkboxen aufgerufen werden soll)!

https://www.herber.de/forum/archiv/180to184/t181825.htm

Wenn Du noch Fragen dazu hast, dann nur zu!
Gruß Andreas

Anzeige
Funktioniert
26.11.2002 13:46:05
Jörg
Andreas,
was soll ich sage Du hattest vollkommen recht.
Herzlichen Dank für Deine Hilfe.

Gruss Jörg

Re: Funktioniert
26.11.2002 14:16:40
ANdreas
Hallo Jörg,

ich hab noch eine geringfügig andere Lösung. Wenn man nämlich die Variable als Variant deklariert, kann man sich den Sprungbefehl zum ErrorHandler sparen:
Viel Spaß,
Andreas

Anzeige
;
Anzeige

Infobox / Tutorial

Anwendung von Application.Caller in Excel VBA


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke Alt + F11, um den VBA-Editor zu öffnen.

  2. Modul anlegen: Klicke im Projektfenster mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsx)“, wähle Einfügen und dann Modul.

  3. Code eingeben: Füge den folgenden Code in das Modul ein:

    Public Sub test()
        Dim blnWert As Boolean
        Dim strAufrufendeCheckbox As String
        On Error GoTo ErrorHandler
    
        strAufrufendeCheckbox = Application.Caller
        Application.ScreenUpdating = False
    
        If ActiveSheet.Shapes(strAufrufendeCheckbox).ControlFormat.Value = 1 Then
            blnWert = True
        Else
            blnWert = False
        End If
    
        If blnWert = True Then
            ' Hier deine Logik einfügen
        End If
    
        Exit Sub
    ErrorHandler:
        MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
    End Sub
  4. Checkbox hinzufügen: Füge eine Checkbox auf Deinem Arbeitsblatt hinzu und weise das Makro test zu.

  5. Makro testen: Klicke auf die Checkbox, um das Makro auszuführen.


Häufige Fehler und Lösungen

  • Typen unverträglich (Fehler 2003): Dieser Fehler tritt auf, wenn das Makro nicht von einer Checkbox aufgerufen wird. Stelle sicher, dass das Makro korrekt zugewiesen ist und von der Checkbox gestartet wird.
  • Application.Caller Fehler: Wenn Du das Makro direkt im VBA-Editor startest, wird Application.Caller nicht definiert. Das Makro muss durch die Interaktion mit der Checkbox gestartet werden.

Alternative Methoden

Eine alternative Methode zur Verwendung von Application.Caller ist die Verwendung von ActiveSheet.Buttons oder ActiveSheet.Shapes, um auf die Schaltflächen oder Formen zuzugreifen. Beispiel:

Dim btn As Object
Set btn = ActiveSheet.Buttons(Application.Caller)

Diese Methode kann nützlich sein, wenn Du mit Schaltflächen statt mit Checkboxen arbeitest.


Praktische Beispiele

Wenn Du mit mehreren Checkboxen arbeitest, kannst Du den Zustand jeder Checkbox abfragen und entsprechende Aktionen ausführen. Hier ein Beispiel:

Public Sub CheckboxHandler()
    Dim checkbox As String
    checkbox = Application.Caller

    If ActiveSheet.Shapes(checkbox).ControlFormat.Value = 1 Then
        MsgBox "Checkbox " & checkbox & " ist aktiviert."
    Else
        MsgBox "Checkbox " & checkbox & " ist deaktiviert."
    End If
End Sub

Tipps für Profis

  • Fehlerbehandlung: Implementiere eine robuste Fehlerbehandlung, wie im Beispiel gezeigt, um unerwartete Fehler abzufangen.
  • Code kommentieren: Kommentiere Deinen Code, um die Wartbarkeit und das Verständnis zu verbessern.
  • Debugging: Nutze Debug.Print oder MsgBox, um den Zustand von Variablen während der Ausführung zu überprüfen.

FAQ: Häufige Fragen

1. Was ist Application.Caller?
Application.Caller ist eine VBA-Funktion, die den Namen des Objekts zurückgibt, das ein Makro aufruft, z.B. eine Checkbox oder Schaltfläche.

2. Warum erhalte ich einen Fehler bei Application.Caller?
Ein Fehler kann auftreten, wenn das Makro nicht über das zugehörige Steuerelement aufgerufen wird. Stelle sicher, dass das Makro korrekt zugewiesen ist und vom richtigen Element gestartet wird.

3. Welche Excel-Version benötige ich für Application.Caller?
Application.Caller ist in Excel VBA seit vielen Versionen verfügbar, einschließlich Excel 2010 und neuer.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige