Home Office-Hilfe.com - Wir lösen Ihr Problem mit Microsoft Excel, Word, Outlook, PowerPoint, Access gratis Forum Impressum

 [Excel 2003] Beenden einer bzw. mehrerer Userformen
Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
correx
Newbie
Newbie


Anmeldedatum: 06.08.2008
Beiträge: 13

BeitragVerfasst am: 06.08.2008, 14:59 Nach oben

Hallo zusammen,
Im Rahmen meiner Arbeit darf ich eine Excelmappe modifizieren, die zu jedem Monat diverse Daten beinhaltet (Name des Kunden, Anzahl der Kunden etc.). Um diese Arbeit zu vereinfachen, möchte ich mit Hilfe eines/mehrerer makros die entsprechenden Werte der Reihe nach abfragen. Es beginnt also mit der Frage nach dem Monat, in dem der Eintrag erstellt werden soll.
Die eleganteste Lösung ist die Monate in einem DropDown Menü anzuzeigen, und nachdem dies leider nicht mittels einer Inputbox möglich ist, habe ich mich für eine Combobox entschieden. Klappt soweit auch wunderbar, jetzt soll mit Hilfe eines buttons "weiter" die nächste Abfrage laufen, mit "Abbrechen" das ganze beendet werden.

Hier der Code für die ComboBox/Dropdown

Code:
    Private Sub UserForm_Initialize()

    With ComboBox1
        .AddItem "Januar"
        .AddItem "Februar"
        .AddItem "März"
        .AddItem "April"
        .AddItem "Mai"
        .AddItem "Juni"
        .AddItem "Juli"
        .AddItem "August"
        .AddItem "September"
        .AddItem "Oktober"
        .AddItem "November"
        .AddItem "Dezember"
    End With
    End Sub





Für den Weiter Button
Code:
    Private Sub Weiter_Click()
        x = ComboBox1.Text
    If x = "Januar" Then
        Sheets("1").Activate
    End If
        If x = "Januar" Then
        Sheets("1").Activate
    End If
        If x = "Februar" Then
        Sheets("2").Activate
    End If
        If x = "März" Then
        Sheets("3").Activate
    End If
        If x = "April" Then
        Sheets("4").Activate
    End If
        If x = "Mai" Then
        Sheets("5").Activate
    End If
        If x = "Juni" Then
        Sheets("6").Activate
    End If
        If x = "Juli" Then
        Sheets("7").Activate
    End If
        If x = "August" Then
        Sheets("8").Activate
    End If
        If x = "September" Then
        Sheets("9").Activate
    End If
        If x = "Oktober" Then
        Sheets("10").Activate
    End If
        If x = "November" Then
        Sheets("11").Activate
    End If
        If x = "Dezember" Then
        Sheets("12").Activate
    End If
    Unload Me

End Sub



Und für Abbruch
Code:
Private Sub Abbruch_Click()

    Unload Me

End Sub



Die UserForms werden in meinem Makro auf die recht primitive Weise
Code:
Steuerung()

    UserForm1.Show

    UserForm2.Show

End Sub


angesteuert. Das Problem:
Wähle ich nun in meiner UserForm1, also der Abfrage nach dem Monat die Option abbrechen, so wird zwar dieses Userform abgebrochen, allerdings wird natürlich dennoch die zweite UserForm2 geöffenet. Vielmehr soll an dieser Stelle wirklich das ganze Makro abgebrochen werden...

Habt ihr irgendeine Idee wie man dieses Problem umschiffen kann, bzw habe ich von grundauf einen denkfehler begangen?
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5509

BeitragVerfasst am: 06.08.2008, 15:21 Nach oben

Hallo!

Ungetestet:
Erstelle eine globale Variable außerhalb der einzelnen Subs:
Code:
Public Abbruch As Boolean
Setze diese Variable im "Weiter"-Makro auf False und im "Abbruch"-Makro auf True.
Im "Steuerung"-Makro fragst du dann diese Variable ab:
Code:
Steuerung()
UserForm1.Show
If Abbruch Then Exit Sub
UserForm2.Show
End Sub

_________________

Viele Grüße vom Schatzi

------------------------
Dies ist meine Signatur und sie trägt eigentlich nichts zur Lösung deines Problems bei. Sollte sie es dennoch tun, dann bist du definitiv im falschen Forum...Image
Ein Feedback zum ursprünglichen Problem wäre trotzdem nett!
Windows XP, Office2000, Office2007
Benutzer-Profile anzeigenPrivate Nachricht senden
correx
Newbie
Newbie


Anmeldedatum: 06.08.2008
Beiträge: 13

BeitragVerfasst am: 06.08.2008, 15:43 Nach oben

Wow, Danke für die schnelle Antwort!
Hört sich von der Idee auf jeden Fall mal äußerst gut an, jetzt müsste ich dich nur noch kurz fragen außerhalb welcher subs ich die variable definieren muss.
Wenn ich dich richtig verstanden habe in meinem UserForm1. Tue ich dies, erhalte jedoch eine Fehlermeldung. Was bewirkt denn "Public" genau, kenne nur "Dim" zur Einführung von Variablen.

