Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Userform Listbox - Null Selektion abfangen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Userform Listbox - Null Selektion abfangen (817 mal gelesen)
Tanki
Mitglied
Entwicklungsingenieur


Sehen Sie sich das Profil von Tanki an!   Senden Sie eine Private Message an Tanki  Schreiben Sie einen Gästebucheintrag für Tanki

Beiträge: 14
Registriert: 11.05.2018

CATIA V5 R29 SP3
Windows 10

erstellt am: 15. Mai. 2018 08:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,

ich habe eine Userform erstellt, die mir 6 verschiedene Auswahlmöglichkeiten bietet. Diese bestätige ich dann entweder mit Click auf Button 1 oder ich breche das Makro ab mit Click auf Button 2. Nun frage ich mich, wie ich am elegantesten den Fall abfange, dass der User nichts ausgewählt hat und trotzdem auf Ok drückt.
Hier mein Code:

Code:
Private Sub UserForm_Initialize()        'Name der Userform ist 'Modellauswahl'
    ListBox1.AddItem "A"
    ListBox1.AddItem "B"
    ListBox1.AddItem "C"
    ListBox1.AddItem "D"
    ListBox1.AddItem "E"
    ListBox1.AddItem "F"
End Sub

Private Sub CommandButton1_Click()
Dim ausleseparameter As String
With ListBox1
    If .ListIndex > -1 Then
        ausleseparameter = .List(.ListIndex)
        If ausleseparameter = "A" Then
            übergabeparameter = "bsp1"                      'übergabeparameter ist eine public variable aus dem Modul
        ElseIf ausleseparameter = "B" Then
            übergabeparameter = "bsp2"
     
        ... usw.

        End If
    Else
    MsgBox "Bitte wählen Sie zunächst einen Typ aus!", vbExclamation

    'Hier soll ein Reset der Userform erfolgen um wieder die Möglichkeit der Auswahl zu haben

    End If
End With
Modellauswahl.Hide
End Sub

Private Sub CommandButton2_Click()
    Modellauswahl.Hide
    MsgBox "Das Makro wurde abgebrochen."
    abbruchstatus = True                          'abbruchstatusist eine public variable aus dem Modul
End Sub


Ich stelle mir vor, dass ich der beschriebenen Stelle die Userform 'resetten' kann.

Vielen Dank für eure Tipps!
Beste Grüße

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Randle
Mitglied
CAD/PLM Consultant


Sehen Sie sich das Profil von Randle an!   Senden Sie eine Private Message an Randle  Schreiben Sie einen Gästebucheintrag für Randle

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 15. Mai. 2018 10:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Tanki 10 Unities + Antwort hilfreich

Hallo,

du könntest das Füllen der Combobox ja in eine eigene Routine packen und diese aufrufen wenn nichts oder was ungültiges ausgewählt wird. Dann solltest du aber noch ein Combobox.Clear voranstellen.

Alternativ könntest du den Anwender in diesem Fall (Auswahl: leer/ungültig) auch eine Messagebox anzeigen damit er weiß was das Makro von ihm erwartet.

Gruß
Randle

------------------
Wer für nichts steht, fällt für alles!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Tanki
Mitglied
Entwicklungsingenieur


Sehen Sie sich das Profil von Tanki an!   Senden Sie eine Private Message an Tanki  Schreiben Sie einen Gästebucheintrag für Tanki

Beiträge: 14
Registriert: 11.05.2018

CATIA V5 R29 SP3
Windows 10

erstellt am: 15. Mai. 2018 10:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo und Danke für deine Antwort,

wie springe ich dann aber nach Anzeigen meiner Hinweisnachricht aus meinem private sub ClickButton zurück zu dem Punkt im Private Sub Userform, an dem ich meine Liste leere und wieder neu befülle?

VG

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Randle
Mitglied
CAD/PLM Consultant


Sehen Sie sich das Profil von Randle an!   Senden Sie eine Private Message an Randle  Schreiben Sie einen Gästebucheintrag für Randle

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 15. Mai. 2018 12:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Tanki 10 Unities + Antwort hilfreich

Hallo,

in etwa so ...

Code:

Private Sub UserForm_Initialize()       
    InitializeComboBox
End Sub

Private Sub InitializeComboBox()       
    ListBox1.Clear
    ListBox1.AddItem "A"
    ListBox1.AddItem "B"
    ListBox1.AddItem "C"
    ListBox1.AddItem "D"
    ListBox1.AddItem "E"
    ListBox1.AddItem "F"
End Sub

Private Sub CommandButton1_Click()
Dim ausleseparameter As String
With ListBox1
    If .ListIndex > -1 Then
        ausleseparameter = .List(.ListIndex)
        If ausleseparameter = "A" Then
            übergabeparameter = "bsp1"                      'übergabeparameter ist eine public variable aus dem Modul
        ElseIf ausleseparameter = "B" Then
            übergabeparameter = "bsp2"
     
        ... usw.

        End If
    Else
        MsgBox "Bitte wählen Sie zunächst einen Typ aus!", vbExclamation, "Auswahlfehler"

        InitializeComboBox
        Exit Sub
    End If
End With
Modellauswahl.Hide
End Sub


Gruß
Randle

------------------
Wer für nichts steht, fällt für alles!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Logistics Engineer (m/w/d)

Bist du bereit, Teil einer sich stetig wandelnden Organisation zu werden, Prozesse zu optimieren und Struktur in die Abläufe zu bringen? In der Position als Logistics Engineer (m/w/d) übernimmst du eine Schlüsselrolle in unserem Unternehmen, indem du für reibungslose Prozesse und eine effiziente Arbeitsabwicklung sorgst. Wir sind stolz darauf, Just-in-Sequence (JIS) Logistik für ...

Anzeige ansehenProzessmanagement
Tanki
Mitglied
Entwicklungsingenieur


Sehen Sie sich das Profil von Tanki an!   Senden Sie eine Private Message an Tanki  Schreiben Sie einen Gästebucheintrag für Tanki

Beiträge: 14
Registriert: 11.05.2018

CATIA V5 R29 SP3
Windows 10

erstellt am: 15. Mai. 2018 12:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Perfekt, ich danke dir!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz