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

UserForm ohne sichtbare Mappe

Forumthread: UserForm ohne sichtbare Mappe

UserForm ohne sichtbare Mappe
14.02.2005 21:48:32
Mike
Hallo,
ich möchte, das wenn Arbeitsmappe "Statistik" geöffnet wird, eine
UserForm startet. Der Haken dabei ist, die Arbeitsmappe soll niergends
zu sehen sein. Nur die UserForm!
Machbar?
Gruß
Mike
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: UserForm ohne sichtbare Mappe
14.02.2005 21:58:10
Sigi
Hallo Mike,
öffne deine Mappe doch einfach ausgeblendet! Die UserForm rufst du über das
Workbook_Open-Ereignis auf.
Gruß
Sigi
AW: UserForm ohne sichtbare Mappe
15.02.2005 03:21:40
Mike
Hi Sigi,
funktioniert soweit ganz gut.
Würde aber gerne in diesem Fall erreichen,
das nur die UF sichtbar wird und Excel
komplett nicht zu sehen ist.
Auch nicht in der Task-Leiste.
Gruß
Mike
Anzeige
AW: UserForm ohne sichtbare Mappe
15.02.2005 08:11:06
Guido
Halli Mike,
füge in dein Workbook_Open am Ende noch "Application.Visible = False" ein.
Gruß
Guido
AW: UserForm ohne sichtbare Mappe
15.02.2005 09:59:16
Mike
Hallo,
der Ansatz ist gut, aber...
beim ersten öffnen der Mappe bleibt Excel
hinter der UF und in der Taskleiste noch
sichtbar. Schließe ich die UF, tritt erst
dann der Effekt ein, den ich gerne bereits
beim öffnen hätte(Excel ist nicht zu sehen,
Mappe ist aber noch offen).
Läßt sich da noch etwas machen?
Gruß
Mike
Anzeige
AW: UserForm ohne sichtbare Mappe
15.02.2005 10:55:23
Guido
Hallo Mike,
ehrlich gesagt verstehe ich noch nicht ganz, was du eigentlich willst: "Excel ist nicht zu sehen, Mappe ist aber noch offen" ???
Ich dachte du willst nur die Userform im Vordergrund und ansonsten alle Mappen und Excel in der Taskleiste ausgeblendet!
Dies erreiche ich bei mir, indem ich alle Tabellen außer einer (Tabelle1) verstecke, so dass beim Start von Excel ohne aktivierte Makros nur diese erste (leere) Tabelle1 mit dem Hinweis für den User erscheint, dass die Makros nicht aktiviert sind und das Programm somit nicht lauffähig ist. Er (der User) möge bitte das Programm neu starten und die Makros aktivieren.
Sind die Makros aktiviert, wird Workbook_open abgearbeitet, die Tabellen sowie Excel (in der Taskleiste) selbst ausgeblendet und übrig bleibt auf dem Bildschirm nur die Userform.

Private Sub workbook_open()
Dim i As Integer
For i = 2 To Worksheets.Count
Worksheets(i).Visible = xlVeryHidden
Next
Application.Visible = False
UserForm2.Show
End Sub

Wenn ich dich falsch verstanden haben sollte, melde dich noch mal.
Gruß
Guido
Anzeige
AW: UserForm ohne sichtbare Mappe
15.02.2005 11:19:57
Mike
Hallo Guido,
danke für deine erneute Antwort.
Mit deinem neuen Code funzt es so
wie ich mir das Vorgestellt habe.
Nur: Meine Mappe enthält nur ein
TabBl und dieses enthält alle Informationen,
die über die UF eingegeben bzw. gelesen werden
können. Jetzt ist es aber so, das z.B.
meine LIstBox in der Form nach dem öffnen
der Mappe nicht mehr gefüllt ist.
Das soll nicht sein.
Der jetzige Weg, scheint mir der Richtige zu
sein, möchte aber sofort mit der UserForm arbeiten
können.
Entschuldige bitte meine umständliche Erklärungs-
weise, krieg`s aber nicht besser hin.
Gruß
Mike
Anzeige
AW: UserForm ohne sichtbare Mappe
15.02.2005 12:07:15
Nepumuk
Hallo Mike,
ich habe dir mal ein Beispiel gemacht. Die Mappe wird über die Anwendung geöffnet. Excel wird dabei nicht sichtbar. Der Code der .EXE sieht so aus:


Option Explicit
Private Sub Main()
    Dim xlApp As Object
    Set xlApp = CreateObject("Excel.Application")
    xlApp.Workbooks.Open App.Path & "\Mappe1.xls", Password:="Nepumuk"
    Set xlApp = Nothing
    End
End Sub


Die Datei https://www.herber.de/bbs/user/18108.zip wurde aus Datenschutzgründen gelöscht

Die .XLS und die .EXE müssen in einem Ordner liegen.
Gruß
Nepumuk
Anzeige
AW: UserForm ohne sichtbare Mappe
15.02.2005 12:47:01
Guido
Hallo Mike,
ich bin auch nicht "der Spezialist", aber ich habe mir gerade in diesem Forum, über die Recherche oder die VBA-Hilfe viele Anregungen geholt. Keine Ahnung wie du die List-Box bisher gefüllt hast, aber dieser Code muss jetzt in der Userform innerhalb

Private Sub UserForm_Activate()
End Sub

erfolgen.
Dass Excel sich zunächst kurz einblendet, ist wohl nicht zu ändern, ansonsten müßtest du direkt in Visual Basic programmieren und eine ausführbare exe.-Datei erstellen.
Vielleicht lädt du einfach mal deine Datei in der jetzigen Form hoch, damit man sieht, was Sache ist.
Gruß
Guido
Anzeige
AW: UserForm ohne sichtbare Mappe
16.02.2005 16:20:41
Wolle
hallo Mike,
ich als Anfänger schlage mich mit ähnlichen Problemen herum. Hier meine Erfahrungen:
Listbox und Combibox können gefüllt werden, indem in der VBA-Umgebung der Button mit der rechten Maustaste geklickt wird und Eigenschaften gewählt wird. Hier finden sich unter rowsource die Möglichkeit, einen Zellbereich anzugeben, den du zuvor in irgendeinem Tabellenblatt ausgefüllt hast. In Controlsource kannst du eine Voreinstellung (eine bestimmte Zelle) vornehmen. So kann man sich alle Makro-verrenkungen sparen.
Die Bildschirmreaktionen (auch Flackern) lassen sich mit
Application.DisplayAlerts = False
abschalten. Nicht vergessen, vor Anzeige der UserForm (UserForm.show) wieder einzuschalten mit : Application.DisplayAlerts = True.
Zum Erscheinen der Arbeitsblätter im Hintergrund würde es schon reichen, in Eigenschaften der UserForm, Blatt "Nach Kategorien" " Position " die Maße der Userform so einzustellen, dass sie den gesamten Bildschirm ausfüllt (800x600 Pixel: Höhe 480 Breite 600).
Für Variable Einstellung vgl. hier, Excel-Archiv Beiträge, "UserForm - automatisch an Bildschirmgröße anpassen" vom 22.11.2001
Ich hoffe, dir geholfen zu haben, und auf ähnliche Tipps von deiner Seite.
Gruß
Wolle
Anzeige
;
Anzeige

Infobox / Tutorial

UserForm ohne sichtbare Mappe


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Arbeitsmappe: Stelle sicher, dass die Arbeitsmappe, die die UserForm enthält, bereit ist.

  2. Füge den VBA-Code ein:

    • Öffne den Visual Basic for Applications (VBA) Editor mit ALT + F11.
    • Navigiere zum Objekt "DieseArbeitsmappe".
    • Füge den folgenden Code ein:
    Private Sub Workbook_Open()
       Dim i As Integer
       For i = 2 To Worksheets.Count
           Worksheets(i).Visible = xlVeryHidden
       Next
       Application.Visible = False
       UserForm1.Show
    End Sub
  3. Stelle sicher, dass die UserForm richtig konfiguriert ist: Wenn notwendig, passe die Eigenschaften der UserForm an, damit sie den gesamten Bildschirm ausfüllt.

  4. Speichere die Arbeitsmappe: Stelle sicher, dass du die Datei im Makro-fähigen Format (.xlsm) speicherst.

  5. Teste das Öffnen: Schließe die Arbeitsmappe und öffne sie erneut, um zu sehen, ob die UserForm direkt startet und Excel unsichtbar bleibt.


Häufige Fehler und Lösungen

  • Excel wird sichtbar: Wenn Excel beim Öffnen kurz sichtbar wird, kann es daran liegen, dass der Code nicht richtig implementiert wurde. Stelle sicher, dass der Application.Visible = False Befehl am Ende deines Workbook_Open Codes steht.

  • ListBox ist leer: Wenn deine ListBox in der UserForm nach dem Öffnen leer ist, solltest du sicherstellen, dass der Code zur Befüllung der ListBox im UserForm_Activate-Ereignis platziert ist.

    Private Sub UserForm_Activate()
       ' Code zur Befüllung der ListBox hier hinzufügen
    End Sub

Alternative Methoden

Eine alternative Methode, die Excel-Maske automatisch zu öffnen, besteht darin, eine ausführbare Datei (.exe) zu erstellen, die Excel im Hintergrund öffnet. Dazu kannst du den folgenden Code verwenden:

Option Explicit
Private Sub Main()
    Dim xlApp As Object
    Set xlApp = CreateObject("Excel.Application")
    xlApp.Workbooks.Open App.Path & "\Mappe1.xls", Password:="DeinPasswort"
    Set xlApp = Nothing
End Sub

Diese Methode ermöglicht es dir, Excel vollständig unsichtbar zu halten, während die UserForm sichtbar bleibt.


Praktische Beispiele

Ein praktisches Beispiel könnte eine Eingabemaske für Kundendaten sein. Du kannst eine UserForm erstellen, die Felder für Name, Adresse und Telefonnummer enthält. Die Eingaben können dann in eine versteckte Tabelle gespeichert werden.

Hier ist ein Beispiel für den Code zur Speicherung der Daten:

Private Sub btnSpeichern_Click()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Daten")
    ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Me.txtName.Value
    ws.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Value = Me.txtAdresse.Value
    ws.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).Value = Me.txtTelefon.Value
    Me.Hide
End Sub

Tipps für Profis

  • Verwendung von Application.DisplayAlerts = False: Um unnötige Bildschirmflackern zu vermeiden, kannst du diese Einstellung vor dem Anzeigen der UserForm verwenden. Vergiss nicht, sie danach wieder auf True zu setzen.

  • Eingabemaske optimieren: Achte darauf, dass die UserForm benutzerfreundlich gestaltet ist. Verwende klare Beschriftungen und stelle sicher, dass alle Eingabefelder gut sichtbar sind.

  • Automatisierung: Du kannst die UserForm so einstellen, dass sie bestimmte Aktionen automatisch ausführt, sobald sie geöffnet wird, z.B. das Füllen von Dropdown-Listen oder das Vorbefüllen von Feldern.


FAQ: Häufige Fragen

1. Wie kann ich die UserForm beim Öffnen der Arbeitsmappe automatisch starten?
Du kannst das Workbook_Open Ereignis nutzen, um die UserForm beim Öffnen der Datei zu starten.

2. Ist es möglich, die UserForm in einer bestimmten Größe anzuzeigen?
Ja, du kannst die Eigenschaften der UserForm anpassen, um die Größe festzulegen. Stelle sicher, dass die Position und Größe so eingestellt sind, dass sie den gesamten Bildschirm ausfüllt.

3. Wie kann ich die Eingabemaske anpassen, um spezifische Daten zu erfassen?
Du kannst verschiedene Steuerelemente wie TextBoxen, ListBoxen und ComboBoxen hinzufügen, um verschiedene Datentypen zu erfassen.

4. Was kann ich tun, wenn die UserForm nicht richtig angezeigt wird?
Überprüfe den Code und stelle sicher, dass alle Steuerelemente korrekt benannt und konfiguriert sind. Achte auch darauf, dass Excel nicht sichtbar ist, bevor die UserForm angezeigt wird.

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