Avatar billede Klaus W Ekspert
07. august 2018 - 10:29 Der er 5 kommentarer og
1 løsning

Læg værdi i dublet sammen

JHej
Jeg har kikke på denne løsning i

https://www.computerworld.dk/eksperten/spm/439761?k=4115719

Og er lige noget jeg kan bruge, dog med to ændringer, hvis det kan lade sig gøre.

1 Kan det gøres over 3 kolonner i stedet for 2, kolonne A og B som henholdsvis vare nummer og vare art. og kolonne C som antal.

2. at overføre disse data fra A,B og C til næste ARK.

Venlig hilsen

KW
Avatar billede kabbak Professor
10. september 2018 - 19:49 #1
Option Base 1
Sub TælSammen()


    Dim A As Integer, B As Integer, Data As Variant, Res() As Variant
    Dim Gem As String
    B = Range("A65536").End(xlUp).Row    ' finder sidste række med data
    Data = Range("A1:C" & B)    ' Dublerende kolonne A , Vareart kolonne B og antal kolonne C
    ReDim Res(B, 3)    ' dim en tom variabel til resultat

            ' overskrifter
            Res(1, 1) = Data(1, 1)
            Res(1, 2) = Data(1, 2)
            Res(1, 3) = Data(1, 3)
            ' overskrifter slut
           
    For T = 2 To UBound(Data)
        For i = 2 To UBound(Res)
            If Res(i, 1) = Data(T, 1) And Res(i, 2) = Data(T, 2) Then
                Res(i, 3) = Res(i, 3) + Data(T, 3)
                GoTo Næste
            End If
           
            If Res(i, 1) = "" Then
                Res(i, 1) = Data(T, 1)
                Res(i, 2) = Data(T, 2)
                Res(i, 3) = Res(i, 3) + Data(T, 3)
                GoTo Næste
            End If
        Next
Næste:
    Next
  ' Vælg gemme ark

  Worksheets("Ark2").Range("A1:C" & B) = Res      'Skriver i A og D kolonnen
    'Range("A1:B" & B) = Res '  A, B og C kolonnen i valgt ark
End Sub
Avatar billede Klaus W Ekspert
11. september 2018 - 09:04 #2
Hej kabbak

Jeg tror jeg fik udtrykt mig total dårlig. Koden virker men jeg har vist ikke fået det ordentligt forklaret hvor i mit problem ligger.

i kolonne B har jeg vare art. stående og i kolonne E antal, det er disse værdiger jeg kunne tænke mig blev flytter til kolonne J og K på samme ARK. Lagt dubletteren sammen fra kolonne B, som den nuværende kode gør, og så lægge tallene fra kolonne E sammen.

Jeg håber det var en bedre forklaring.

Kw
Avatar billede kabbak Professor
11. september 2018 - 10:36 #3
Option Base 1
Sub TælSammen()

    Dim A As Integer, B As Integer, Data As Variant, Res() As Variant
    Dim Gem As String
    B = Range("B65536").End(xlUp).Row    ' finder sidste række med data
    Data = Range("B1:C" & B)    ' Dublerende kolonne A , Vareart kolonne B og antal kolonne C
    ReDim Res(B, 2)    ' dim en tom variabel til resultat

            ' overskrifter
            Res(1, 1) = Data(1, 1)
            Res(1, 2) = Data(1, 2)
            ' overskrifter slut
           
    For T = 2 To UBound(Data)
        For i = 2 To UBound(Res)
            If Res(i, 1) = Data(T, 1) Then
                Res(i, 2) = Res(i, 2) + Data(T, 2)
                GoTo Næste
            End If
           
            If Res(i, 1) = "" Then
                Res(i, 1) = Data(T, 1)
                  Res(i, 2) = Res(i, 2) + Data(T, 2)
                GoTo Næste
            End If
        Next
Næste:
    Next

Range("J1:K" & B) = Res      'Skriver i J og K kolonnen
End Sub
Avatar billede Klaus W Ekspert
11. september 2018 - 11:33 #4
Hej, kan ikke rigtig forstå det, koden tager stadig antallet fra kolonne C hvor jeg skal bruge at den tager det fra kolonne E. Der er et antal i kolonne C og D men dem skal jeg ikke have med over.

KW
Avatar billede kabbak Professor
11. september 2018 - 11:45 #5
Option Base 1
Sub TælSammen()


    Dim A As Integer, B As Integer, Data As Variant, Res() As Variant
    Dim Gem As String
    B = Range("B65536").End(xlUp).Row    ' finder sidste række med data
    Data = Range("B1:E" & B)    ' Dublerende kolonne A , Vareart kolonne B og antal kolonne C
    ReDim Res(B, 2)    ' dim en tom variabel til resultat

            ' overskrifter
            Res(1, 1) = Data(1, 1)
            Res(1, 2) = Data(1, 4)
            ' overskrifter slut
           
    For T = 2 To UBound(Data)
        For i = 2 To UBound(Res)
            If Res(i, 1) = Data(T, 1) Then
                Res(i, 2) = Res(i, 2) + Data(T, 4)
                GoTo Næste
            End If
           
            If Res(i, 1) = "" Then
                Res(i, 1) = Data(T, 1)
                  Res(i, 2) = Res(i, 2) + Data(T, 4)
                GoTo Næste
            End If
        Next
Næste:
    Next

Range("J1:K" & B) = Res      'Skriver i J og K kolonnen
End Sub
Avatar billede Klaus W Ekspert
11. september 2018 - 12:09 #6
1000 tak for hjælpen det var lige den nød jeg ikke kunne knække :-)

KW
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