Anzeige
Archiv - Navigation
652to656
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
652to656
652to656
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formular aus einer anderen Arbeitsmappe öffnen

Formular aus einer anderen Arbeitsmappe öffnen
16.08.2005 09:52:07
File
Hallo zusammen!
Wer kann mir sagen, wie ich ein Formular aus einer anderen Excel Datei aufrufen kann. Wäre schon, wenn man die Quellcode kurz erklärt.
Vielen Dank im Voraus.
Gruß
File

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formular aus einer anderen Arbeitsmappe öffnen
16.08.2005 10:05:01
Matthias
Hallo File,
schreibe dazu in ein Modul der Mappe, die das UF enthält:

Sub UFShow()
UserForm1.Show
End Sub

Und rufe diese Prozedur von der anderen Mappe aus so auf:

Sub form1()
Application.Run ("Mappe1.xls!UFShow") 'Dateinamen anpassen
End Sub

Gruß Matthias
AW: Formular aus einer anderen Arbeitsmappe öffnen
16.08.2005 10:55:49
File
Hi!
Ich habe das so eingebaut, jedoch bekomme ich die Fehlermeldung, dass die datei nicht gefunden werden kann. Sie liegt aber im gleichen Verzeichnis und ist mit absolutem Pfad angegeben. Excel öffnet sich auch im Hintergrund, trotzdem die Fehlermeldung. Klickt man die Meldung weg, erscheint "Makros sind deaktiviert".
Was kann ich tun?
Gruß
File
Anzeige
AW: Formular aus einer anderen Arbeitsmappe öffnen
16.08.2005 10:58:22
Matthias
Hallo File,
die Mappe muss dazu schon geöffnet sein.
Gruß Matthias
AW: Formular aus einer anderen Arbeitsmappe öffnen
16.08.2005 11:04:23
File
Hi Matthias!
Gibt es da keine andere Lösung, weil ich die datei eiegentlich erst öffnen möchte, wenn sie wirklich von Nöten ist. Hintergrund ist der, ich habe eine Citrix Umgebung, in der die Datei geöffnet wird. Wenn ich zwei dateien gleichzeitig öffne, nimmt das natürlich wesentlich mer Performance.
Wäre schön, wenn Du eine andere Lösung parat hast.
Gruß
Frank
AW: Formular aus einer anderen Arbeitsmappe öffnen
16.08.2005 11:10:20
Matthias
Hallo Frank,
so wird die Datei bei Bedarf geöffnet:

Sub ZeigeFremdesUserForm()
Const Dateiname = "Mappe1.xls"
'Bei Bedarf öffnen
If Not WBIsOpen(Dateiname) Then
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & Dateiname
End If
Application.Run (Dateiname & "!UFShow") 'Dateinamen anpassen
End Sub
Function WBIsOpen(ByVal n As String) As Boolean
Dim wb As Workbook
For Each wb In Workbooks
If UCase(wb.Name) = UCase(n) Then
WBIsOpen = True
Exit Function
End If
Next wb
WBIsOpen = False
End Function

Gruß Matthias
Anzeige
AW: Formular aus einer anderen Arbeitsmappe öffnen
16.08.2005 11:20:48
File
Hi Matthias!
Kurze Frage noch. Das baue ich nur in der ExcelDatei ein, die die andere Mappe aufrufen soll, richtig?
Gruß
Frank
AW: Formular aus einer anderen Arbeitsmappe öffnen
16.08.2005 11:24:40
Matthias
Hallo Frank,
ja, genau. Und die Mappe mit der Userform braucht in einem Modul den Code

Sub UFShow()
Userform1.Show
End Sub

Gruß Matthias
AW: Formular aus einer anderen Arbeitsmappe öffnen
16.08.2005 11:28:48
File
Hi Matthias!
OK, vielen Dank erst einmal für Deine Hilfe. ich werde es gleich ausprobieren und melde mich dann wieder.
Gruß
Frank
AW: Formular aus einer anderen Arbeitsmappe öffnen
17.08.2005 13:31:16
File
Hi Matthias!
Super, funktioniert. Aber wie mache ich es, wenn ich nun ein anderes Arbeitsblatt aktivieren möchte, z.B. Blatt1.Activate. Muss ich da auch wieder eine eigene Funktion für haben und wenn ja, wei sieht das dann aus?
Wäre nett, wenn Du mir das noch mal zeigen könntest.
Gruß
Frank
Anzeige
AW: Formular aus einer anderen Arbeitsmappe öffnen
17.08.2005 15:44:43
File
Hi Matthias!
Ich habe noch eine Frage. Wenn ich die geöffnete Arbeitsmappe wieder schließen möchte, ist das Application.Quit das Richtige oder gibt es einen besseren Weg. Ich möchte zum Ausgangsdokument zurück in das Formular, von dem ich die zweite Seite aufgerufen habe, soll wieder angezeigt werden.
Dank für Deiner Hilfe im Voraus.
Gruß
Frank
AW: Formular aus einer anderen Arbeitsmappe öffnen
17.08.2005 22:50:26
Matthias
Hallo Frank,
so, neue Version: Die b.B. geöffnete Mappe wird gar nicht angezeigt und, falls sie geöffnet werden musste, wieder geschlossen.
VORSICHT: Falls in der Userform mit ActiveWorkbook gearbeitet wird, ist hier dann die aufrufende Mappe die aktive (ThisWorkbook.Activate)!
Ändere das SaveChanges:=False auf True, wenn die geöffnete Mappe Änderungen bei sich selbst macht, die gespeichert werden sollen.
Der Code:

Option Explicit
Sub ZeigeFremdesUserForm()
Const Dateiname = "Extern.xls"
Dim wurde_geöffnet As Boolean
'Bei Bedarf öffnen
If Not WBIsOpen(Dateiname) Then
Application.ScreenUpdating = False
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & Dateiname
wurde_geöffnet = True
ThisWorkbook.Activate
Application.ScreenUpdating = True
End If
'Userform aus Fremdmappe zeigen
Application.Run (Dateiname & "!UFShow") 'Dateinamen anpassen
'Mappe wieder schließen
If wurde_geöffnet Then
Workbooks(Dateiname).Close SaveChanges:=False 'oder True, je nach Wunsch
End If
End Sub
Function WBIsOpen(ByVal n As String) As Boolean
Dim wb As Workbook
For Each wb In Workbooks
If UCase(wb.Name) = UCase(n) Then
WBIsOpen = True
Exit Function
End If
Next wb
WBIsOpen = False
End Function

Gruß Matthias
Anzeige
AW: Formular aus einer anderen Arbeitsmappe öffnen
18.08.2005 09:36:17
File
Hallo Matthias!
Ich möchte die Mappe schließen, wenn ich auf einen bestimmten Command-Button drücke. Wie geht das dann?
Ich arbeite also auf der Ursprungsmappe, klicke auf einen Button und die neue Datei wird geöffnet und aktiviert. Wenn ich in der neuen Mappe alles erledigt habe, klicke ich auf zurüc, und die alte Ursprungsmappe wird wieder angezeigt und aktiviert. So soll die Vorgehensweise sein.
Ich vermute mal, dann geht das noch ein bißchen anderes, oder?
Gruß
Frank
AW: Formular aus einer anderen Arbeitsmappe öffnen
18.08.2005 18:10:25
Matthias
Hallo Frank,
mein Code funktioniert so, dass, wenn die Userform der Fremdmappe wieder geschlossen wird (z.B. durch Klick auf einen Button), diese Mappe ebenfalls wieder geöffnet wird (falls sie extra geöffnet wurde). Wo willst du denn den Button haben? Etwa nicht im Userform?
Gruß Matthias
Anzeige
AW: Formular aus einer anderen Arbeitsmappe öffnen
19.08.2005 08:18:46
File
Hallo Matthias!
Doch, der Button soll im Userform der neu geöffneten Datei angezeigt werden, quasi ein Zurückknopf. Wenn ich da drauf drücke, muss das Dokument geschlossen werden und das alte wieder so angezeigt werden ,wie zuvor.
Solltest Du Dir die Frage stellen, warum ich das nicht alles in einem Dokument mache, kann ich Dir sagen, so war es bislang. Ich muss die Datei jedoch jetzt aufteilen, weil sie so viele speziell formatierte Berichte enthält, dass Excel in Bezug auf die Zellformate nur noch Fehlermeldungen ausgibt. Hier wurde mir von Microsoft gesagt, dass Excel max. 4000 Zellformate pro Excel-Datei verwalten kann. Danach ist Schluß. Somit habe ich nur die Möglichkeit, die Datei aufzusplitten, denn es werden noch mehrere Berichte folgen.
Ich habe also ein kleines Frontend gebaut, was die ganzen Berichte über UserForms anzeigen kann.
Bislang war das somit kein Problem, über den Zurück-Knopf das userform zu schließen und in ein anderes Userform zurückzuspringen. Wie gesagt, jetzt ist das für mich ein Problem.
Vielleicht gibt es ja eine Lösung von Deiner Seite.
Gruß
Frank
PS: Ich bin ab heute für eine Woche im Urlaub, wenn Du mir antwortest, werde ich erst am dem 29.08.05 wieder testen können. Trotzdem schon einmal vielen Dank für Deine Hilfe.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige