Avatar billede szaabi Nybegynder
05. april 2010 - 18:31 Der er 3 kommentarer og
1 løsning

Visual Basic problem... Hjælp søges

Hey boys

Jeg har siddet de sidste par dage og forsøgt at lære noget VBA i Excel.

Opgaven er relativ simpel, jeg har følgende stående i mine kolonner

A              B            C              D           
Produktkode    Enhedspris  Min. køb        Rabat

Nu er opgaven at jeg skal indtaste en produktkode og antal styk der er købt. hvis styk antallet overstiger værdien skal rabatten fra kolonne D ganges på enhedsprisen.

Men mit problem starter lidt tidligere, da jeg simpelthen ikke kan få min kode til at fatte værdien af den celle jeg operer med.

her er min kode:

Sub prisdata()
 
    Dim produkt As String
    Dim pris As String
    Dim styk As Integer, i As Integer, rabat As Integer
    Dim AntalPK As Integer
    Dim Found As Boolean
    Found = False
    With Range("A3")
        AntalPK = Range(.Offset(1, 0), .End(xlDown)).Rows.Count
    End With
 
produkt = InputBox("Indtast produktkoden")
styk = InputBox("Hvor mange styks er der købt")
 
    With ActiveSheet.Range("A3")
        For i = 1 To AntalPK
            If .Offset(i, 0) = produkt Then
                Found = True
                    If .Offset(i, 2) <= styk Then
                    pris = (.Offset(i, 1).Value) And rabat = (.Offset(i, 3).Value) _
                    And MsgBox("prisen er " & pris & ".")
                    Else: pris = .Offset(i, 1).Value And MsgBox("Prisen er " & pris & ".")
                    End If
                Exit For
            End If
        Next
    End With 
End Sub

Det er linjerne :
pris = (.Offset(i, 1).Value) And rabat = (.Offset(i, 3).Value) _
And MsgBox("prisen er " & pris & ".")
Else: pris = .Offset(i, 1).Value And MsgBox("Prisen er " & pris & ".")

som jeg har problemet med. Er der nogen der kan se hvad jeg gør galt???

På forhånd tak :)
Avatar billede supertekst Ekspert
05. april 2010 - 20:25 #1
Prøv at sende arket - @-adr. under profil
Avatar billede szaabi Nybegynder
05. april 2010 - 22:09 #2
Og arket er hermed sendt afsted
Avatar billede supertekst Ekspert
06. april 2010 - 09:01 #3
Option Explicit
Sub prisdata()
   
    Dim produkt As String
    Dim pris As String
    Dim styk As Integer, i As Integer, rabat As Integer
    Dim AntalPK As Integer
    Dim Found As Boolean
    Found = False
    With Range("A3")
        AntalPK = Range(.Offset(1, 0), .End(xlDown)).Rows.Count
    End With
   
produkt = InputBox("Indtast produktkoden")
styk = InputBox("Hvor mange styks er der købt")
   
    With ActiveSheet.Range("a3")
        For i = 1 To AntalPK
            If .Offset(i, 0) = produkt Then
                Found = True
                    If .Offset(i, 2) <= styk Then
                        pris = (.Offset(i, 1).Value)        'Bemærk er TEKST - def. en variable PrisTal as Integer (hvis ingen decimaler)
                        rabat = (.Offset(i, 3).Value) * 100
                       
                        MsgBox ("prisen er " & pris & "kr.")
                    Else
                        pris = .Offset(i, 1).Value
                        MsgBox ("Prisen er " & pris & "kr.")
                    End If
                Exit For
            End If
        Next
    End With
End Sub
Avatar billede szaabi Nybegynder
06. april 2010 - 10:28 #4
tak for hjælpen... Simpelt men godt:)
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
Kurser inden for grundlæggende programmering

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