keuzelijst

Status
Niet open voor verdere reacties.

jan excel

Gebruiker
Lid geworden
4 mrt 2007
Berichten
437
Goede morgen,

In userform1 kan er met Combobox1 een selectie van een artikelnummer worden gemaakt.
Deze selectie van artkelnr. correspondeert met de arikelnummers op blad1 van het voorbeeld bestand zie bijlage.
Zodra er een artikel is geselcteerd dient in textbox1 de omschrijving komen dat corresponteerd met het artikel nr.

Dus als in Combobox1 artikelnr. 1234569 is geselecteerd dient in textbox1, test4 komen te staan.
Vervolgens op commandbutton1 klikken voor de gegevens toe te voegen in werkblad ALLartikelnrs.
Er dient hierbij rekening te worden gehouden dat de gegevens op de eerst lege regel worden gezet in kolom A+B.

Met de bijlage erbij denk ik dat jullie wel begrijpen wat ik bedoel,
Alvast bedankt voor de hulp.
 

Bijlagen

  • testvoorbeeld.xlsm
    19 KB · Weergaven: 28
Dag Jan,

Verwijder de RowSource van ComboBox1.

Plaats onderstaande Code achter UserForm1.

Code:
Private Sub ComboBox1_Change()
    TextBox1.Text = Sheets(1).Range("B" & ComboBox1.ListIndex + 2).Value
End Sub

Private Sub CommandButton1_Click()
    Dim lRij As Long

    With Sheets(2)
        lRij = .Cells(Rows.Count, 1).End(xlUp).Row + 1
        Range(Cells(ComboBox1.ListIndex + 2, 1), Cells(ComboBox1.ListIndex + 2, 2)).Copy .Cells(lRij, 1)
    End With

    MsgBox "KLAAR!"    'kun je verwijderen
    Unload Me
End Sub

Private Sub UserForm_Initialize()
    Dim LR As Long
    'Bij het evt langer worden van de Artiekelenlijst hoef je deze Code niet aan te passen.
    'Verwijder de RowSource uit ComboBox1
    LR = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
    ComboBox1.List = Sheets(1).Range("A2:A" & LR).Value
End Sub
 
Of:

Code:
Private Sub ComboBox1_Change()
    TextBox1.Text = Combobox1.list(ComboBox1.ListIndex,1)
End Sub

Private Sub CommandButton1_Click()
    Sheets("Blad2").Cells(Rows.Count, 1).End(xlUp).offset(1).resize(,2)=application.index(combobox1.list,combobox1.listindex+1,0)
    Unload Me
End Sub

Private Sub UserForm_Initialize()
    ComboBox1.List = Sheets("Blad1").cells(1).currentregion.resize(,2).Value
End Sub
 
Laatst bewerkt:
Hoi LucB en snb,

Bedankt voor jullie reactie en inbreng.
Bij nader inzien dient het formulier uitgebreid te worden.

Dit is een klein deel van een groter project, echter kom nu met dit onderdeel nog niet verder.

De layout is aangepast naar de situatie in het projekt, dit is voor mij dan makkelijker te implementeren.

Wat is de bedoeling:
* In Userform1 eerst in alle combo Boxen (1+2+3) keuze selectie maken.
* Na de keuzes CommandoButton1 "Toevoegen" activeren.

Stap 1 VBA-code : De code dient achter de geselecteerde artikel nummer de gegevens te zetten.
Stap 2 VBA-Code : De code kopieert deze regel naar de eerste lege regel in Sheet "ALLDATA" << (deze VBA code staat er al in).

Zie de bijlage voor meer duidelijkheid.
 

Bijlagen

  • testvoorbeeld.xlsm
    50,9 KB · Weergaven: 28
Code:
Private Sub CommandButton1_Click()
    Set DS = Sheets("data")
    Dim lRij As Long
    
    DS.Cells(ComboBox1.ListIndex + 1, 9) = ComboBox2.Value
    DS.Cells(ComboBox1.ListIndex + 1, 10) = ComboBox3.Value
    
    With Sheets("ALLDATA")
        lRij = .Cells(Rows.Count, 1).End(xlUp).Row + 1
        DS.Range(DS.Cells(ComboBox1.ListIndex + 1, 7), DS.Cells(ComboBox1.ListIndex + 1, 10)).Copy .Cells(lRij, 1)
    End With

    MsgBox " nieuwe artikel nr. is toegevoegd"    'kun je verwijderen
    Unload Me
End Sub
 
@WB

ipv
Code:
    Set DS = Sheets("data")
    Dim lRij As Long
    
    DS.Cells(ComboBox1.ListIndex + 1, 9) = ComboBox2.Value
    DS.Cells(ComboBox1.ListIndex + 1, 10) = ComboBox3.Value

With Sheets("ALLDATA")
        lRij = .Cells(Rows.Count, 1).End(xlUp).Row + 1
        DS.Range(DS.Cells(ComboBox1.ListIndex + 1, 7), DS.Cells(ComboBox1.ListIndex + 1, 10)).Copy .Cells(lRij, 1)
    End With

Code:
Sheets("data").Cells(ComboBox1.ListIndex + 1, 9).resize(,2) = array(ComboBox2.Value,ComboBox3.Value)
Sheets("ALLDATA").Cells(Rows.Count, 1).End(xlUp).offset(1).resize(,4)=Sheets("data").Cells(ComboBox1.ListIndex + 1, 7).resize(,4).value
 
Laatst bewerkt:
Beste Experts,

Allemaal bedankt, kan nu weer verder met het project.
Ongetwijfeld zal ik nog wel meer beroep op jullie doen als experts VBA programmering.

Groetjes uit het mooie zonnige Tilburg.
JAN E
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan