Supportnet / Forum / Tabellenkalkulation
VBA-UserForm anlegen
Frage
Hallo Suporters,
vorweg: ich bin totaler VBA-Anfänger und beschäftige mich erst seit kurzem mit diesem Thema. Trotzdem hoffe ich, dass Ihr mir eventuell ein paar Ratschläge für mein Problem geben könnt....
Also, ich möchte einen kleinen Programmeinstiegsdialog für eine excel Datei per Userform programmieren. Hier soll es möglich sein 3 Optionsfelder anzuklicken und per Befehlsschaltfläche entweder zu bestätigen oder abzubrechen.
Das Makro für das 1. Optionsfeld soll immer eine bestimmte Datei (neu) öffnen.
Das Makro für das 2. Optionsfeld soll das Verzeichnis C öffnen wo auf abgespeicherte Dateien zugegriffen werden kann.
Das Makro für das letzte Optionsfeld soll bewirken, das Excel geschlossen wird.
Wie könnte ich sowas realisieren? Ich erwarte jetzt keine kompletten Lösungen aber vielleicht könnten die Pro´s unter Euch mir ein paar Ratschläge oder Ideen geben... insofern soetwas möglich ist....
Bin über jeden kommentar dankbar.
Gruß Mola
Antwort 1 von coros
Moin Mola,
erstelle Dir eine UserForm mit 3 Optionsfeldern und 2 Befehlsschaltflächen. Füge neben die 3 Optionsfelder noch drei Bezeichnungsfelder ein, damit Du weißt, was welches Optionsfeld macht. Schreibe in das Bezeichnungsfeld neben Optionsfeld1 den Text "Datei öffnen", in das Bezeichnungsfeld neben Optionsfeld2 den Text "Dateimanager öffnen" und in das 3. Bezeichnungsfeld "Datei schließen. In der 1. Befehlsschaltfläche gibst Du den Text "OK" und in der 2. den Text "Abbruch" ein. Danach fügst Du nachfolgenden Code in das VBA Projekt der UserForm (mit rechter Maustaste die UserForm anklicken und dann "Code anzeigen" auswählen) ein.
Zum Abschluss erstellst Du noch einen Button in Deinem Tabellenblatt, der aus der Symbolleiste "Steuerelement-Toolbox" stammt und gibst dort dann den Aufrufbefehl "UserForm1.Show" zum Öffnen der UserForm ein.
Du musst allerdings noch in dem Code der Befehlszeile
Workbooks.Open ("D:\Beispiel.xls")
den Pfad und den Dateinamen der Datei, die geöffnet werden soll, eingeben. Zusätzlich solltest Du noch in der Zeile
Verzeichnis = "D:\"
einen Pfad angeben, der beim Öffnen des Dateimanagers sofort angezeigt werden soll, das nimmt Dir lästiges hin und her geklicke bis zu dem Pfad ab.
Wenn Du alles richtig gemacht hast, sollte wenn Du das 1. Optionsfeld markierst und den Button "OK" klickst die fest eingestellte Datei geöffnet werden. Beim 2. Optionsfeld sollte sich der Dateimanager zur Auswahl einer Exceldatei öffnen und beim 3. Optionsfeld sollte die Datei ohne zu speichern geschlossen werden. Wird der Abbruch Button angeklickt, wird lediglich die UserForm ohne eine Aktion geschlossen.
Ich hoffe, Du hast das so gemeint und Dir hilft meine Antwort erst einmal weiter. Bei Bedarf kann ich Dir auch eine Beispieldatei schicken. Wenn Du nicht klar kommst, dann melde Dich.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
erstelle Dir eine UserForm mit 3 Optionsfeldern und 2 Befehlsschaltflächen. Füge neben die 3 Optionsfelder noch drei Bezeichnungsfelder ein, damit Du weißt, was welches Optionsfeld macht. Schreibe in das Bezeichnungsfeld neben Optionsfeld1 den Text "Datei öffnen", in das Bezeichnungsfeld neben Optionsfeld2 den Text "Dateimanager öffnen" und in das 3. Bezeichnungsfeld "Datei schließen. In der 1. Befehlsschaltfläche gibst Du den Text "OK" und in der 2. den Text "Abbruch" ein. Danach fügst Du nachfolgenden Code in das VBA Projekt der UserForm (mit rechter Maustaste die UserForm anklicken und dann "Code anzeigen" auswählen) ein.
Option Explicit
Private Sub CommandButton1_Click()
Dim Importdatei$, Verzeichnis$
Verzeichnis = "D:\"
On Error Resume Next
ChDir Verzeichnis
If OptionButton1 = True Then
Unload Me
Workbooks.Open ("D:\Beispiel.xls")
End If
If OptionButton2 = True Then
Unload Me
Importdatei = Application.GetOpenFilename("Exceldateien (*.xls), *.xls")
Workbooks.OpenText Filename:=Importdatei
End If
If OptionButton3 = True Then
Unload Me
ThisWorkbook.Saved = True
Application.Quit
End If
End Sub
Private Sub CommandButton2_Click()
Unload Me
End SubZum Abschluss erstellst Du noch einen Button in Deinem Tabellenblatt, der aus der Symbolleiste "Steuerelement-Toolbox" stammt und gibst dort dann den Aufrufbefehl "UserForm1.Show" zum Öffnen der UserForm ein.
Du musst allerdings noch in dem Code der Befehlszeile
Workbooks.Open ("D:\Beispiel.xls")
den Pfad und den Dateinamen der Datei, die geöffnet werden soll, eingeben. Zusätzlich solltest Du noch in der Zeile
Verzeichnis = "D:\"
einen Pfad angeben, der beim Öffnen des Dateimanagers sofort angezeigt werden soll, das nimmt Dir lästiges hin und her geklicke bis zu dem Pfad ab.
Wenn Du alles richtig gemacht hast, sollte wenn Du das 1. Optionsfeld markierst und den Button "OK" klickst die fest eingestellte Datei geöffnet werden. Beim 2. Optionsfeld sollte sich der Dateimanager zur Auswahl einer Exceldatei öffnen und beim 3. Optionsfeld sollte die Datei ohne zu speichern geschlossen werden. Wird der Abbruch Button angeklickt, wird lediglich die UserForm ohne eine Aktion geschlossen.
Ich hoffe, Du hast das so gemeint und Dir hilft meine Antwort erst einmal weiter. Bei Bedarf kann ich Dir auch eine Beispieldatei schicken. Wenn Du nicht klar kommst, dann melde Dich.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von Mola
Hallo Coros,
jetzt bin ich aber echt mal "buff" - werde es gleich nach Feierabend mal ausprobieren...kann ja kaum warten jetzt... :o)...Melde mich dann nochmal, wenn ich hängen bleibe und mir meine neuen VBA-Wälzer nicht weiterhelfen.
Vielen 1000 Dank erstmal für diese wervolle Anleitung!!!
Gruß
Mola
jetzt bin ich aber echt mal "buff" - werde es gleich nach Feierabend mal ausprobieren...kann ja kaum warten jetzt... :o)...Melde mich dann nochmal, wenn ich hängen bleibe und mir meine neuen VBA-Wälzer nicht weiterhelfen.
Vielen 1000 Dank erstmal für diese wervolle Anleitung!!!
Gruß
Mola
Antwort 3 von Mola
Hallo Coros,
funktioniert alles prächtig - verstehe sogar einigermaßen die Codes dazu. Nur erstmal selber drauf kommen :o( ist eben für´n "Starter" echt schwer!
Jetzt hab ich ein kleines neues Problem...wo ich hänge - und zwar möchte ich bei der Bestätigung des 1. Buttons in eine bestimmte Excel Datei wechseln.... (das funktioniert prima) und gleichzeit eine neue Userform aktivieren.
Also habe ich einfach Deinen Code um
If OptionButton1 = True Then
Unload Me
Workbooks.Open ("D:\Beispiel.xls")
Else
UserForm2.Show
End If
ergänzt. Leider bringt er mir nicht die Userform zum anzeigen...
Sorry, aber könntest Du nochmal einen Hinweis geben???
Vielen Dank!
Gruß
Mola
funktioniert alles prächtig - verstehe sogar einigermaßen die Codes dazu. Nur erstmal selber drauf kommen :o( ist eben für´n "Starter" echt schwer!
Jetzt hab ich ein kleines neues Problem...wo ich hänge - und zwar möchte ich bei der Bestätigung des 1. Buttons in eine bestimmte Excel Datei wechseln.... (das funktioniert prima) und gleichzeit eine neue Userform aktivieren.
Also habe ich einfach Deinen Code um
If OptionButton1 = True Then
Unload Me
Workbooks.Open ("D:\Beispiel.xls")
Else
UserForm2.Show
End If
ergänzt. Leider bringt er mir nicht die Userform zum anzeigen...
Sorry, aber könntest Du nochmal einen Hinweis geben???
Vielen Dank!
Gruß
Mola
Antwort 4 von Mola
----ok, sorry, ist ja auch blödsinn das bei den Optionsbuttons einzufügen----
Antwort 5 von Event
Hi
Laß einfach die Else weg.
Gruß
Laß einfach die Else weg.
Gruß
Antwort 6 von Mola
Hallo Event,
jo, ich habs jetzt irgendwie zurecht gefriemelt....ich mach erstmal weiter - hab irgendwie noch ne Menge Fragen...na mal sehen...
Gruß+Danke
Mola
jo, ich habs jetzt irgendwie zurecht gefriemelt....ich mach erstmal weiter - hab irgendwie noch ne Menge Fragen...na mal sehen...
Gruß+Danke
Mola
Antwort 7 von coros
Nabend Mola,
super, dass alles funktioniert. Bei weiteren Fragen melde Dich ruhig. Allerdings solltest Du dafür einen neuen Thread eröffnen, da das ja dann ein neues Thema ist.
Danke Dir auch für die Rückmeldung.
MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.
super, dass alles funktioniert. Bei weiteren Fragen melde Dich ruhig. Allerdings solltest Du dafür einen neuen Thread eröffnen, da das ja dann ein neues Thema ist.
Danke Dir auch für die Rückmeldung.
MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.

