• 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.

Combobox in userform

Status
Niet open voor verdere reacties.

tomkruizinga

Gebruiker
Lid geworden
7 dec 2018
Berichten
21
Beste,

artikelnummer.invoeren.JPG

In bovenstaande afbeelding zie je dat er een artikelnummer is toegevoegd.
De tekstboxen onder deze combobox worden automatisch ingevuld.
Het probleem is dat, zodra het artikelnummer ingevoerd is, je met de pijltoetsen(op het toetsenbord) op het artikelnr. (in de combobox) moet gaan staan.
Ook komt het dan voor als we het verkeerde artikelnummer in willen voeren er lege regels (in de combobox) staan.

Wat wenselijk zou zijn is dat ter aller tijden een artikelnummer ingevoerd kan worden en dat de tekstboxen ook verspringen naar de juiste informatie.
Ik hoop dat ik mijn vraag duidelijk heb kunnen maken.


Code:
Private Sub tvg_Click()

  If Trim(Me.TextBox4.Value) = "" Then
    Me.TextBox4.SetFocus
    MsgBox "Voer een Artikelnummer in!"
  Exit Sub
    End If
   If Trim(Me.TextBox2.Value) = "INVOEREN" Then
    Me.TextBox2.SetFocus
    MsgBox "Voer een aantal in!"
Exit Sub
End If
    If Trim(Me.TextBox5.Value) = "INVOEREN" Then
    Me.ComboBox3.SetFocus
    MsgBox "Voer een THT in!"
    
  Exit Sub
  End If
   If Trim(Me.ComboBox3.Value) = "INVOEREN" Then
    Me.ComboBox3.SetFocus
    MsgBox "Voer een palletsoort in!"
  Exit Sub
  End If
   If Trim(Me.TextBox4.Value) = "" Then
    Me.TextBox4.SetFocus
    MsgBox "Er gaat iets mis, dit artikelnummer staat niet in systeem, informeer Tom Kruizinga!"
  Exit Sub
 
 
  End If
 
  arr = Array(ComboBox2.Value, TextBox2.Value, TextBox3.Value, TextBox4.Value, ComboBox1.Value, CDate(TextBox5.Value), ComboBox3.Value, (TextBox6), TextBox8.Value, TextBox7.Value)

  Sheets("Overvoorraad lijst voor MAG ").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 10) = arr

  MsgBox "Gegevens zijn verwerkt", vbOKOnly + vbInformation, "Gegevens zijn verwerkt"
  
  
  
Sheets("palletbrief").Range("A1").Value = TextBox4.Value
Sheets("palletbrief").Range("M1").Value = ComboBox2.Value
Sheets("palletbrief").Range("A2").Value = TextBox3.Value
Sheets("palletbrief").Range("A3").Value = TextBox2.Value
Sheets("palletbrief").Range("A4").Value = CDate(TextBox5.Value)
Sheets("palletbrief").Range("A5").Value = TextBox7.Value




 Sheets("palletbrief").Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
   MsgBox "Brief ligt op de printer"
 
Unload Me
frmklantgegevens.Show



End Sub
Alvast bedankt;
Tom Kruizinga
 

Bijlagen

  • vraag helpmij.nl.xlsm
    1,3 MB · Weergaven: 27
Is voor deze vraag het complete project nodig om te plaatsen? Maak een klein voorbeeldbestand met de essentie van het probleem. Waarschijnlijk zie je dan zelf de oplossing ook al.
 
Beste VenA

Bij deze heb ik hem kleiner gemaakt.
Maar helaas zie ik hem nog niet.
 

Bijlagen

  • vraag helpmij.nl.xlsm
    1 MB · Weergaven: 44
Wat is de bedoeling van deze code?
Code:
  With Me.ComboBox2
    If .ListIndex = -1 And Len(.Text) Then
      For i = .ListCount - 1 To 0 Step -1
        If InStr(1, .List(i), .Text, 1) = 0 Then .RemoveItem (i)
      Next i
      .DropDown
    End If
    
  End With

Als je een niet bestaand artikelnummer invoert dan worden alle items uit de combobox verwijderd.
 
Als ik deze code weg haal dan moet ik met de muis de juiste artikelnummer zoeken. :(
De bedoeling is dat zodra ik het artikelnummer in type, de tekstboxen automatisch verspringen naar de juiste informatie.
 

Bijlagen

  • Knipsel16.JPG
    Knipsel16.JPG
    36,9 KB · Weergaven: 44
Code:
Private sv


Private Sub UserForm_Initialize()
sv = Range("lijst1").Value
 ComboBox2.List = sv
 ComboBox3.List = Range("lijst3").Value
 ComboBox1.List = Range("lijst2").Value


End Sub
Private Sub ComboBox2_Change()
  With ComboBox2
   .List = sv
      For i = .ListCount - 1 To 0 Step -1
      If Left(.Text, Len(.Text)) = CStr(.List(i, 0)) Then
        TextBox4 = .List(i, 1)
        TextBox3 = .List(i, 2)
        ComboBox1 = .List(i, 3)
        ComboBox3 = .List(i, 4)
        TextBox2 = .List(i, 5)
        TextBox5 = .List(i, 6)
      ElseIf Left(.Text, Len(.Text)) <> Left(.List(i, 0), Len(.Text)) Then .RemoveItem i
  End If
  Next i
.DropDown
  End With
End Sub

De rest zelf maar aanpassen, het werkt niet echt soepel meer met 9500 artikelen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan