Avatar billede zalam Nybegynder
16. december 2009 - 18:59

Hopper meget mærkeligt i mellem ark!?

Nedestående er et udsnit af min kode.. Den kører fint lige ind til den når følgende:

            With valuta.ActiveSheet
                            ant_valuta = .UsedRange.Rows.Count -2
                     
                        For z = 0 To ant_valuta
                        If ISO = Range("b3").Offset(z, måned

Den tæller ant_valuta fint, til 33 rækker, men når jeg bruger ISO = er den på mærkværdigvis gået ind i et HELT andet ark og siger offsetværdien er lig med 100.. Hvilket absoult ikke passer..

Jeg har en større del af min kode neden for:


Call udregn_dk(salg, valuta)

'gemmer de udregnede tal
Workbooks(salgs_data_navne(x)).Close Savechanges:=True
Workbooks(valuta_data_navne(y)).Close Savechanges:=True
End If
'næste (fil i arrayet)
    Next
    'næste y (fil i arrayet)
        Next
       
'sletter arrayne
Erase salgs_data_navne
Erase valuta_data_navne

Workbooks("Kundevaluta").Close
Application.ScreenUpdating = True
End Sub


'denne sub udregner alle beløb til danske kroner
Private Sub udregn_dk(ByRef salg As Workbook, valuta As Workbook)

'denne store problemstilling her var at vi ikke kunne få vores ankerceller til at fungere, vi brugte ikke .range, men range()

Dim Kunder As Range
Dim KundeId As Integer

Dim i As Integer

Dim dato As Date
Dim måned As Integer
Dim omregnetbeløb As Currency
Dim ISO As Variant, ISO2 As Variant
Dim ArrValuta() As Variant
Dim arrAntHandler() As Variant
Dim arrKunder() As Variant
Dim h As Integer
Dim WB_kunder As Workbook
Dim kurs As String
Dim beløb_DKKR
Dim ant_valuta As Integer
Dim z As Integer
Dim beløb As Currency

With salg.ActiveSheet

'antal handler
arrAntHandler = Range("B2", Range("B2").End(xlDown))

End With

'finder antalkunder i arket kundevalutaer
Set WB_kunder = Workbooks.Open(ThisWorkbook.Path & "\Kundevaluta")

'finder antal kunder i alt og indlæser til array
arrKunder = Range("a2", Range("a2").End(xlDown))
ArrValuta = Range("b2", Range("b2").End(xlDown))

WB_kunder.Close

               
    With salg.ActiveSheet
   
        For i = LBound(arrAntHandler) To UBound(arrAntHandler)
       
        KundeId = .Range("B1").Offset(i, 0)
        dato = .Range("B1").Offset(i, -1)
        beløb = .Range("b1").Offset(i, 1)
    'tager det 4 ciffer, som er der måned er angivet og 2 cifre, dvs "01" til "12", ved "01" returneres 1
        måned = CInt(Mid(dato, 4, 2))

            For h = LBound(arrKunder) To UBound(arrKunder)
                  If KundeId = arrKunder(h, 1) Then
                      ISO = ArrValuta(h, 1)
                        End If
                        Next
                       
            With valuta.ActiveSheet
                            ant_valuta = .UsedRange.Rows.Count - 2
                     
                        For z = 0 To ant_valuta
                        If ISO = Range("b3").Offset(z, måned) Then
       
                          kurs = .Range("C3").Offset(0, måned)
                         
                          beløb_DKKR = beløb * kurs / 100
               
                            End If
                        Next
        End With

Next


End With

End Sub
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