Avatar billede tvc Seniormester
11. maj 2005 - 16:00 Der er 6 kommentarer og
1 løsning

Function ListEPnrSum(KontoNr As Integer, KontoOmråde As Range)

Tillægsspg. til spg.:

http://www.eksperten.dk/spm/597298

Det virker med As Long og CLng - nu kan jeg anvende mere end 5 cifre, men nu har jeg problemet, at hvis der er flere posteringer bliver EPnr ikke vist i mit dataark.

Før blev posteringerne rigtigt nok adskilt med komma, men nu viser den ingenting, hvis der som sagt er flere posteringer. Hvad skal rettes? VBA'en ser således ud nu:


Function ListEPnr(KontoNr As Long, Afdeling As String, Dataområde As Range) As String
Dim EP As Variant, KO As Variant, Ens As Boolean, T As Long, A As Variant
KO = Dataområde

For i = 1 To UBound(KO)
Ens = False
    If KO(i, 3) = KontoNr And KO(i, 1) = Afdeling Then
        A = Split(ListEPnr, ",")
       
        For T = 0 To UBound(A)
            If CLng(A(T)) = KO(i, 2) Then
              Ens = True
            End If
        Next T
       
        If Ens = False Then
            ListEPnr = ListEPnr & KO(i, 2) & ","
        End If
      End If
Next i
ListEPnr = Left(ListEPnr, Len(ListEPnr) - 1)
End Function

Function ListEPnrSum(KontoNr As Long, Afdeling As String, Dataområde As Range)
Dim KO As Variant
KO = Dataområde
For i = 1 To UBound(KO)
    If KO(i, 3) = KontoNr And KO(i, 1) = Afdeling Then
  ListEPnrSum = ListEPnrSum + KO(i, 5)
    End If
Next i
End Function



Mvh. TVC
Avatar billede bak Forsker
11. maj 2005 - 19:16 #1
her er en variant.
kan samme ep-nr forekomme flere gange?

Function ListEPnr(konto As Variant, afd As Variant, rng As Range) As Variant
Dim vaTemp As Variant
Dim strEP As String
Dim i As Long
  On Error GoTo GetOut
  vaTemp = rng
  For i = 1 To UBound(vaTemp, 1)
      If vaTemp(i, 3) = konto And vaTemp(i, 1) = afd Then strEP = strEP & CStr(vaTemp(i, 2)) & ","
  Next
  If Len(strEP) > 0 Then ListEPnr = Left(strEP, Len(strEP) - 1) Else GoTo GetOut
  Exit Function
GetOut:
  ListEPnr = CVErr(xlErrNA)
End Function
Avatar billede bak Forsker
11. maj 2005 - 19:25 #2
hvis ep-nr kun må forekomme een gang så kan denne bruges

Function ListEPnr(konto As Variant, afd As Variant, rng As Range) As Variant
Dim vaTemp As Variant
Dim strEP As String
Dim i As Long
  On Error GoTo GetOut
  vaTemp = rng
  For i = 1 To UBound(vaTemp, 1)
      If vaTemp(i, 3) = konto And vaTemp(i, 1) = afd Then
        If Not InStr(strEP, vaTemp(i, 2) & ",") > 0 Then strEP = strEP & CStr(vaTemp(i, 2)) & ","
      End If
  Next
  If Len(strEP) > 0 Then ListEPnr = Left(strEP, Len(strEP) - 1) Else GoTo GetOut
  Exit Function
GetOut:
  ListEPnr = CVErr(xlErrNA)
End Function
Avatar billede tvc Seniormester
12. maj 2005 - 12:32 #3
Du er genial, bak!
Tusind tak - det fungerer!

Mvh. TVC
Avatar billede tvc Seniormester
12. maj 2005 - 13:07 #4
BAK - Sender du et svar?
Avatar billede bak Forsker
12. maj 2005 - 14:49 #5
jo, hvilken en af dem brugte du ?
Avatar billede bak Forsker
12. maj 2005 - 14:49 #6
:-)
Avatar billede tvc Seniormester
12. maj 2005 - 18:56 #7
Jeg brugte variant nr. 1

mvh. TVC
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