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

funktion arbeitsmeppenüberghreifend ausführen

funktion arbeitsmeppenüberghreifend ausführen
26.07.2006 14:41:41
Swen
Hallo an alle,
folgenden code verwende ich
call Workbooks("Funktion.xls").ModulFunktion.Worksheet_suchen
was ich möchte ist das die Funktion aus der Arbeitsmappe Funktion.xls
die heißt "Worksheet_suchen" und sich in dem Modul "ModulFunktion" befindet
ausgeführt wird.
In einer anderen Arbeitsmappe ausgeführt wird. Neme z.B. "Start.xls"
die Funktion sieh wie folgt aus:

Function Worksheet_suchen(strSearch As String) As Boolean
'*** Such Funktion mit der man eine Arbeitmappe nach einem Worksheet durch suchen kann ***'
Dim wrsWorksheet As Worksheet
For Each wrsWorksheet In Worksheets
If wrsWorksheet.Name = strSearch Then
Worksheet_suchen = True
Exit For
Else
Worksheet_suchen = False
End If
Next
End Function

Gruß
Swen

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: funktion arbeitsmeppenüberghreifend ausführen
26.07.2006 14:44:14
Matthias
Hallo Swen,
guck mal in der VBA-Hilfe unter Application.Run, da steht alles drin.
Gruß Matthias
AW: funktion arbeitsmeppenüberghreifend ausführen
26.07.2006 14:59:22
Swen
Hallo Matthias,
einege Sachen verstehe ich noch nicht ganz,
Was ich wollte ist das ich eine Arbeitsmappe habe in der ein Modul ist das
"ModulFunktion" heißt und dieses beinhaltet alle Funktionen die ich
für weitere Arbeitsmappen benutze. Wenn ich nun eine Arbeitsmappe öffne soll nicht jede einzelne Arbeitsmappe ein Modul mit den Function haben sondern auf die Arbeitsmappe "Funktion" und deren MOdul zurück greifen können!
Gruß
Swen
AW: funktion arbeitsmeppenüberghreifend ausführen
26.07.2006 15:01:26
Swen
Hallo Matthias,
so sieht das workbook aus welches auf die Funktionen zugreifen möchte,

Private Sub Workbook_Open()
Dim strTempText As String
strTempText = ThisWorkbook.Path & "\prog\Funktion.xls"
Workbooks.Open Filename:=strTempText
' *** Public Variabeln werden auf Standard gesetzt ***'
ModulVarDek.Std_Werte_einlesen
' *** das start worksheet erstellen und angezeigt ***'
Application.ScreenUpdating = False
If Workbooks("Funktion.xls").ModulFunktion.Worksheet_suchen("Start") = False Then
ModulStartTabelleErstellen.Start_Tab_Erstellen
Else
Worksheets("Start").Visible = True
Application.DisplayAlerts = False
Worksheets("Start").Delete
ModulStartTabelleErstellen.Start_Tab_Erstellen
End If
Application.ScreenUpdating = True
' *** Fenster zur Legitimation wird geöffnet ***'
Application.ScreenUpdating = True
UF_Ligitimation.Show
End Sub

Gruß
Swen
Anzeige
AW: funktion arbeitsmeppenüberghreifend ausführen
26.07.2006 15:04:59
Matthias
Hallo Swen,
in welchem Modul die Fuinktion steht, ist egal - es muss aber ein allgemeines (Modul1,..) sein und es darf nicht als Private deklariert sein.
Der Aufruf geht dann so
a = Application.Run("'Arbeitmappenname.xls'!Funktionsname", Arg1, Arg2 [,...])
Gruß Matthias
AW: funktion arbeitsmeppenüberghreifend ausführen
26.07.2006 15:07:50
Swen
Hallo Matthias,
wie würde es für diesen Fall aussehen und
If Workbooks("Funktion.xls").ModulFunktion.Worksheet_suchen("Start") = False Then
und muß die arbeitsmappe geöffnet sein? oder kann man einen Pfad angeben?
Wenn sie göffnet sein muß kann ich sie dann ausblenden so das man sie in windows nicht sieht?
Gruß
Swen
Anzeige
AW: funktion arbeitsmeppenüberghreifend ausführen
26.07.2006 15:16:58
Matthias
Hallo Swen,

If Application.Run("Funktion.xls!Worksheet_suchen", "Start") = False Then

und muß die arbeitsmappe geöffnet sein?
Ja.
oder kann man einen Pfad angeben?
Nein.
Wenn sie göffnet sein muß kann ich sie dann ausblenden so das man sie in windows nicht sieht?
Ja, z.B. indem du es als Add-In speicherst und installierst. Der Aufruf ist dann entsprechend, die Endung muss aber in .xla geändert werden.
Gruß Matthias
AW: funktion arbeitsmeppenüberghreifend ausführen
26.07.2006 15:32:14
Swen
Hallo Matthias,
vielen Dank für die hilfreichen Informationen eine Sache hätte ich aber gerne noch gewust kann man das add-in über vba in workbook open installieren und wenn man das workbook wieder schließt auch weider deinstallieren?
Kannst du mir bitte ein Beispiel hierfür zeigen?
(das add-in liegt in dem gleichen Pfad wie die DAtei die das Add In öfnnen soll / ThisWorkbook.Path)
Vielen Dank!
Gruß
Swen
Anzeige
AW: funktion arbeitsmeppenüberghreifend ausführen
26.07.2006 15:45:40
Matthias
Hallo Swen,
kann man das add-in über vba in workbook open installieren und wenn man das workbook wieder schließt auch weider deinstallieren?
In diesem Fall würde ich es nicht als Add-In speichern, sondern wieder normal als .xls-Datei. Der Code für die Mappe, die die Funktion.xls automatisch laden soll:
In 'DieseArbeitsmappe':



Option Explicit
Const AddIn_Name = "funktion.xls"
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Workbooks(AddIn_Name).Close False 'Änderungen verden verworfen!
End Sub
Private Sub Workbook_Open()
Dim wb As Workbook
On Error GoTo errhandler
Set wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & AddIn_Name)
With wb
.IsAddin = True 'Fenster wird damit ausgeblendet
.Saved = True
End With
Exit Sub
errhandler:
MsgBox "Fehler: " & Err.Description, vbCritical, "Fehler Nr. " & Err.Number
End Sub

Anzeige
AW: funktion arbeitsmeppenüberghreifend ausführen
26.07.2006 15:50:14
Swen
Vielen Dank!
ich melde mich nochmal wenn ich das alles eingebaut habe!
Gruß
Swen

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige