Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: ComboBox meerdere gegevens  (gelezen 1585 keer)

0 leden en 1 gast bekijken dit topic.

Offline Jempje

  • Lid
  • *
  • Berichten: 29
  • Geslacht: Man
  • Wil veel bijleren !
ComboBox meerdere gegevens
« Gepost op: 25 januari 2021, 18:39:20 »
Hey,  In bijlage een file waarin ik 2 comboboxen heb gemaakt.  Ik zou graag willen hebben dat ze beide resultaten halen uit aparte tabellen. Tabellen wil ik niet samen voegen op  blad.

Dan als ik een selectie heb gemaakt zouden deze resultaten op  1 rij in een andere tabel moeten komen, Resultaten tabel.

Na toevoegen zou dan ook op de laatste lege kolom van resultaten, kolom I, een checkbox moeten komen, om aan te vinken indien nodig.

Ik ken niets van VBA maar heb de codes opgezocht en van websites gekopieerd.

Ik zou het heel fijn vinden als het zou werken.  Wat heb ik fout gedaan? Merci alvast. JP

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.056
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: ComboBox meerdere gegevens
« Reactie #1 Gepost op: 25 januari 2021, 23:11:27 »
Jempje, welkom op dit forum. Ik heb je een kleine voorzet gegeven van hoe je dit zou kunnen beetpakken. Let er wel op dat je nog beide dropdown boxen een selectie opgeeft. Als je dit niet doet, hangt de boel. Dit moet uiteraard nog worden afgevangen dat je knop van wegschrijven pas actief wordt als beide selecties zijn gemaakt. Kijk maar of je er zo iets mee kan en dat het tot inspiratie kan dienen.
______________________________

Groet, Leo

Offline Jempje

  • Lid
  • *
  • Berichten: 29
  • Geslacht: Man
  • Wil veel bijleren !
Re: ComboBox meerdere gegevens
« Reactie #2 Gepost op: 26 januari 2021, 13:25:34 »
Hey Leo,

Dikke merci alvast, op die manier werkt het inderdaad ook.  Deze oplossing had ik gedeeltelijk als eens gezien. 
Mijn bedoeling was echt als je een keuze maakt in de combobox, je ook de rest blijft zien in het Userform. 
Weet niet of je dat kan aanpassen in het gene ik al had voorbereid? 
Trouwens, als ik één ComboBox apart doe werkt het wel.
Maar met deze 2 onder elkaar gaat iets fout, en wordt de 1ste regel van Sub ComboBox1_Change() geel:

Private Sub ComboBox1_Change()
    Me.TextBox1.Text = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, xRg, 2, False)
    Me.TextBox2.Text = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, xRg, 3, False)
    Me.TextBox3.Text = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, xRg, 4, False)
End Sub
Private Sub ComboBox2_Change()
    Me.TextBox4.Text = Application.WorksheetFunction.VLookup(Me.ComboBox2.Value, xRg, 2, False)
    Me.TextBox5.Text = Application.WorksheetFunction.VLookup(Me.ComboBox2.Value, xRg, 3, False)
    Me.TextBox6.Text = Application.WorksheetFunction.VLookup(Me.ComboBox2.Value, xRg, 4, False)
End Sub

Jempie

Offline Jempje

  • Lid
  • *
  • Berichten: 29
  • Geslacht: Man
  • Wil veel bijleren !
Re: ComboBox meerdere gegevens
« Reactie #3 Gepost op: 26 januari 2021, 13:26:46 »
Misschien best de ganse code sturen:

Private Sub UserForm_Initialize()
    Dim xRg As Range
    Set xRg = Worksheets("Sheet1").Range("A2:D8")
    Me.ComboBox1.List = xRg.Columns(1).Value
    Set xRg = Worksheets("Sheet2").Range("A2:D8")
    Me.ComboBox2.List = xRg.Columns(1).Value
End Sub
Private Sub ComboBox1_Change()
    Me.TextBox1.Text = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, xRg, 2, False)
    Me.TextBox2.Text = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, xRg, 3, False)
    Me.TextBox3.Text = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, xRg, 4, False)
End Sub
Private Sub ComboBox2_Change()
    Me.TextBox4.Text = Application.WorksheetFunction.VLookup(Me.ComboBox2.Value, xRg, 2, False)
    Me.TextBox5.Text = Application.WorksheetFunction.VLookup(Me.ComboBox2.Value, xRg, 3, False)
    Me.TextBox6.Text = Application.WorksheetFunction.VLookup(Me.ComboBox2.Value, xRg, 4, False)
End Sub

Offline Warme bakkertje

  • Lid
  • *
  • Berichten: 94
  • Geslacht: Man
