Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1040to1044
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
Exceldatei mit Userform in eigener Instanz
20.01.2009 14:54:25
chris
Hallo VBA experten,
ich habe ein Problem und eine frage gleichzeitig.
Ich habe eine Datei erstellt mit einer Userform.
Ich möchte nun das diese Exceldatei in einer eigenen Instanz von Excel geöffnet wird.
Deshallb verwende ich eine Extra Datei.Ich habe also zwei dateien.
Die eine in der Sich die userform befindet und in der anderen nur dieser Code zum öffnen.
'Mein Code zum öffnen der Userform datei.
Option Explicit
Dim xlAnw

Private Sub Workbook_Open()
Set xlAnw = CreateObject("Excel.Application") 'neue Instanz von Excel erstellen
xlAnw.Workbooks.Open ("c:\test.xls") ' Auswertungsdatei in neuer Instanz von Excel starten
ThisWorkbook.Close False
End Sub


In dem oben gezeigten Code wird eine neue INstanz von Excel erzeugt und in dieser wird meine "Userform Datei" geöffnet.
Dann soll bzw wird die öffner datei wieder geschlossen.(aber nicht ganz irgendwie.
Kann mir jemand sagen wie ich das hinbekomme so das die "userform datei" geöffnet wird und ich dann nur noch die userform auf dem bildschirm habe und
wenn ich auf den Button beenden auf der userform klicke das dann diese "neue" INstanz von Excel geschlossen wird ?
ich hoffe ich konnte es einigermaßen erklären was ich wollte.
Dafür vielen dank im vorraus für eure Hilfe.
Sollten noch fragen offen sein hoffe ich das ich diese noch erklären kann.
Vielen dank gruß Chris

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Exceldatei mit Userform in eigener Instanz
20.01.2009 15:02:00
Tino
Hallo,
versuch es mal mit
Application.Quit
Gruß Tino
AW: benötige Hilfe Tipp unbrauchbar
20.01.2009 15:07:00
chris
Danke. Aber nein bringt nichts.Es wird nur das excel beendet das aktuell geöffnet ist.
Aber nicht die neue Instanz.
Bitte um erneute Hilfe ! (frage lesen)
vielen Dank
?
20.01.2009 15:10:57
Tino
Hallo,
wie,
Du öffnest Doch die Userform mit der neuen Instanz und
möchtest die Userform sichtbar lassen.
Gruß Tino
AW: Exceldatei mit Userform in eigener Instanz
20.01.2009 15:07:00
Heinz
Hi,
"...Dann soll bzw wird die öffner datei wieder geschlossen.(aber nicht ganz irgendwie...."
Muss man das verstehen?
mfg Heinz
AW: Exceldatei mit Userform in eigener Instanz
20.01.2009 15:56:00
chris
Hi,
"...Dann soll bzw wird die öffner datei wieder geschlossen.(aber nicht ganz irgendwie...."
Muss man das verstehen?
Hallo das meinte ich so.
Es ist dann Excel nicht sichtbar aber im Taskmanager ist Excel.exe noch offen.
"aber nicht ganz irgendwie...."
Weil ja die Excel.exe nicht ganz geschlossen wird.Weil noch offen im Taskmanager.
Anzeige
AW: Exceldatei mit Userform in eigener Instanz
20.01.2009 16:09:00
Heinz
Hi,
wenn im Taskmanager einmal Excel.exe steht ist es doch ok, du hast ja inzwischen
eine neue Instanz erstellt, wobei mir schleierhaft ist, was du damit erreichen willst.
mfg Heinz
AW: Exceldatei mit Userform in eigener Instanz
20.01.2009 16:21:59
Nepumuk
Hallo Heinz,
Hintergrund ist wohl der, dass damit die Makros garantiert aktiviert werden und möglicherweise die "Userformmappe" per Kennwort geschützt ist. Ich mach das auch so, allerdings mit mit Excel sondern VB6.0 bzw. VB.Net.
Gruß
Nepumuk
AW: Exceldatei mit Userform in eigener Instanz
20.01.2009 16:42:16
Heinz
Hi,
das bedingt doch aber, dass schon bei der ersten Instanz die Makros aktiviert werden müssen.
Dann doch besser gleich per Exe.
mfg Heinz
Anzeige
AW: Exceldatei mit Userform in eigener Instanz
20.01.2009 16:48:58
Nepumuk
Hallo Heinz,
na wenn man keine geeignete Software hat um eine exe zu erstellen, dann muss man sich hat so behelfen. Wobei du schon Recht hast, er kann die andere Mappe natürlich in der selben Application öffnen.
Gruß
Nepumuk
AW: Exceldatei mit Userform in eigener Instanz
20.01.2009 18:52:00
chris
Hallo Ihr beiden.
Ihr habt mich glaube ich nicht ganz verstanden.
Aber verstehe ich auch.Habe es vielleicht etwas undurchschaubar erklärt.
Ich versuche es noch einmal weil mir das ganze doch sehr wichtig ist.
Was ich momentan habe ist eine Exceldatei mit einer Userform.
Der Benutzer dieser datei sieht nur die Userform weil schon beim Workbook open die Mappe ausgeblendet wird und die Userform angezeigt wird.
Was ich mir aber wünsche und es nicht hinbekomme ist das der User nichts von Excel mitbekommt.
Das würde auch funktionieren wenn ich beim Start der Datei application.visible = false mache.
Das geht aber auch nicht weil ja der Benutzer evtl. andere ExcelDateien offen hat die er auch benötigt.
Deshalb habe ich versucht für meine Datei iin der die Userform ist eine zweite datei zu erstellen die die Userform Datei in einer neuen Instanz öffnet und ich somit dann auch application.visible = false machen kann ohne das andere evtl. geöffnete dateien ausgeblendet werden.
Hajo oder Heinz könnt ihr mir vielleicht doch noch weiter helfen ?
Würde mich sehr freuen.
Visual Basic habe ich leider nicht deshalb muss ich es in excel hinbekommen.
Danke trotzdem vielmals schon im vorraus !!
gruß Chris
Anzeige
AW: Exceldatei mit Userform in eigener Instanz
20.01.2009 19:09:00
Tino
Hallo,
b in jetzt nicht Heinz oder Hajo,
mit Application.Quit, schließt Du die komplette Excel- Instant
Die Excel wo Deine Userform gestartet werden soll, muss ja offen bleiben.
Application.Quit schließ das Excel die die Excel mit der Userform aufruft.
Also müsste es so in etwa gehen.

'in der ersten Datei
On Error GoTo error
Dim myXL_Application As Object
Set myXL_Application = CreateObject(Class:="Excel.Application")
myXL_Application.Workbooks.Open "J:\1 Forum\U2.xls"
myXL_Application.WindowState = xlMaximized
myXL_Application.Visible = False
Set myXL_Application = Nothing
error:
If Workbooks.Count = 1 Then
Application.Quit
Else
ThisWorkbook.Close False
end if


Das Problem dabei ist, wenn in dem zweiten Excel eine Userform direkt gestartet wird, kommt keine Rückgabe dass diese gestartet ist und der Code in der ersten läuft nicht weiter.
(getestet unter xl2007)
Also müsste man in der zweiten,
ein …OnTime einbauen, der die Userform erst nach einer Sekunde startet.
Gruß Tino

Anzeige
AW: Exceldatei mit Userform in eigener Instanz
20.01.2009 21:19:57
chris
Wow hallo Tino,
erst einmal vielen Dank !!!
Aber kann erst morgen testen.
Danke und schönen Abend !
AW: Exceldatei mit Userform in eigener Instanz
21.01.2009 08:18:00
chris
Hallo Tino Hallo Hajo,
ich habe es gerade gestestet was Tino mir gepostet hat.
Habe eine Datei mit diesen Makros.
'Code1 in einem Modul.
Option Explicit
Dim myXL_Application As Object
Dim anz

Private Sub Workbook_Open_aus()
On Error GoTo error
Set myXL_Application = CreateObject(Class:="Excel.Application")
myXL_Application.Workbooks.Open "c:\testUserformdatei.xls" ' Auswertungsdatei in neuer Instanz  _
von Excel starten
myXL_Application.WindowState = xlMaximized
myXL_Application.Visible = False
Set myXL_Application = Nothing
error:
anz = zaehle_wb
If Workbooks.Count - anz - 1 


'Code2 in einem Modul.
Option Explicit


Public Function zaehle_wb()
Dim wb As Workbook
Dim InI As Integer
For Each wb In Application.Workbooks
If Application.Windows(wb.Name).Visible = False Then InI = InI + 1
Next
'MsgBox "von " & Workbooks.Count & " sind " & InI & " ausgeblendet"
zaehle_wb = InI
End Function


es klappt auch alles wunderbar bis auf eines.
Ich starte die erster datei mit den Makros.
diese öffnet mir dann diese Excel Datei (c:\testUserformdatei.xls)
Diese wird ausgeblendet so das nur noch die userform zu sehen ist.
Das ist auch richtig so nur ein problem habe ich jetzt.
Wenn ich auf der userform auf den Button "beenden" klicke wird folgender code ausgeführt.


Private Sub btn_programm_close_Click() 'file close save data
Application.Quit
End Sub


Danach ist die userform geschlossen.und auch kein Excel mehr zu sehen.
Wenn ich aber in den Taskmanager gehe sehe ich dort.
Excel.exe was mir ja sagt das Excel irgendwo noch geöffnet ist.
Wie kann ich das verhindern.Also wie erreiche ich das auch dort das Excel geschlossen ist ?
Vielen dank noch einmal an euch !
gruß Chris

Anzeige
AW: Exceldatei mit Userform in eigener Instanz
21.01.2009 08:45:39
Tino
Hallo,
ich habe es bei mir jetzt mal so getestet unter xl2007.
In der Startdatei:

Private Sub Workbook_Open()
On Error GoTo error
Dim myXL_Application As Object
Set myXL_Application = CreateObject(Class:="Excel.Application")
myXL_Application.WindowState = xlMaximized
myXL_Application.Visible = False
myXL_Application.Workbooks.Open "J:\1 Forum\U2.xls"
error:
ThisWorkbook.Saved = True
If Workbooks.Count = 1 Then
Application.Quit
Else
ThisWorkbook.Close False
End If
End Sub


In der Datei mit der Userform: ************************
'In DieseArbeitsmappe


Private Sub Workbook_Open()
Application.OnTime Now + TimeValue("00:00:01"), "StartU2"
End Sub


'In einem Modul


Sub StartU2()
UserForm1.Show
End Sub


'beenden Button auf Userform


Private Sub CommandButton1_Click()
ThisWorkbook.Saved = True
Application.Quit
End Sub


Gruß Tino

Anzeige
AW: Exceldatei mit Userform in eigener Instanz
21.01.2009 09:45:00
chris
hallo Tino,
habs nicht gesehen.
Habe den code.

Private Sub Workbook_Open()
On Error GoTo error
Dim myXL_Application As Object
Set myXL_Application = CreateObject(Class:="Excel.Application")
myXL_Application.WindowState = xlMaximized
myXL_Application.Visible = False
myXL_Application.Workbooks.Open "J:\1 Forum\U2.xls"
error:
ThisWorkbook.Saved = True
If Workbooks.Count = 1 Then
Application.Quit
Else
ThisWorkbook.Close False
End If
End Sub


Und schaut wunderbar aus !!
Wenn es noch was gibt melde ich mich.
Aber erst einmal super vielen Dank !!
Schönen tag noch !!
gruß Chris

Anzeige
noch einfacher...
20.01.2009 19:28:00
Tino
Hallo,
am einfachsten für Dich wäre, Du lässt Deine Excel durch ein VBS- Script starten.
Textdatei erstellen
Diesen Code rein:

Dim myXL_Application
Set myXL_Application = CreateObject("Excel.Application")
myXL_Application.Visible = False
myXL_Application.Workbooks.Open "J:\1 Forum\U2.xls"


Textdatei umbenennen in *.vbs
Natürlich must Du auf Deinen System Script Dateien ausführen können.
Auf manschen Systemen ist dies aus Sicherheitsgründen geblockt.
Gruß Tino

AW: noch einfacher...
20.01.2009 21:21:15
chris
Hmm Danke Tino.
Das ist ne gute idee.Da könnte ich mir doch auch mit VB6 ne kleine Exe basteln oder ?
Danke werde ich morgen alles mal versuchen.Schaut beides super aus !!!
Danke gruß Chris
Anzeige
AW: noch einfacher...
21.01.2009 08:25:00
Tino
Hallo,
natürlich wenn Du VB hast, ist dass noch besser.
Was eben noch offen ist, was ist mit der Makrosicherheit,
eventuell könntest Du es über digitale Signaturen machen.
Wenn die Sicherheitsstufe zu hoch eingestellt ist, kommst Du damit aber auch nicht weit.
Um ganz auf der Sicheren Seite zu sein,
müsstest Du dein Tool oder Programm komplett in VB erstellen.
Gruß Tino
AW: noch einfacher...
21.01.2009 08:34:00
chris
Hallo Tino,
Danke für deine Antwort.
Ich glaube aber ich habe es jetzt schon fast geschafft wie ich es brauche mit eurer Hilfe.
Nur eben das was ich im letzten Beitrag heute morgen geschrieben habe ist noch ein Problem.
Könntest du mir auch da noch helfen oder Hajo eben ?
Danke vielmals hat mir wirklich schon sehr geholfen.
Gruß Chris
Anzeige
Info
21.01.2009 08:47:00
Tino
Hallo,
nur zur Info Hajo hat hier noch nichts geschrieben, Du verwechselst da einen Namen.
Gruß Tino
AW: Danke, aber frage weiter offen
21.01.2009 09:17:34
chris
Ups,
danke für den Hinweiß !!!
Nepumuk meinte ich statt Hajo sorry !
Kannst du mir noch helfen bei meinem Problem Tino ?
Ich habe gerade noch etwas komisches gemerkt.
Habe versucht eine ganz normale datei zu erstellen mit einer userform.
Und auf diese userform nur einen Mutten und darunter Application.quit als ereigniss.
Dann wird excel komplett geschlossen und es bleibt auch nichts offen im Taskmanager.
was könnte das sein oder woran könnte das an meiner ich nenne Sie einfach mal "Hauptdatei" liegen ?
leider ist es mir nicht möglich diese Hochzuladen.
Über eine Antwort würde ich mich sehr freuen.
Danke
gruß Chris
AW: Exceldatei mit Userform in eigener Instanz
20.01.2009 16:09:16
Nepumuk
Hi,
hat sich das immer noch nicht rumgesprochen?
Set xlAnw = Nothing
ThisWorkbook.Close SaveChanges:=False

Gruß
Nepumuk

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige