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

Funktion - über Makro aufrufen

Forumthread: Funktion - über Makro aufrufen

Funktion - über Makro aufrufen
10.08.2003 12:52:40
Wolfgang
eine arbeitsmappe enthält auf modulebene eine benutzerdefinierte funktion:

Function Workday_Add(BegDate As Date, NumDays As Integer)
anstelle diese über den funktionsassistenten > benutzerdefiniert aufzurufen,
wollte ich eine schaltfläche mit einem makro belegen, der den funktions-
assistenten mit dieser funktion startet:

Sub Funktionsaufruf()
Call Workday_Add
End Sub

offensichtlich lassen sich funktionen nicht wie SUBs auf diese weise starten.
wie würde es funktionieren?
gruß
wolfgang
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funktion - über Makro aufrufen
10.08.2003 13:01:35
Klaus-Dieter
Hallo Wolfgang,
das geht überhaupt nicht. Mach ja auch keinen Sinn, da eine Funktion in der Tabelle eingebunden werden muß. Genau so wie das bei den Standardfunktionen der Fall ist.
Gruß Klaus-Dieter


AW: Funktion - über Makro aufrufen
10.08.2003 13:25:52
Hajo_Zi
Hallo Klaus Dieter
dem muß ich leider wiedersprechen, eine Funktion kann auch über ein Makro aufgerufen werden.
mal nur als Beispiel
Option Explicit

Function Datum(DaDatum As Date) As Date
Datum = Datum + 100
End Function


Sub Start()
MsgBox Datum("12.01.03")
End Sub

Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Zurzeit gibt es wieder Probleme mit der E-Mail Benachrichtigung.
Ich bekomme Mails zu Beiträgen an denen ich nicht beteiligt bin und zusätzlich noch Mails zu meinen eigenen Beiträgen. Das Problem mit den eigenen Benachrichtigung kann gelöst werden durch Lösche und Neuanmelden. Dieses möchte ich aber nicht jeden Tag machen.
Um dieses Problem erstmal zu beseitigen habe ich die automatische Mailbenachrichtigung abgeschaltet.
Aus diesem Grunde ist es dem Zufall überlassen ob auf Rückfragen Antworten von mir kommen.

Anzeige
AW: Funktion - über Makro aufrufen
11.08.2003 11:54:44
Herbert
Hallo Hajo,
also irgendwas stimmt da nicht, bei mir kommt der 09.04.1900 raus.
Herbert

AW: Funktion - über Makro aufrufen
11.08.2003 11:58:21
Hajo_Zi
Hallo Herbert
Danke für den Hinweis

Function Datum(DaDatum As Date) As Date
Datum = DaDatum + 100
End Function

Gruß Hajo

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Funktionen über Makros in Excel aufrufen


Schritt-für-Schritt-Anleitung

Um eine benutzerdefinierte Funktion in Excel über ein Makro aufzurufen, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Erstelle eine neue Funktion:

    • Füge einen neuen Modul hinzu, indem du im Projekt-Explorer mit der rechten Maustaste auf "VBAProject (deine Arbeitsmappe)" klickst und "Einfügen" > "Modul" wählst.
  3. Schreibe deine benutzerdefinierte Funktion:

    Function Workday_Add(BegDate As Date, NumDays As Integer) As Date
       Workday_Add = BegDate + NumDays ' Beispielhafte Berechnung
    End Function
  4. Erstelle ein Makro, um die Funktion aufzurufen:

    Sub Funktionsaufruf()
       Dim Ergebnis As Date
       Ergebnis = Workday_Add(Date, 5) ' Hier wird die Funktion aufgerufen
       MsgBox "Das neue Datum ist: " & Ergebnis
    End Sub
  5. Füge eine Schaltfläche hinzu:

    • Gehe zurück zu Excel und füge über "Entwicklertools" > "Einfügen" > "Button" eine Schaltfläche in dein Arbeitsblatt ein.
    • Weise das Makro Funktionsaufruf der Schaltfläche zu.
  6. Testen:

    • Klicke auf die Schaltfläche, um das Makro auszuführen und die Funktion zu testen.

Häufige Fehler und Lösungen

  • Fehler: "Komponente nicht gefunden": Stelle sicher, dass du die Funktion korrekt im Modul definiert hast und dass das Makro die richtige Funktion aufruft.

  • Fehler: "Typenkonflikt": Achte darauf, dass die Datentypen in den Funktionsparametern mit dem übereinstimmen, was du übergibst.

  • Lösung für Datum-Fehler: Wenn das falsche Datum zurückgegeben wird (z. B. 09.04.1900), überprüfe die Logik in deiner Funktion. Beispiel:

    Function Datum(DaDatum As Date) As Date
      Datum = DaDatum + 100 ' Korrekte Addition des Datums
    End Function

Alternative Methoden

Wenn du eine VBA-Funktion aufrufen möchtest, gibt es auch andere Möglichkeiten:

  • Direkter Aufruf in Zellen: Mit =Workday_Add(A1, 5) kannst du die Funktion direkt in eine Zelle eingeben, vorausgesetzt, die Funktion ist korrekt definiert.

  • Zellenreferenzen: Du kannst Zellen als Parameter an deine Funktion übergeben, um dynamische Berechnungen in Excel durchzuführen.


Praktische Beispiele

  1. Einfache Funktion:

    Function AddiereZahlen(Zahl1 As Double, Zahl2 As Double) As Double
       AddiereZahlen = Zahl1 + Zahl2
    End Function
  2. Aufruf über Makro:

    Sub BeispielAufruf()
       Dim Summe As Double
       Summe = AddiereZahlen(10, 20)
       MsgBox "Die Summe ist: " & Summe
    End Sub

Tipps für Profis

  • Verwende Public für Funktionen: Wenn du eine VBA Public Function aufrufen möchtest, stelle sicher, dass deine Funktion als Public deklariert ist, um sie in anderen Modulen zugänglich zu machen.

  • Fehlerbehandlung: Implementiere On Error-Anweisungen in deinem Code, um unerwartete Fehler abzufangen.

  • Schau dir die Excel-Objektbibliothek an: Vertraue dich mit den verschiedenen Excel-Objekten und deren Methoden an, um effektive VBA-Makros zu schreiben.


FAQ: Häufige Fragen

1. Kann ich VBA-Funktionen in anderen Excel-Dateien verwenden?
Ja, wenn die Datei geöffnet ist, kannst du auf die Funktionen zugreifen. Andernfalls musst du die Funktion in die Arbeitsmappe importieren.

2. Was ist der Unterschied zwischen einer Sub und einer Function in VBA?
Eine Sub führt eine Aktion aus, gibt aber keinen Wert zurück, während eine Function einen Wert zurückgibt, den du in Excel verwenden kannst.

3. Wie kann ich eine Funktion in einer Zelle aufrufen?
Du kannst die Funktion einfach in eine Zelle eingeben, wie jede andere Excel-Funktion, z. B. =Workday_Add(A1, 5), vorausgesetzt, die Funktion ist im VBA verfügbar.

4. Ist es möglich, Funktionen in Access zu verwenden?
Ja, du kannst auch in Access VBA-Funktionen definieren und aufrufen, aber die Syntax ist leicht unterschiedlich.

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