• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA - Userform Error handling - MessageBox

Status
Niet open voor verdere reacties.

RaymondC

Gebruiker
Lid geworden
10 mrt 2008
Berichten
561
In bijlage de file die ik ondertussen heb gemaakt, met hulp van de verschillende leden hier en een stuk Google (Userforms zijn nog niet geheel klaar, sommige userforms moet ik nog verder afwerken).
Echter als er nu in Userform xx niks van gegevens wordt ingevuld en op de Submit & Send button wordt geklikt komt er een run-time error (9).

Wat ik zou willen is als er niks is ingevuld er een messagebox komt met iets van: Please fill in the Item Characteristics.
Niet alles moet ingevuld worden, daar de Characteristics per component verschillend zijn.
Formulier mag zonder gegevens niet verstuurd wordenBekijk bijlage Form_Item_Characteristics.xlsm
 
Hoi,
met deze onder de knop submit
Code:
If ComboBox2.Value = "" Or ComboBox2.Value = "" Then
   MsgBox "Maak uw keuze"
Else
Vergeet op het einde geen end if bij te voegen
En om een foutmelding te vermijden kan je deze eventueel gebruiken
Code:
On Error Resume Next
 
Laatst bewerkt:
Code:
if combobox2.listindex = -1 then
msgbox "blabla"
else
....doe wat anders.....
end if
 
Krijg het nog niet geheel juist.
Heb onderstaande code, en als ik combobox1 een keuze maak, en vul nog een textbox in en klik op submit dan blijf de msgbox komen, terwijl er toch info is ingevuld.

Code:
Private Sub CommandButton1_Click()
    Dim ws As Worksheet
    Dim Value As String
    Set ws = Worksheets("NIR_Item_Characteristics_Active")
     
    If ComboBox2.ListIndex = -1 Then
        MsgBox "Please fill in the required Item Characteristics."
    Else
     'copy the data to the database
    
    ws.range("B1") = Me.ComboBox1.Value
    ws.range("B2") = Me.ComboBox2.Value
    ws.range("B3") = Me.TextBox1.Value
    ws.range("B4") = Me.ComboBox3.Value
    ws.range("B5") = Me.ComboBox4.Value
    ws.range("B6") = Me.TextBox2.Value
    ws.range("B7") = Me.TextBox3.Value
    ws.range("B8") = Me.TextBox4.Value
    ws.range("B9") = Me.TextBox5.Value
    ws.range("B10") = Me.TextBox6.Value
    ws.range("B11") = Me.TextBox7.Value
    ws.range("B12") = Me.TextBox8.Value
    ws.range("B13") = Me.TextBox9.Value
    ws.range("B14") = Me.TextBox10.Value
    ws.range("B15") = Me.TextBox11.Value
    ws.range("B16") = Me.TextBox12.Value
    ws.range("B17") = Me.TextBox13.Value
    ws.range("B18") = Me.TextBox14.Value
    ws.range("B19") = Me.TextBox15.Value
    ws.range("B20") = Me.TextBox16.Value

    Me.ComboBox1.Value = ""
    Me.ComboBox2.Value = ""
    Me.TextBox1.Value = ""
    Me.ComboBox3.Value = ""
    Me.ComboBox4.Value = ""
    Me.TextBox2.Value = ""
    Me.TextBox3.Value = ""
    Me.TextBox4.Value = ""
    Me.TextBox5.Value = ""
    Me.TextBox6.Value = ""
    Me.TextBox7.Value = ""
    Me.TextBox8.Value = ""
    Me.TextBox9.Value = ""
    Me.TextBox10.Value = ""
    Me.TextBox11.Value = ""
    Me.TextBox12.Value = ""
    Me.TextBox13.Value = ""
    Me.TextBox14.Value = ""
    Me.TextBox15.Value = ""
    Me.TextBox16.Value = ""
    
Worksheets("NIR_Item_Characteristics").Select
Mail_ActiveSheet

End If
End Sub
 
Hoi,
Hier schrijf je
en als ik combobox1 een keuze maak, en vul nog een textbox in
En in uw code staat
Code:
If ComboBox2.ListIndex = -1 Then
        MsgBox "Please fill in the required Item Characteristics."
 
@gast0660,

Ik heb beide mogelijkheden getest, wel iets ingevuld in combo1 & een textbox, maar blijf dan de msgbox krijgen.
Ga onderstaande nog eens proberen.

Code:
If ComboBox1.Value = "" Or ComboBox2.Value = "" Then
   MsgBox "Maak uw keuze"
Else
 
Hoi,
Dit zou voldoende moeten zijn (werkt perfect in het vb bestand )
Code:
If ComboBox2.Value = "" Then
   MsgBox "Maak uw keuze"
Else
 
Ik vind een userform met msgboxen een beetje dubbelop.

