Avatar billede tvc Seniormester
13. marts 2005 - 16:23 Der er 8 kommentarer og
1 løsning

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

Tillægsspg. til spg.:

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

Er der nogle der ved hvorfor funktionen ikke kan virke med 6 eller flere cifre i kontonr.?

MVH.
TVC
Avatar billede kabbak Professor
13. marts 2005 - 16:32 #1
prøv at lave
If Val(A(T)) = KO(i, 1) Then

om til

If CLng(A(T)) = KO(i, 1) Then
Avatar billede kabbak Professor
13. marts 2005 - 16:34 #2
du skal også ændre

Function ListEPnr(KontoNr As Integer, Afdeling As String, Dataområde As Range) As String

til
Function ListEPnr(KontoNr As long, Afdeling As String, Dataområde As Range) As String
Avatar billede tvc Seniormester
13. marts 2005 - 18:58 #3
Den kan jeg ikke få til at virke.

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

MVH. TVC
Avatar billede kabbak Professor
13. marts 2005 - 20:15 #4
har du rettet på dataområdet, ser det ikke sådan ud mere


EP nr.    Konto  Afdeling  Tekst      Beløb
1          1010    A          Omp. oms.  100
2          2000    A          Omp. vk.    50
3          1010    B          Omp. oms.    57
4          1050    B          Omp. rab.    5     
5          1010    A          Omp. oms.    4
Avatar billede kabbak Professor
13. marts 2005 - 20:37 #5
jeg forstår at dine data ser sådan ud nu

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
Avatar billede tvc Seniormester
13. marts 2005 - 23:05 #6
Hej kabbak

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


MVH. TVC
Avatar billede kabbak Professor
13. marts 2005 - 23:19 #7
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
Avatar billede tvc Seniormester
10. april 2005 - 13:14 #8
Hej kabbak

Beklager den lange svartid. Jeg har fået testet dine rettelser til VBA'en og det virker perfekt!!!!

TAK

TVC

P.S. Sender du et svar?
Avatar billede kabbak Professor
10. april 2005 - 19:13 #9
Et svar ;-))
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

IT-JOB

Politiets Efterretningstjeneste

Teamleder til Center for CNE-operationer

Politiets Efterretningstjeneste

GenAI Specialist i PET

Kræftens Bekæmpelse

IT-driftsleder