Grüße
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5509

BeitragVerfasst am: 06.08.2008, 15:52 Nach oben

Hallo!
Zitat:
außerhalb welcher subs ich die variable definieren muss.

Außerhalb ALLER Subs, z.B.
Code:
Public Abbruch As Boolean

Sub Steuerung()
UserForm1.Show
If Abbruch Then Exit Sub
UserForm2.Show
End Sub

_________________

Viele Grüße vom Schatzi

------------------------
Dies ist meine Signatur und sie trägt eigentlich nichts zur Lösung deines Problems bei. Sollte sie es dennoch tun, dann bist du definitiv im falschen Forum...Image
Ein Feedback zum ursprünglichen Problem wäre trotzdem nett!
Windows XP, Office2000, Office2007
Benutzer-Profile anzeigenPrivate Nachricht senden
correx
Newbie
Newbie


Anmeldedatum: 06.08.2008
Beiträge: 13

BeitragVerfasst am: 06.08.2008, 16:19 Nach oben

Danke, leider klappts nicht :'(
Es kommt zwar keine Fehlermeldung mehr, aber der Befehl bleibt völlig ohne Wirkung. Sprich ich klicke abbrechen, aber in Wirklichkeit wird nur ein unload Befehel ausgeführt und ich lande im nächsten Step.
tut mir leid für die mühe, aber ich habe auch schon das ganze web durchforstet...
Benutzer-Profile anzeigenPrivate Nachricht senden
schatzi
Moderator
Moderator


Anmeldedatum: 09.12.2006
Beiträge: 5509

BeitragVerfasst am: 06.08.2008, 16:29 Nach oben

Ja, stimmt...
Der Code "Steuerung" läuft weiter, bevor du in UserForm1 auf irgendwas geklickt hast.
Aber warum schreibst du den Befehl "UserForm2.Show" eigentlich in "Steuerung"?
Was passiert, wenn du ihn hier rausnimmst und ihn stattdessen als letzte Zeile in den Code "Weiter" packst?

_________________

Viele Grüße vom Schatzi

------------------------
Dies ist meine Signatur und sie trägt eigentlich nichts zur Lösung deines Problems bei. Sollte sie es dennoch tun, dann bist du definitiv im falschen Forum...Image
Ein Feedback zum ursprünglichen Problem wäre trotzdem nett!
Windows XP, Office2000, Office2007
Benutzer-Profile anzeigenPrivate Nachricht senden
correx
Newbie
Newbie


Anmeldedatum: 06.08.2008
Beiträge: 13

BeitragVerfasst am: 06.08.2008, 16:36 Nach oben

sagen wirs mal so, der abbruch befehl geht dann, dafür stimmen ne menge andere dinge nicht mehr :(. ich werd jetzt mal ein paar steps weitermachen und testen und schaun worans liegt!

Hast mir aber auf jeden fall schon riesig weiter geholfen, danke!

Nur noch eins, brauch ich dann meine Steuerungsdatei überhaupt, oder könnte ich wenns denn geht mich auch von einer userform zur nächsten hangeln?
Benutzer-Profile anzeigenPrivate Nachricht senden
correx
Newbie
Newbie


Anmeldedatum: 06.08.2008
Beiträge: 13

BeitragVerfasst am: 07.08.2008, 17:33 Nach oben

also. habs jetzt in einem durchprogrammiert und läuft bis dato super,also danke nochmal für die hilfe!
Benutzer-Profile anzeigenPrivate Nachricht senden
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Druck des Kommentars einer Zelle htumm Microsoft Excel Hilfe 2 28.08.2008, 14:04 Letzten Beitrag anzeigen
Keine neuen Beiträge Hilfe beim erstellen einer Importdatei dobby110 Microsoft Excel Hilfe 5 26.08.2008, 12:36 Letzten Beitrag anzeigen
Keine neuen Beiträge Drop down Menü fest in einer Zelle pontif Microsoft Excel Hilfe 1 25.08.2008, 13:25 Letzten Beitrag anzeigen
Keine neuen Beiträge Automatisches Füllen einer Tabelle Hello100 Microsoft Access Hilfe 1 22.08.2008, 12:29 Letzten Beitrag anzeigen
Keine neuen Beiträge bestimmte Inhalte einer Spalte kopieren FelixB81 Microsoft Excel Hilfe 4 15.08.2008, 11:52 Letzten Beitrag anzeigen


 Gehe zu:   



Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen

Haftungsausschluss/Disclaimer


SMS kostenlos versenden | Battle-Dream | Tuning Forum | Join the YoungGeneration | krankenversicherungsvergleich | Kalorienarme Rezepte!
Versicherungsvergleich | Bürobedarf | Papier | Betten

Ranking-Hits



Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Alle Zeiten sind GMT + 1 Stunde
Deutsche Übersetzung von phpBB.de