Avatar billede mrkr Juniormester
18. juni 2012 - 18:07 Der er 5 kommentarer og
1 løsning

vba - kontrol om det samme tal er brugt flere gange

Jeg har en masse tal vilkårlig mellem 1 og 100 som står i kolonne I.

I kolonne O står der nogle gange et tal mellem 1 og 20.
Min udfordring består i at få kontrolleret at hvis der står noget i kolonne O så skal alle tal der står i kolonne I være ens.

Nedenfor har jeg indsat et eksempel for at illustrere udfordringen.

Dette eksempel er OK, da alle tal i kolonne I som har 1 eller 2 i kol O er ens:
KOL I    KOL O
12
13        1
13
14        2
13        1
14        2
14        2



Dette eksempel er IKKE OK, da alle tal i kolonne I som har 1 eller 2 i kol O IKKE er ens: (se nederste linje)

KOL I    KOL O
12
13        1
13
14        2
13        1
14        2
11        2

Når koden finder en fejl skal den komme med en popup der siger:
"Der er fejl i kolonne O vedr. nr xxxx"

Kan det lade sig gøre at lave sådan en test?
Avatar billede Mads Larsen Nybegynder
21. juni 2012 - 15:30 #1
Noget i den stil? =)


Sub TjekTal()
    Dim Tal(20)
    Do Until Len(ActiveCell.Text) = 0
        If Len(ActiveCell.Offset(0, 1).Value) > 0 Then
            If Not Tal(ActiveCell.Offset(0, 1).Value) = ActiveCell.Value Then
                If Tal(ActiveCell.Offset(0, 1).Value) = "" Then
                    Tal(ActiveCell.Offset(0, 1).Value) = ActiveCell.Value
                Else
                    MsgBox ("Der er fejl i kolonne O vedr. nr " & ActiveCell.Offset(0, 1).Value)
                    Exit Sub
                End If
            End If
        End If
        ActiveCell.Offset(1, 0).Select
    Loop
End Sub
Avatar billede mrkr Juniormester
21. juni 2012 - 18:54 #2
Jeg har sat koden ind i mit regneark og kørt koden.
Den render fint kolonne O igennem, hvis jeg har markeret kolonnen, men den melder intet ud uanset om der er fejl eller ej.

Så det er ikke sikkert at jeg har beskrevet problemet korrekt.
Kan evt sende en mail til dig, men et eksempel?
Avatar billede Mads Larsen Nybegynder
22. juni 2012 - 08:11 #3
Hov min fejl :>

I og O ligger jo ikke ved siden af hinanden ;)

Du skal stå i start cellen i kolonne I.

Virker det så ikke ? :)

Sub TjekTal()
    Dim Tal(20)
    Do Until Len(ActiveCell.Text) = 0
        If Len(ActiveCell.Offset(0, 6).Value) > 0 Then
            If Not Tal(ActiveCell.Offset(0, 6).Value) = ActiveCell.Value Then
                If Tal(ActiveCell.Offset(0, 6).Value) = "" Then
                    Tal(ActiveCell.Offset(0, 6).Value) = ActiveCell.Value
                Else
                    MsgBox ("Der er fejl i kolonne O vedr. nr " & ActiveCell.Offset(0, 6).Value)
                    Exit Sub
                End If
            End If
        End If
        ActiveCell.Offset(1, 0).Select
    Loop
End Sub
Avatar billede mrkr Juniormester
12. juli 2012 - 13:52 #4
arrgh..
Havde ikke set at du havde svaret. Pinligt! :-(
tester lige og vender tilbage hurtigst muligt
Avatar billede mrkr Juniormester
12. juli 2012 - 19:45 #5
Det virker fuldstændig efter hensigten.
Mange tak for hjælpen.
Har du et svar :)

Jeg er først tilbage ved en pc i løbet af lørdagen.
Blott til Info når jeg nu har været så langsom tidligere.
Avatar billede Mads Larsen Nybegynder
24. juli 2012 - 09:53 #6
Her er et svar :)
Beklager den lange svartid...
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