In listbox getallen uitlijnen

Status
Niet open voor verdere reacties.

hellboy01

Gebruiker
Lid geworden
18 jun 2006
Berichten
333
Beste Helpmij VBA-ers,

Ik heb een listbox met daarin regels tekst met aan het eind van elke tekst een bedrag.
Nu krijg ik het niet voor elkaar om de bedragen onder elkaar uitgelijnd te krijgen. Nu dacht ik om de tekst in de eerste kolom te doen van de listbox en de getallen in de tweede kolom om ze zo uit te lijnen, ,maar ik heb geen flauw idee hoe je die moet benaderen. Als jullie wat tips voor mij hebben zou ik daar heel blij mee zijn.

bedankt rob

Code:
'*** vullen listbox met bestelling ***
lstOrder.Clear

'*** IJs
lstOrder.AddItem ("U heeft besteld:")
lstOrder.AddItem ("")
lstOrder.AddItem ("IJs:")
lstOrder.AddItem (" " & aantalIJsbol & " " & bol & ijsSmaak & "       " & FormatCurrency(prijsIJs))
lstOrder.AddItem ("")
'***Toppings***
If prijsToppingTotaal > 0 Then
    If chkHotfudge.Value = True Then
        lstOrder.AddItem (aantalIJsbol & " hot fudge = " & FormatCurrency(prijsToppingFudge))
    End If
    
    If chkslagroom.Value = True Then
        lstOrder.AddItem (aantalIJsbol & " slagroom = " & FormatCurrency(prijsToppingSlagroom))
    End If
    
    If chkSprinkles.Value = True Then
        lstOrder.AddItem (aantalIJsbol & " sprinkels = " & FormatCurrency(prijsToppingSprinkels))
    End If
            
    'lstOrder.AddItem ("toppingtotaal =     " & FormatCurrency(prijsToppingTotaal))
End If

'***souvenier***
If prijsSouvenier > 0 Then
    lstOrder.AddItem (" Souvenier lepel      " & FormatCurrency(prijsSouvenier))
End If

'***fooi****
lstOrder.AddItem ("fooi wordt " & "                    " & FormatCurrency(fooitje))

lstOrder.AddItem ("")
lstOrder.AddItem ("Prijs totaal wordt " & "                     " & FormatCurrency(prijsIJsTotaal))
lstOrder.AddItem ("")
lstOrder.AddItem (" Dank voor uw bestelling.")

End Sub
Bekijk bijlage IceCreamShop.xlsm
 
Stel 'Boundcolumn' in op 0.
Stel 'Columncount' in op 1.
Code:
'*** IJs
lstOrder.AddItem "U heeft besteld:"
lstOrder.AddItem ""
lstOrder.AddItem ("IJs:")
[COLOR=#ff0000]lstOrder.AddItem " " & aantalIJsbol & " " & bol & ijsSmaak[/COLOR]
[COLOR=#ff0000]lstOrder.List(lstOrder.ListCount - 1, 1) = FormatCurrency(prijsIJs)[/COLOR]
lstOrder.AddItem ("")
'***Toppings***
If prijsToppingTotaal > 0 Then
    If chkHotfudge.Value = True Then
[COLOR=#ff0000]        lstOrder.AddItem aantalIJsbol & " Hot fufge"[/COLOR]
[COLOR=#ff0000]        lstOrder.List(lstOrder.ListCount - 1, 1) = FormatCurrency(prijsToppingFudge)[/COLOR]
    End If

Enz. enz.
 
Om op je vraag te antwoorden.
Stel bij de eigenschappen van je ListBox ColumnCount in op 2 en pas de kolombreedtes aan bij ColumnWidths.
Zowel rij als kolom hebben in een Listbox een beginindex 0. Hou er dus rekening mee dat je rij 1 benadert als index 0 en kolom 1 ook als index 0.
 

Bijlagen

Jongens , bedankt voor de hulp.

Rudi heel erg bedankt voor de aanpassingen.

Ik vind dat IIF wel een heel mooie constructie, kort en efficient, lijkt heel erg op de if constructie van excel zelf. Ik ga dit zeker bestuderen en vaker gebruiken.
En voor de With end With constructie , ik wist niet dat je binnen de With ook met een if statement kon werken en dat die dan zo groot konden worden , echt mooi gedaan, dit ga ik zeker gebruiken. :thumb:

Ik heb ook geprobeerd een Case select statement te maken voor mijn optionbuttons en mijn checkboxes ipv de huidige If statements, maar ik kreeg dat niet voor elkaar . Volgens mij zijn het allebei toch Boolean operators, weet jij mischien een manier om dat wel werkend te krijgen, maar lieft tips en hints ik wil het zelf graag zien uit te vogelen.

groetjes rob
 
Laatst bewerkt:
Een begin om wat uit te vogelen.
Code:
dim ctl as control
for each ctl in controls
if typename(ctl) = "CheckBox" or typename(ctl) = "OptionButton" then msgbox typename(ctl)
next
Succes.
 
Je controls een toepasselijke naam geven zoals in de boekjes beschreven wordt is mooi maar programmatorisch een kleine nachtmerrie.
In bijlage je controls hun eigen naam gegeven zodat er met loops kan gewerkt worden.
 

Bijlagen

Laatst bewerkt:
Ik vind het wel een vermetel con(re)cept: een verplichte fooi (contradictio in terminis)

Code:
Private Sub UserForm_Initialize()
     sn = Split("Vanille Chocola Aardbei hotfudge slagroom sprinkels souvenir-lepel ")
     sp = Split("0.75 1.00 1.25 0.40 0.25 0.15 4.00 0.15")
    
     For j = 0 To 6
        Me("Y_" & j).Caption = sn(j) & " € " & sp(j) & IIf(j < 3, " p/bol", "")
     Next
     
     C_00.List = [row(1:30)]
End Sub

Private Sub C_00_Change()
    btnOrder.Visible = C_00.ListIndex <> -1
End Sub
 
Hahaha @snb, en daar dan ook nog btw over heffen :evil:
Mooie code , ik ga dat Split eens opzoeken . Ik ben nog steeds bezig over dat 0 en -1 verhaal van jouw , is me toch niet helemaal duidelijk. Zijn dat logische operatoren of zie ik dat verkeerd.

@ Warme bakkertje, ziet er mooi uit , ik ga dat vanavond even bestuderen hoe jouw loops werken.

Bedankt jongens ik leer hier heel veel van.:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan