Avatar billede kgndksv Juniormester
18. februar 2008 - 00:59 Der er 5 kommentarer og
1 løsning

Hvorfor udskriver denne det samme og ikke skifter ved ix

Er ved at bygge videre på en sub jeg ikke selv har lavet, men jeg har et problem!

problemet er at den udskriver (til ark) samme række x antal gange, selvom den egentlig skulle udskrive én række pr. sælger og så skifte til næste sælger - Tror det er et sted der hvor jeg fylder arrayet, men kan sku ikke gennemskue det!

------------------------------------------------------------

Sub prøve()
Workbooks("outboundny3udg.xls").Worksheets("Sælger").Activate
    antalRÆKsælger = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row - 1


ReDim sælgerstatarray(antalRÆKsælger - 1, 8)
Call nulstilsælgerarray
Call optælsælgerstat
Call udskriftsælgerstat
Workbooks("outboundny3udg.xls").Worksheets("Sælgerstat").Activate

End Sub
Private Sub nulstilsælgerarray()
Dim ix As Integer

Workbooks("outboundny3udg.xls").Worksheets("Sælger").Activate
    antalRÆKsælger = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row - 1



    For ix = 0 To antalRÆKsælger - 1
        sælgerstatarray(ix, 0) = ""                      'sælger-init
        sælgerstatarray(ix, 1) = 0                        'antal skema
        sælgerstatarray(ix, 2) = 0                        'antal prod
        sælgerstatarray(ix, 3) = 0                        'Antal abn
        sælgerstatarray(ix, 4) = 0                        'antal lån
        sælgerstatarray(ix, 5) = 0                        'antal tele
        sælgerstatarray(ix, 6) = 0                        'lånomsæt
        sælgerstatarray(ix, 7) = 0                        'øvrigomsæt
        sælgerstatarray(ix, 8) = 0                        'totalomsæt
    Next ix
End Sub



Private Sub optælsælgerstat()
Dim sælger, skema, prod, abn, lån, tele, lånomsæt, øvrigomsæt, totalomsæt
Dim ræk As Integer, antalRÆKsælger
 
Workbooks("outboundny3udg.xls").Worksheets("Sælger").Activate
    antalRÆKsælger = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row - 1

antalSælgere = 0
   
    For ræk = 2 To antalRÆKsælger
        sælger = Cells(ræk, 1)
        skema = Cells(ræk, 2)
        prod = Cells(ræk, 3)
        abn = Cells(ræk, 4)
        lån = Cells(ræk, 5)
        tele = Cells(ræk, 6)
        lånomsæt = Cells(ræk, 7)
        øvrigomsæt = Cells(ræk, 8)
        totalomsæt = Cells(ræk, 9)
       
        sælgerstat sælger, skema, prod, abn, lån, tele, lånomsæt, øvrigomsæt, totalomsæt
    Next ræk
End Sub

Private Sub sælgerstat(sælger, skema, prod, abn, lån, tele, lånomsæt, øvrigomsæt, totalomsæt)
Dim ix As Integer, antalRÆKsælgerprøve As Integer




Workbooks("outboundny3udg.xls").Worksheets("Sælger").Activate
    antalRÆKsælgerprøve = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row - 1
   
ReDim sælgerstatarray(antalRÆKsælgerprøve, 8)
    For ix = 0 To antalRÆKsælgerprøve - 1



     
        If sælgerstatarray(ix, 0) = "" Then
            sælgerstatarray(ix, 0) = sælger
            sælgerstatarray(ix, 1) = skema
            sælgerstatarray(ix, 2) = prod
            sælgerstatarray(ix, 3) = abn
            sælgerstatarray(ix, 4) = lån
            sælgerstatarray(ix, 5) = tele
            sælgerstatarray(ix, 6) = lånomsæt
            sælgerstatarray(ix, 7) = øvrigomsæt
            sælgerstatarray(ix, 8) = totalomsæt

'            Debug.Print sælgerstatarray(0, 0)
'            Debug.Print sælgerstatarray(1, 0)

            antalSælgere = antalSælgere + 1


    End If
Next ix

End Sub

Private Sub udskriftsælgerstat()
Dim rRæk, sælger As Integer, antalRÆKsælgerprøve1 As Integer

   
Workbooks("outboundny3udg.xls").Worksheets("Sælger").Activate
    antalRÆKsælgerprøve1 = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row - 1
    rRæk = 2
 
    For sælger = 0 To antalRÆKsælgerprøve1 - 1

With Workbooks("outboundny3udg.xls").Worksheets("Sælgerstat")
        .Cells(rRæk, 1) = sælgerstatarray(sælger, 0)  'Sælgernavn
        .Cells(rRæk, 2) = sælgerstatarray(sælger, 1)  'Skema
        .Cells(rRæk, 3) = sælgerstatarray(sælger, 2)  'prod
        .Cells(rRæk, 4) = sælgerstatarray(sælger, 3)  'abn
        .Cells(rRæk, 5) = sælgerstatarray(sælger, 4)  'lån
        .Cells(rRæk, 6) = sælgerstatarray(sælger, 5)  'tele
        .Cells(rRæk, 7) = sælgerstatarray(sælger, 6)  'lånomsæt
        .Cells(rRæk, 8) = sælgerstatarray(sælger, 7)  'øvrigomsæt
        .Cells(rRæk, 9) = sælgerstatarray(sælger, 8)  'totalomsæt
       
End With
        rRæk = rRæk + 1
    Next sælger
End Sub
Avatar billede japping Nybegynder
18. februar 2008 - 07:52 #1
Jeg ved ikke hvad linien

antalRÆKsælger = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row - 1

gør, men prøv f.eks. at sætte

antalRÆKsælger = 10
Avatar billede japping Nybegynder
18. februar 2008 - 07:53 #2
Og vendt tilbage med resultatet.
Avatar billede supertekst Ekspert
18. februar 2008 - 09:11 #3
Jeg tror hovedproblemet er her:

Private Sub sælgerstat(sælger, skema, prod, abn, lån, tele, lånomsæt, øvrigomsæt, totalomsæt)
Dim ix As Integer, antalRÆKsælgerprøve As Integer

'Workbooks("outboundny3udg.xls").Worksheets("Sælger").Activate
'    antalRÆKsælgerprøve = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row - 1
   
'ReDim sælgerStatArray(antalRÆKsælgerprøve, 8)
    For ix = 0 To antalRækSælger - 1 'prøve - 1
     
        If sælgerStatArray(ix, 0) = "" Then
            sælgerStatArray(ix, 0) = sælger
            sælgerStatArray(ix, 1) = skema
            sælgerStatArray(ix, 2) = prod
            sælgerStatArray(ix, 3) = abn
            sælgerStatArray(ix, 4) = lån
            sælgerStatArray(ix, 5) = tele
            sælgerStatArray(ix, 6) = lånomsæt
            sælgerStatArray(ix, 7) = øvrigomsæt
            sælgerStatArray(ix, 8) = totalomsæt

'            Debug.Print sælgerstatarray(0, 0)
'            Debug.Print sælgerstatarray(1, 0)

            antalSælgere = antalSælgere + 1
            Exit Sub                        '<---------------------
    End If
Next ix
Avatar billede kgndksv Juniormester
18. februar 2008 - 12:31 #4
@ Japping - Den angiver hvor mange rækker der er i et ark - Den virker korrekt.
Hvis jeg sætter den = 10 udskriver den ingenting.


@ Supertekst - Ja... det er jo din sub jeg har roddet lidt med... (Uden held!)

'ReDim sælgerstatarray(antalRÆKsælgerprøve, 8) og Exit sub - det var lige det! :-)

Tak endnu engang! - Når du siger hovedproblemet er det så fordi at det simpelthen er dårligt lavet?? eller er der nogle andre problemer? Bare send et svar!
Avatar billede supertekst Ekspert
18. februar 2008 - 14:24 #5
Selv tak.

"Hovedproblemet" - var ment som forklaring til gentagelsen.

Der vil være nogle gentagelser, som du kunne udgå - hvis du flyttede koden op foran den første Sub - så ville variablerne nemlig være Globale - f.eks.:
beregning af antalrækker. Ligeledes kunne andre udtryk forenkles - men det vigtigste i første omgang - er at det fungere.
Avatar billede kgndksv Juniormester
18. februar 2008 - 17:10 #6
Jamen det med global variabler havde jeg fanget, men ville lige prøv at køre den selvstændigt derfor lavede jeg Sub'en "Prøve" - Men tusind tak for hjælpen endnu endnu endnu engang! :-)
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