Avatar billede hpo Nybegynder
27. september 2007 - 15:13 Der er 4 kommentarer og
1 løsning

VBA - markering af data

Hej eksperter.

Jeg har et regneark med 2 faneblade. På ark1 er der en lang tabel med en masse varenumre og en pris (måske 500 rækker), og på ark2 er der et udsnit - f.eks, 20 varenumre med tilhørende pris. Dette tal kan variere mellem 0 og det antal varelinjer der er på ark1.

Jeg ønsker at markere alle de linjer med varenumre der findes på ark2, og samtidig trække prisen med over på ark1.

Jeg ønsker en VBA-løsning.
Avatar billede kabbak Professor
27. september 2007 - 22:32 #1
Vil du have priserne til at overskrive eksisterende priser, i Ark1, ud for det tilhørende varenummer ??
Avatar billede kabbak Professor
27. september 2007 - 22:40 #2
Sub Test1()
    Data1 = Worksheets("Ark1").Range("A1:B" & Worksheets("Ark1").Range("A65536").End(xlUp).Row)
    Data2 = Selection
    For i = 1 To UBound(Data2)
        For x = 1 To UBound(Data1)
            If Data1(x, 1) = Data2(i, 1) Then
                Data1(x, 2) = Data2(i, 2)
                Exit For
            End If
        Next
    Next
Worksheets("Ark1").Range("A1:B" & Worksheets("Ark1").Range("A65536").End(xlUp).Row) = Data1
End Sub
Avatar billede hpo Nybegynder
28. september 2007 - 07:59 #3
Hej Kabbak

Løsningen virker fint - og værdierne overskrives også. Men kan der indbygges således, at linier der får overskrevet en værdi på Ark1 (hvor varenummeret findes på Ark2) bliver markeret f.eks. at linjen farves gul ?

/hpo
Avatar billede kabbak Professor
28. september 2007 - 11:13 #4
Sub Test1()
    Data1 = Worksheets("Ark1").Range("A1:B" & Worksheets("Ark1").Range("A65536").End(xlUp).Row)
    Data2 = Selection
    For i = 1 To UBound(Data2)
        For x = 1 To UBound(Data1)
            If (Data1(x, 1) = Data2(i, 1)) And (Data1(x, 2) <> Data2(i, 2)) Then
                Data1(x, 2) = Data2(i, 2)
                Worksheets("Ark1").Range("A" & x & ":B" & x).Interior.ColorIndex = 6  ' gul
                Exit For
            End If
        Next
    Next
    Worksheets("Ark1").Range("A1:B" & Worksheets("Ark1").Range("A65536").End(xlUp).Row) = Data1
End Sub
Avatar billede kabbak Professor
29. september 2007 - 13:45 #5
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