Re: ComboBox meerdere gegevens
« Reactie #4 Gepost op: 26 januari 2021, 15:02:07 »
Private Sub UserForm_Initialize()
    Me.ComboBox1.List = Sheets("Sheet1").ListObjects("Table1").DataBodyRange.Columns(1).Value
    Me.ComboBox2.List = Sheets("Sheet2").ListObjects("Table3").DataBodyRange.Columns(1).Value
End Sub

Private Sub ComboBox1_Change()
    If ComboBox1 = vbNullString Then
        TextBox1 = vbNullString: TextBox2 = vbNullString: TextBox3 = vbNullString
        Exit Sub
    End If
    With Sheets("Sheet1").ListObjects("Table1").DataBodyRange
        fRow = Application.Match(ComboBox1.Value, .Columns(1), 0)
        Me.TextBox1.Text = .Cells(fRow, 2).Value
        Me.TextBox2.Text = .Cells(fRow, 3).Value
        Me.TextBox3.Text = .Cells(fRow, 4).Value
    End With
End Sub

Private Sub ComboBox2_Change()
    If ComboBox2 = vbNullString Then
        TextBox4 = vbNullString: TextBox5 = vbNullString: TextBox6 = vbNullString
        Exit Sub
    End If
    With Sheets("Sheet2").ListObjects("Table3").DataBodyRange
        fRow = Application.Match(ComboBox2.Value, .Columns(1), 0)
        Me.TextBox4.Text = .Cells(fRow, 2).Value
        Me.TextBox5.Text = .Cells(fRow, 3).Value
        Me.TextBox6.Text = .Cells(fRow, 4).Value
    End With
End Sub

Private Sub cmdToevoegen_Click()
    If (ComboBox1 <> vbNullString) * (ComboBox2 <> vbNullString) Then
        With Sheets("Resultaten")
            .Range("A" & .Rows.Count).End(xlUp).Offset(1).Resize(, 8) = Array(ComboBox1.Value, TextBox1.Text, _
                TextBox2.Text, TextBox3.Text, ComboBox2.Value, TextBox4.Text, TextBox5.Text, TextBox6.Text)
        End With
    End If
End Sub
« Laatst bewerkt op: 26 januari 2021, 15:09:10 door Warme bakkertje »
Windows 10 Home   NLD 64bit

Microsoft Office Professional Plus 2016 US

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.056
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: ComboBox meerdere gegevens
« Reactie #5 Gepost op: 26 januari 2021, 15:15:15 »
@Warme Bakkertje, ipv met de Match functie de positie op te zoeken, zou je dan ook niet de .Index van de Combobox kunnen gebruiken? Dit komt zomaar ongetest naar boven drijven hoor. ;)
______________________________

Groet, Leo

Offline Warme bakkertje

  • Lid
  • *
  • Berichten: 94
  • Geslacht: Man
Re: ComboBox meerdere gegevens
« Reactie #6 Gepost op: 26 januari 2021, 15:25:42 »
Dat zou idd. ook kunnen maar ben zo gewend geraakt aan het gebruik van Application.Match en dan zou het er volgens mij zo uitzien.

Private Sub ComboBox1_Change()
    If ComboBox1 = vbNullString Then
        TextBox1 = vbNullString: TextBox2 = vbNullString: TextBox3 = vbNullString
        Exit Sub
    End If
    With Sheets("Sheet1").ListObjects("Table1").DataBodyRange
        Me.TextBox1.Text = .Cells(ComboBox1.ListIndex + 1, 2).Value
        Me.TextBox2.Text = .Cells(ComboBox1.ListIndex + 1, 3).Value
        Me.TextBox3.Text = .Cells(ComboBox1.ListIndex + 1, 4).Value
    End With
End Sub

Wat je dan echter NOOIT mag vergeten is dat Listindex van een CB start bij 0 zodat je er steeds ééntje moet bijtellen, anders foutmelding bij

1ste keuze of verkeerde regel bij de volgende keuzes.
Windows 10 Home   NLD 64bit

Microsoft Office Professional Plus 2016 US

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.056
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: ComboBox meerdere gegevens
« Reactie #7 Gepost op: 26 januari 2021, 17:34:02 »
 \o/
______________________________

Groet, Leo

Offline Jempje

  • Lid
  • *
  • Berichten: 29
  • Geslacht: Man
  • Wil veel bijleren !
Re: ComboBox meerdere gegevens
« Reactie #8 Gepost op: 26 januari 2021, 18:41:03 »
Top gedaan !!! Beide codes werken, heb het net uitgeprobeerd. Nogmaals bedankt.

In mijn oorspronkelijke vraag had ik het ook over een checkbox te laten toevoegen als je op de knop toevoegen klikt, in kolom I.  Zo kan de gebruiker afvinken als een taak is verwerkt.  Kan dat?

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.056
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: ComboBox meerdere gegevens
« Reactie #9 Gepost op: 26 januari 2021, 20:45:41 »
Het kán wel, maar ik zou er dan voor kiezen om de output in een echte Excel Table te plaatsen en dan in kolom 9 een statusveld te maken met een in-cel-dropdown-data-validatie-lijst. Maar daarin de de optie <leeg> of 'afgehandeld'. Een sheet vol met ActiveX objecten wordt er naar mijn idee nooit beter van.
______________________________

Groet, Leo

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.056
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: ComboBox meerdere gegevens
« Reactie #10 Gepost op: 26 januari 2021, 21:13:53 »
Dan hierbij ook nog even mijn bijdrage met de Table (en heb de code iets verrijkt met de afvanging van de lege combobox en daaronder nog een Label geplaatst). Al is het maar voor de lering ende vermaek...  ;D
______________________________

Groet, Leo

Offline Jempje

  • Lid
  • *
  • Berichten: 29
  • Geslacht: Man
  • Wil veel bijleren !
Re: ComboBox meerdere gegevens
« Reactie #11 Gepost op: 28 januari 2021, 18:37:40 »
Of Deze:

vbOKOnly + vbExclamation

Dan heb je der nog een mooie waarschuwingsdriehoek bij  ;D

Offline Jempje

  • Lid
  • *
  • Berichten: 29
  • Geslacht: Man
  • Wil veel bijleren !
Re: ComboBox meerdere gegevens
« Reactie #12 Gepost op: 01 februari 2021, 13:35:51 »
Hallo, ik heb ondertussen al héél veel kunnen gebruiken dankzij jullie hulp, waarvoor dank.  Heb ondertussen ook mijn eigen file aangemaakt.  Maar mijn vraag is nu in deze opbouw van de excel file heb ik weer enkele nieuwe vragen.  Moet ik deze dan stellen in een nieuwe toppic?

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 18.752
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: ComboBox meerdere gegevens
« Reactie #13 Gepost op: 01 februari 2021, 13:49:31 »
Hallo Jemje,

als het over dezelfde Excel gaat, dan mag je er hier rustig op verder borduren  ;D

:) SoftAid :)             
 
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline Jempje

  • Lid
  • *
  • Berichten: 29
  • Geslacht: Man
  • Wil veel bijleren !
Re: ComboBox meerdere gegevens
« Reactie #14 Gepost op: 07 februari 2021, 12:52:32 »
Hallo, slecht weer, dus we kunnen weer wat opzoekwerk verrichten  :glare:  Ik heb zoals ik zei al veel kunnen oplossen dankzij jullie, maar zit toch nog met een aantal vragen om mijn file compleet te maken.
Ik ga de vragen niet tegelijk stellen maar probeer eerst met de oplossingen die ik krijg aan de slag te gaan. Ik heb ook een testfile waar , om privacy redenen, de gegevens van bv leveranciers zijn aangepast door een letter of zo.  Ook zijn de artikel en lev. lijsten een stuk korter dan origineel. Ik wou dan ook de aangedragen oplossingen naar mijn originele file kopiëren.

Vraag 1.Als Ik het formulier "frmStockUIT" gebruik, zouden de aantal stuks van de tabel "Stock" moeten worden afgetrokken. Kolom Stock.  Als ik meer afboek als de stock toe laat moet ik een melding krijgen dat dit niet gaat.  Je moet dus ook verplicht zijn om het getal te wijzigen, dus lager aantal ingeven. Ik heb dit nu al geprobeerd maar ik krijg te vroeg een melding,  bv stock is 100 dan krijg ik al een melding als ik de 2 typ.

Vraag2. Als Ik het formulier "frmStockIN" gebruik, zouden de aantal stuks bij de tabel "Stock" moeten worden bijgeteld.  Daar mag je wel de toelating hebben om meer in te boeken als besteld, stel er wordt meer geleverd.  Tevens zou dan automatisch een kruisje moeten komen achter het order in de Tabel "Orders" onder de kolommen  Geleverd en Ingeboekt. Ook eventueel opmerkingen moeten er achter komen te staan.  Tevens zou je alleen de ordernummers in de lijst van "frmStockIN" mogen zien die nog open staan, dus waar geen kruisjes achter staan.  Als dit allemaal lukt mag het formulier "frmOrderAfwerking" ook weg.

 


www.combell.com