Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 11:16:26
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Prozedur in globale Funktion umwandeln

Prozedur in globale Funktion umwandeln
20.11.2012 09:56:32
Till
Hallo zusammen,
ich möchte gerne eine Prozedur in eine globale Funktion umwandeln, so dass ich diese in jedem beliebigen Modul verwenden kann, um nicht den Pfad immer neu ermitteln zu müssen.
Geht das überhaupt?
Was ich habe ist folgendes:

  • Option Explicit
    Public tPath As String
    ' das war ein erster Versuch der nichts brachte, da tPath außerhalb dieses Moduls natürlich "leer" war.
    Sub Auslesen()
    Dim WSHShell
    Set WSHShell = CreateObject("Wscript.Shell")
    Dim sPath As String
    'Jetbase
    sPath = WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App  _
    Paths\jetbasel.exe\")
    Dim i As Integer
    Dim si As Variant
    tPath = Left(sPath, Len(sPath) - 12) & "JEX\jex.txt"
    'MsgBox tPath
    End Sub
    


  • Was ich bewirken will ist, dass ich den Pfad zu "jex.txt" also "tPath" als globale Variable überall, also auch in den "benachbarten Modulen, verwenden möchte.
    Wie stelle ich das an? Geht das über eine globale Funktion?
    Ich hoffe, Ihr könnt mir hier weiterhelfen!
    Danke schon mal!
    Lb. Gruß
    Till

    Anzeige

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

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Prozedur in globale Funktion umwandeln
    20.11.2012 10:09:05
    ChrisL
    Hi Till
    tPath ist global deklariert und somit bereits jetzt überall verfügbar.
    Funktion würde in etwa (beispielhaft) so aussehen:
    Function Auslesen() As String
    Auslesen = "x"
    End Function
    

    Sub test()
    MsgBox Auslesen
    End Sub
    

    cu
    Chris

    Anzeige
    AW: Prozedur in globale Funktion umwandeln
    20.11.2012 10:10:18
    Till
    Danke... Deine Lösung ist in der Tat ein wenig eleganter.
    Gruß Till

    AW: Prozedur in globale Funktion umwandeln
    20.11.2012 10:09:09
    Till
    Hi,
    hab's (glaube ich) doch noch alleine hinbekommen:

  • Public sPath As String
    Function Pfad() As String
    Dim WSHShell
    Set WSHShell = CreateObject("Wscript.Shell")
    sPath = WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App  _
    Paths\jetbasel.exe\")
    Pfad = Left(sPath, Len(sPath) - 12) & "JEX\jex.txt"
    End Function
    

  • Oder geht das noch eleganter?
    Gruß Till

    Anzeige
    AW: Prozedur in globale Funktion umwandeln
    20.11.2012 10:10:34
    ChrisL
    Hi Till
    sPath musst du jetzt nicht mehr global deklarieren.
    Gruss
    Chris

    Eine Public Procedure ist in jedem Modul der ...
    20.11.2012 10:16:03
    Luc:-?
    Standort-Mappe verfügbar, Till,
    egal ob Subroutine oder Funktion (mal in der VBE-Hilfe nachlesen!). Eine beim Mappenstart oder per Button aufgerufene Prozedur zur Füllung einer globalen Public-Variablen, die nur 1x in einem allgemeinen Modul der Mappe deklariert wdn darf, füllt diese für eine ganze xlSitzung mit dieser Mappe, falls man nicht zwischendurch PgmVeränderungen, speziell an GlobalVariablen, vornimmt. Dadurch kann sie nämlich entladen wdn.
    Ansonsten dürfte es bei dem von dir Gezeigten nicht schwierig sein, daraus eine Fktsproz zu machen. Du brauchst im Kopf nur Public Function zu schreiben (aber Public Sub reicht sicher auch, falls du keinen Rückgabewert brauchst → ebenfalls nachlesen!).
    Gruß Luc :-?
    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

    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