Flytte valgte værdier fra ListBox til et Sheet – Hvordan ?
Hej EksperterI min UserForm kan jeg fra en liste i ListBox1 flytte items således de fremkommer i ListBox2. Dette virker OK.
Mit problem er at jeg ikke kan overføre de i ListBox2 valgte værdier til arket ”PrintSheet” når jeg trykker på knappen OK. PrintSheet er tænkt som en faktura agtig sag der summere brugerens valg og viser dertil tilknyttede priser.
Jeg har foreløbig to krav til hvorledes ListBox2 værdierne skal vises i arket ”PrintSheet”:
1. Til hver valgt items (certifikattyper)i ListBox2 er der knyttet 3 forskellige priser dvs ListPrice – DirectPrice og NetPrice. Ingen af priserne er at se i ListBox2 ell ListBox1, her er kun tekstbeskrivelse af de forskellige certifikater. Min RowSource til ListBox1 er at finde på arket ”Certificates”, hvor hver CertificateType” er vist i kolonne A i navngiven Range "AvailableCertificates". Tilhørende ”ListPrice” er i kolonne B, ”DirectPrice” i kolonne C og ”NetPrice” i kolonne D. Ønsket nr. 1 er altså at der på arket ”PrintSheet” vises hvilke certifikater der blev valgt fra ListBox1 over i ListBox2 samt at der nu udfra hver certifikattype fremstår de tre priser efter hinanden dvs i de efterfølgende kolonner.
(har svært ved at se hvorledes man vil kunne vise tilhørende priser vha Index eller Vlookup hvis antallet af valgte certifikater varierer !)
2. Da der i ListBox2 foreløbig kan stå alt fra 1 til 12 valgte certifikattyper skal der på arket ”PrintSheet” kunne tages højde for de varierende antal rækker der gerne skulle fremstå under hinanden lige som på en faktura. Vil det være en ide at lave navngivne områder for at holde styr på de forskellige certifikater og priser ?
Bemærkninger.
- Properties for ListBox1 og ListBox2 er sat SingleSelect !
- Sådan refereres til RowSource:
Sub ShowDialog()
' Tilføjer items til ListBox1
SelectionForm.ListBox1.RowSource = "Certifikater!" _
& Sheets("Certifikater").Range("A1").Address & ":" _
& Sheets("Certifikater").Range("A65536").End(xlUp).Address
End Sub
- Sådan overføres værdier fra ListBox1 til ListBox2:
Private Sub AddButton_Click()
ListBox2.AddItem ListBox1.Value
End Sub
- Kode til OK knap vil sandsynligvis kunne starte således:
Private Sub OkButton_Click()
Dim i As Integer
For i = 0 To ListBox2.ListCount - 1
If ListBox2.Selected(i) = True Then
????????
End If
Next i
????????
End Sub
Er der nogle som kan hjælpe ?
