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

Forumthread: Funktion in einer anderen Datei aufrufen

Funktion in einer anderen Datei aufrufen
26.06.2008 11:42:40
John
Hallo Zusammen,
folgendes möchte ich mit VBA abbilden....:
Ich habe 2 Dateien geöffnet und schreibe in Datei 1 etwas mit einem Auslöser aus Datei 2.
BSP:

'Auslöser
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Aktion As String
Aktion = "Datei Schliessen"
Call SecInfoSchreiben(Aktion)
End Sub


Jetzt könnte ich natürlich in eine feste Zelle in Datei 1 schreiben - ich möchte aber lieber die Funktion "SecInfoSchreiben(Aktion) in Datei 1 ansprechen, da ich dort dann zentral die Stelle definiere, wo ich hinschreiben möchte und welche weiteren Informationen geschrieben werden sollen.
Geht das überhaupt? Kann ich eine VBA-Function von ausserhalb der Datei aus einem anderen Excel-Blatt überhaupt ansprechen?

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funktion in einer anderen Datei aufrufen
26.06.2008 11:52:00
Rudi
Hallo,
siehe Application.Run
Gruß
Rudi

AW: Funktion in einer anderen Datei aufrufen
26.06.2008 11:53:10
UweD
Hallo
müßte so klappen (ungeprüft)
Application.Run "Mappe2.XLS!SecInfoSchreiben(Aktion)"
Gruß UweD
(Rückmeldung wäre schön)

AW: Funktion in einer anderen Datei aufrufen
26.06.2008 12:10:20
John
Vielen Dank Euch erstmal,
ich habe jetzt also mal die Hilfe angeschaut und daraus folgenes Makro generiert:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Aktion As String
Aktion = "Speichern"
Call Application.Run("Test-Excel - Diagramme reverse.xls!SecInfoSchreiben", Aktion)
End Sub


Nur findet er die Funktion nicht, obwohl sie definitiv da ist.

Anzeige
AW: Funktion in einer anderen Datei aufrufen
26.06.2008 12:22:08
Rudi
Hallo,
Dateinamen in ' einschließen!
Gruß
Rudi

AW: Funktion in einer anderen Datei aufrufen
26.06.2008 14:02:00
John
So habe - den Code jetzt angepasst und es funktioniert.

Call Application.Run("'Test-Excel - Diagramme reverse.xls'!SecInfoSchreiben", Aktion)


Tausend Dank!

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Funktion in einer anderen Datei aufrufen


Schritt-für-Schritt-Anleitung

Um eine Funktion in einer anderen Excel-Datei mit VBA aufzurufen, kannst Du die Methode Application.Run verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne beide Excel-Dateien.

  2. Füge den Auslöser in die Datei ein, von der aus Du die Funktion aufrufen möchtest. Zum Beispiel in das Workbook_BeforeSave-Ereignis:

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        Dim Aktion As String
        Aktion = "Speichern"
        Call Application.Run("'Test-Excel - Diagramme reverse.xls'!SecInfoSchreiben", Aktion)
    End Sub
  3. Stelle sicher, dass der Dateiname korrekt in einfache Anführungszeichen eingeschlossen ist. Dies ist wichtig, um Fehler zu vermeiden.


Häufige Fehler und Lösungen

  • Fehler: Funktion nicht gefunden

    • Lösung: Überprüfe, ob der Funktionsname und der Dateiname korrekt geschrieben sind. Achte darauf, die Datei in einfache Anführungszeichen zu setzen.
  • Fehler: Anwendung reagiert nicht

    • Lösung: Stelle sicher, dass die Ziel-Datei geöffnet ist und nicht schreibgeschützt ist.

Alternative Methoden

Neben der Verwendung von Application.Run gibt es auch andere Möglichkeiten, wie Du eine Excel VBA Funktion aufrufen kannst:

  • Direktes Referenzieren: Wenn Du Zugriff auf die andere Datei hast, kannst Du auch die Objektvariablen verwenden, um direkt auf die Funktionen zuzugreifen.

    Dim wb As Workbook
    Set wb = Workbooks("Test-Excel - Diagramme reverse.xls")
    wb.Application.Run "SecInfoSchreiben", Aktion
  • Python-Funktion aus anderer Datei aufrufen: Wenn Du mit Python arbeitest, kannst Du Bibliotheken wie openpyxl oder pandas verwenden, um Excel-Funktionen aus einer anderen Datei aufzurufen.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du eine Funktion in einer anderen Datei aufrufen kannst:

  1. Funktion in der Ziel-Datei:

    Public Sub SecInfoSchreiben(Aktion As String)
        ' Hier wird die Aktion verarbeitet
        MsgBox "Aktion: " & Aktion
    End Sub
  2. VBA-Code in der Quell-Datei:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Dim Aktion As String
        Aktion = "Datei Schliessen"
        Call Application.Run("'Test-Excel - Diagramme reverse.xls'!SecInfoSchreiben", Aktion)
    End Sub

Tipps für Profis

  • Verwende Fehlerbehandlung: Implementiere On Error-Anweisungen, um sicherzustellen, dass Dein Code robust ist und nicht abstürzt, wenn eine Datei nicht gefunden wird.

  • Dokumentation: Dokumentiere Deinen Code gut, besonders wenn Du mehrere Dateien und Funktionen miteinander verknüpfst. Das erleichtert die Wartung.

  • Performance: Reduziere die Anzahl der Funktionsaufrufe, um die Performance zu verbessern. Dies ist besonders wichtig, wenn Du große Datenmengen verarbeiten musst.


FAQ: Häufige Fragen

1. Wie kann ich eine Excel VBA Funktion aufrufen, die in einer geschützten Datei liegt?
Du musst die Datei zuerst entsperren, bevor Du die Funktion aufrufen kannst.

2. Kann ich eine Funktion aus einer anderen Excel-Version aufrufen?
Ja, solange die Datei geöffnet ist und die Funktion verfügbar ist. Achte auf Kompatibilität.

3. Ist es möglich, eine Python-Funktion aus einer Excel-Datei aufzurufen?
Ja, das ist möglich, indem Du eine Excel-Python-Bibliothek verwendest, die es ermöglicht, Excel-Dateien zu manipulieren.

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