Zorg liever dat de vervolgknop pas zichtbaar wordt als aan alle invoereisen is voldaan.
 
@snb,

Dat is juist het probleem.
Niet alle comboboxen & textboxen moeten ingevuld worden.
Dit verschilt namelijk per type component.

Maar als jij hiervoor een mooie oplossing weet....
 
Weet ik.
Maar niet voor bedrijven die bijdragen aan militaire produkten.
 
Dat is een heel groot woord hoor Militaire producten.
Military Connectors worden ook gebruikt binnen de commerciële luchtvaart.
Als je beeldschermen onder militaire producten laat vallen natuurlijk.

Een geluk dat onze Belgische Militairen er wel mee kunnen werken als ze op missie zijn ergens in een woestijn
 
Hoi,
Met zoiets
Code:
If (TextBox1.Value <> "" And ComboBox1.Value <> "") Or _
(ComboBox2.Value <> "" And ComboBox3.Value <> "") Then
CommandButton1.Visible = True
Else
CommandButton1.Visible = False
End If
Maak hiermee de gewenste combinaties
in dit vbtje texbox 1 en combobox1 mogen niet leeg zijn of combobox 2 en 3 mogen niet leeg zijn
CommandButton wordt dan zichtbaar (volgens tip van snb)
Zet de commandbutton visible op false in de eigenschappen
 
@snb, na de aanslagen in Brussel was de militaire hulp meer dan welkom, hopelijk zullen jullie die nooit nodig hebben.
 
Ik heb het bestand even bekeken, maar nog sneller weer gesloten.
Misschien moet je eerste maar eens kenbaar maken om welke van de tien Userforma het gaat.
 
@HSV,

Op Userform1 wordt de selectie gemaakt, en aan de hand daarvan het bijbehorende Userform geopend.

Op het geopende userform dient er minimaal 1 selectie en/of text ingevoerd te worden.
 
Er gebeurt weinig in Userform1.
 
@HSV,

Op Userform1 wordt de keuze bepaald, en het specifieke bijbehorende userform geopend.

Heb nu volgende code, en over ik heb gecheckt werkt deze:

Code:
Private Sub ComboBox1_Change()
    Me.ComboBox2.RowSource = Me.ComboBox1
End Sub

Private Sub CommandButton1_Click()
   Dim temp, i As Long

    If (ComboBox1.Value = "Active" And ComboBox2.Value <> "Memory") Or (ComboBox1.Value = "Active" And ComboBox2.Value <> "Visible Led's") Then
    UserForm2.Show
     Else
    If ComboBox1.Value = "Active" And ComboBox2.Value = "Memory" Then
    UserForm7.Show
     Else
    If ComboBox1.Value = "Active" And ComboBox2.Value = "Visible Led's" Then
    UserForm8.Show
     Else
    If ComboBox1.Value = "Connector" And ComboBox2.Value <> "Circular Military Connectors" Then
    UserForm4.Show
     Else
     If ComboBox1.Value = "Connector" And ComboBox2.Value = "Circular Military Connectors" Then
    UserForm9.Show
     Else
    If ComboBox1.Value = "Passive" And ComboBox2.Value Like "Resistors*" Then
    UserForm5.Show
     Else
    If ComboBox1.Value = "Passive" And ComboBox2.Value Like "Capacitors*" Then
    UserForm3.Show
    Else
    If (ComboBox1.Value = "Passive" And ComboBox2.Value <> "Capacitors*") Or (ComboBox1.Value = "Passive" And ComboBox2.Value <> "resistors*") Then
        MsgBox "No Characteristics are defined for other Passive components. Please search in WASDA for package you'll need."
    Else
    If ComboBox1.Value = "Active" And ComboBox2.Value = "Logic" Then
        MsgBox "No Characteristics are defined for Logic. Please search in WASDA for package you'll need."
    Else
    'temp = ComboBox2.Value
    'If IsNumeric(temp) Then temp = Val(temp)
    'For i = 2 To 4
     '   If IsNumeric(Application.Match(temp, Cells(1, i).Resize(500), 0)) Then
      '      VBA.UserForms.Add("UserForm" & i).Show: Exit For
       ' End If
    'Next
   End If
   End If
   End If
   End If
   End If
   End If
   End If
   End If
   End If
End Sub
 
Ik begrijp niet dat een beursgenoteerd bedrijf hiervoor de gratis hulp van vrijwilligers van dit forum nodig heeft. Waarom niet als een betaalde opdracht geplaatst ?
 
@snb,
dat heb ik me ook al herhaaldelijk afgevraagd (bij andere vragenstellers dan in dit topic).
Ik vind het ook vreemd dat dergelijke bedrijven toestaan dat zulk soort problemen op forums als dit worden geplaatst. Het zegt (lijkt mij) wel iets over het niveau van de medewerkers van die bedrijven.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan