Avatar billede MB280SK Seniormester
09. april 2019 - 10:23 Der er 2 kommentarer og
2 løsninger

Nøglekolonne

Hej Igen

Kan man lige som i Access definere en nøglekolonne, så man undgår dubletter i f.eks. kolonne B?

~Steffen
Avatar billede MB280SK Seniormester
09. april 2019 - 15:40 #1
Har fundet løsningen selv :-)
Avatar billede Jan Hansen Ekspert
09. april 2019 - 16:38 #2
Ja nogle gange skal der lidt tid til de små grå ;-)
Avatar billede Daffodil Professor
11. april 2019 - 07:36 #3
Har du mulighed for at dele løsning med os andre, eller skal vi selv finde den?
Avatar billede MB280SK Seniormester
11. april 2019 - 08:12 #4
Hej Daffodil.
Jeg deler da rigtig gerne. :-)

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

    'Define your variables.
    Dim ws As Worksheet, EvalRange As Range
   
    'Set the range where you want to prevent duplicate entries.
    Set EvalRange = Range("B3:B1000")
   
    'If the cell where value was entered is not in the defined range, if the value pasted is larger than a single cell,
    'or if no value was entered in the cell, then exit the macro.
    If Intersect(Target, EvalRange) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
    If IsEmpty(Target) Then Exit Sub
   
    'If the value entered already exists in the defined range on the current worksheet, throw an
    'error message and undo the entry.
    If WorksheetFunction.CountIf(EvalRange, Target.Value) > 1 Then
        MsgBox Target.Value & " Denne sag er allerede tastet ind."
        Application.EnableEvents = False
        Application.Undo
        Application.EnableEvents = True
    End If
   
    'Check the other worksheets in the workbook.
    For Each ws In Worksheets
        With ws
            If .Name <> Target.Parent.Name Then
                'If the value entered already exists in the defined range on the current worksheet, throw an
                'error message and undo the entry.
                If WorksheetFunction.CountIf(Sheets(.Name).Range("B3:B1000"), Target.Value) > 0 Then
                    MsgBox Target.Value & " Denne sag er allerede tastet ind på " & .Name & ".", _
                    16, " Hver sag må kun forekomme 1 gang! " & EvalRange.Address(0, 0) & "."
                    Application.EnableEvents = False
                    Application.Undo
                    Application.EnableEvents = True
                    Exit For
                End If
            End If
        End With
    Next ws

End Sub
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
Stort udvalg af Excel kurser til alle niveauer og jobfunktioner

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





White paper
Sikkerhed gjort enkelt: Beskyt din virksomhed direkte i browseren