Jeg har godt nok flyttet rundt på rækkefølgen men den kan jeg nu godt få til at virke med kun 4 cifre.
Rækkefølgen er rettet til:
Afdeling EP-nr. Kontonr.
VBA'en er rettet til:
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 Integer, 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
Afdeling EP Konto Tekst Beløb A 1 1000025678 Omp.oms. 100 A 2 2000 Omp.vk. 50 B 3 1010 Omp.oms. 57 A 3 2000 Omp.rab. 5 A 5 1010 Omp.oms. 4
så skal den være sådan
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 Integer, 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
Jeg tror ikke jeg fik forklaret mig helt godt nok.
Jeg kan ikke få funktionen til at virke med over 5 cifrede kontonumre
Altså som eksemplet nedenfor:
Afdeling EP Konto Tekst Beløb A 1 12345678 Omp.oms. 100 A 2 12345678 Omp.vk. 50 B 3 12345678 Omp.oms. 57 A 3 23456789 Omp.rab. 5 A 5 23456789 Omp.oms. 4
Function ListEPnr(KontoNr As Currency, Afdeling As String, Dataområde As Range) As String Dim EP As Variant, KO As Variant, Ens As Boolean, T As Integer, 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 Val(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 Currency, 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
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.