Avatar billede mrkr Juniormester
26. oktober 2014 - 20:04 Der er 4 kommentarer og
1 løsning

VBA - Lave liste med tal der står i specifik kolonne

Jeg har et ark med tal /kontonumre I kolonne A.
I kolonne N har jeg nogle tal fra 1-50. Kolonnen er som oftest tom, men hvis jeg ønsker at flere kontonumre skal I same gruppe indtaster jeg et tal I kolonne N.
Nu vil jeg meget gerne have en kode der løber igennem kolonne N og lister hvilke kontonumre der star i same gruppe. (Kontonr. Står I kolonne A)

Arket kan se således ud:
Kol A  Kol N   
1000  1     
1001 
1002  1
1003  1
1004  2
1005  1
1006  2
1007 
1008  2
1009
1010

Det jeg godt kunne  tænke mig er at arket ser således ud defter koden er kørt

Kol A    Kol N    Kol Q
1000  1              1000, 1002,1003, 1005
1001 
1002  1              1000, 1002,1003, 1005
1003  1              1000, 1002,1003, 1005
1004  2              1004, 1006, 1008
1005  1              1000, 1002,1003, 1005
1006  2              1004, 1006, 1008
1007 
1008  2              1004, 1006, 1008
1009
1010
Avatar billede kabbak Professor
26. oktober 2014 - 22:33 #1
Public Sub FindKonto()
    Dim Data As Variant, Gruppe As Variant, UdData As Variant, X As Integer, I As Integer, V As String
    Data = Range([Ark1].[a2], [Ark1].[a2].End(xlDown))
    Gruppe = Range([Ark1].[N2], [Ark1].Cells([Ark1].[a2].End(xlDown).Row, "N"))
    ReDim UdData(UBound(Data))
    For I = 1 To UBound(Data)
        If IsEmpty(Gruppe(I, 1)) Then    ' der er kun 1 i denne gruppe
            UdData(I) = Data(I, 1)
            Data(I, 1) = Empty
        End If
    Next

    For I = 1 To UBound(Data)
    V = Data(I, 1)
   
        For X = 1 To UBound(Data)

            If Not IsEmpty(Data(I, 1)) Then
                If Gruppe(I, 1) = Gruppe(X, 1) Then
                    UdData(X) = UdData(X) & V & ","
                End If
            End If
        Next X
        Data(I, 1) = Empty
    Next I
[Ark1].[q2].Resize(UBound(UdData), 1) = Application.WorksheetFunction.Transpose(UdData)
End Sub
Avatar billede mrkr Juniormester
27. oktober 2014 - 11:15 #2
Hej Kabbak

Nu har jeg testet den i mit system, men kan ikke få den til at virke.

Hvis jeg indsætter den i et alm. modul, kører den koden igennem uden at der sker noget i arket og uden af den melder fejl.

Hvis jeg indsætter den i arkets kodemodul får jeg følgende fejl:
Runtime error '1004'
Application-defined or objekt defined error.

Men den viser mig ikke yderligere, hvor det er gået galt.
Er det fordi jeg mangler  at installere et plugin eller noget.

Mit ark hvor koden kører hedder "TEMP1"
Jeg har forsøgt at rette nanvet i koden, men det kunne jeg ikke få til at virke.
Avatar billede kabbak Professor
27. oktober 2014 - 11:38 #3
Der manglede den 1. linje, koden skal i et modul

Ark1 skal rettes til det navn der står til venstre for dit kaldte arknavn, hvis du har engelsk version, hedder det "Sheet" og så et tal.
Du kan se det i kodemodulet

Kode:

Option Base 1
Public Sub FindKonto()
    Dim Data As Variant, Gruppe As Variant, UdData As Variant, X As Integer, I As Integer, V As String
    Data = [Ark1].Range([Ark1].[a2], [Ark1].[a2].End(xlDown))
    Gruppe = [Ark1].Range([Ark1].[N2], [Ark1].Cells([Ark1].[a2].End(xlDown).Row, "N"))
    ReDim UdData(UBound(Data))
    For I = 1 To UBound(Data)
        If IsEmpty(Gruppe(I, 1)) Then    ' der er kun 1 i denne gruppe
            UdData(I) = Data(I, 1)
            Data(I, 1) = Empty
        End If
    Next

    For I = 1 To UBound(Data)
    V = Data(I, 1)
   
        For X = 1 To UBound(Data)

            If Not IsEmpty(Data(I, 1)) Then
                If Gruppe(I, 1) = Gruppe(X, 1) Then
                    UdData(X) = UdData(X) & V & ","
                End If
            End If
        Next X
        Data(I, 1) = Empty
    Next I
[Ark1].[q2].Resize(UBound(UdData), 1) = Application.WorksheetFunction.Transpose(UdData)
End Sub
Avatar billede mrkr Juniormester
27. oktober 2014 - 13:29 #4
Jeps.
Så gør den lige det den skal.
Denne kode skal nok give mig en nemmere hverdag.
Mange tak for hjælpen.

Vil du give et svar, så jeg kan afgive point.
Avatar billede kabbak Professor
27. oktober 2014 - 15:17 #5
;-))
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

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

Udviklings- og Forenklingsstyrelsen

IAM-medarbejder

VikingGenetics

Data Engineer

Udviklings- og Forenklingsstyrelsen

Systemejer til nyudviklede systemer