Avatar billede KingfisherDK Nybegynder
23. juni 2009 - 15:50 Der er 5 kommentarer

WeightWatchers formular

Jeg er ved at fremstille en VBA formular til min kæreste. Det drejer sig om at hun indtaster oplysninger om dato, mængden(gram, styk, skive osv.)og hvilken madvare hun har spist. Madvare listen ændrer sig alt efter hvilken hovedgruppe hun vælger fra. Programmet returnerer så de valgte oplysninger til en dagbog i et andet ark som her:
Dato:                  Hovedgruppe:      Madvare:      Mængde    Point:
21. juni 2009    Chokolade & slik  Flødebolle    5   

http://www.kingfisherweb.dk/Galleri/displayimage.php?album=34&pos=3
Nu er sagen bare den, at til den liste med de enkelte madvarer knytter der sig et point antal til hver eneste madvare. Det point tal vil jeg også gerne automatisk have overført til en seperat kolonne i dagbogen, når hun vælger en madvare.
Er der nogle der kan hjælpe mig videre med denne opgave?   

Her er nogle af procedurerne:

Private Sub cmdAnnuller_Click()
    Unload Me
End Sub

Private Sub cmdGem_Click()
    If txtDato.Text = "" Then
        MsgBox "Du skal angive en dato."
        txtDato.SetFocus
        Exit Sub
    End If
   
    If txtMængde.Text = "" Then
        MsgBox "Du skal angive en mængde."
        txtMængde.SetFocus
        Exit Sub
    End If
   
    If lstHovedGruppe.Text = "Hovedgrupper" Then
        MsgBox "Du skal angive en hovedgruppe."
        lstHovedGruppe.SetFocus
    End If
   
    If lstMad.Text = "" Then
        MsgBox "Du skal angive en madvare."
        lstMad.SetFocus
    End If
   
    Worksheets("Dagbog").Activate
    Range("A2").Select
    If Range("A2").Value = "" Then
        Range("A2").Activate
    Else
        Range("A2").CurrentRegion.Select
        ActiveCell.Offset(Selection.Rows.Count, 0).Activate
    End If
    With ActiveCell
        .Value = txtDato.Text
        .Offset(0, 1).Value = lstHovedGruppe.Text
        .Offset(0, 2).Value = lstMad.Text
        .Offset(0, 3).Value = txtMængde.Text
    End With
End Sub

Private Sub lstHovedGruppe_Click()
    If lstHovedGruppe.Value = "Brød & brødprodukter" Then
        With lstMad
            .RowSource = "Brød"
            .ListIndex = 0
        End With
       
    ElseIf lstHovedGruppe.Value = "Chokolade & slik" Then
        With lstMad
            .RowSource = "Chokolade"
            .ListIndex = 0
        End With
    End If
End Sub

Private Sub UserForm_Activate()
    txtDato.Text = Format(Now, "dd. mmmm yyyy")
   
    With lstHovedGruppe
        .RowSource = "Hovedgrupper"
        .ListIndex = 0
    End With
End Sub

Jeg bruger Vista Home Premium og VBA 6.5 i Excel 2007
Avatar billede lerskov Praktikant
23. juni 2009 - 21:28 #1
Hej du..

Er vi ikke ude i noget med at hvis hun har brugt madvaren før skal den komme op med antal point, hvis den er nu skal hun taste pointene for denne varer, som såvil være der næste gang?
Avatar billede KingfisherDK Nybegynder
24. juni 2009 - 17:30 #2
Hej Lerskov

Nej det er ikke rigtig forstået.
Jeg vil bare gerne lave en formular, hvor det eneste hun skal vælge er en vilkårlig fødevare og mængden af den, hvorefter programmet returnerer det valgte + de point der står i listen ud for den valgte fødevare. Det er for at gøre det nemt for hende, så hun ikke skal slå hver eneste fødevare op i et hæfte, for at finde pointtallet og at skrive dem i dagbogen.

Med venlig hilsen
Avatar billede lerskov Praktikant
24. juni 2009 - 23:16 #3
Du vil altså bare have alle de mad varer der findes i listen (et ark) ind i listboxen. Så kun han vægle der??

Vil du have delt det op i hovedgrupper?
Avatar billede KingfisherDK Nybegynder
25. juni 2009 - 05:45 #4
Ja, det er meningen.
Kan man egentlig bruge Excels indbyggede formler, som f.eks. "LOPSLAG" i VBA?
Avatar billede lerskov Praktikant
25. juni 2009 - 14:08 #5
Man kan vist godt, men det er nemmere at lave det som et Array() og så slå op i det. kna du evt. sende en kopi af dit ark, så kan jeg kígge på det!

Anders.lerskov (a) gmail.com
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester