..................... 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("A1:B20")
'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 & " already exists on this sheet." 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("A1:B20"), Target.Value) > 0 Then MsgBox Target.Value & " already exists on the sheet named " & .Name & ".", _ 16, "No duplicates allowed in " & EvalRange.Address(0, 0) & "." Application.EnableEvents = False Application.Undo Application.EnableEvents = True Exit For End If End If End With Next ws
Puha, det rager vist udover mine kompetencer :-) Kan du lave en eksempel på, hvis jeg har 10 ark som blot hedder ark 1, 2, 3 osv Og min range er A4 til AB50? Så kan jeg bare kopiere det ind og rette til de rigtige ark og range.
Det virker jo som det skal. Har lige rettet lidt til, så det giver lidt andre beskeder osv. 1000 tak og smid endelig et svar, så giver jeg gerne point. Tak
Hmm, virker desværre kun i det første ark. Ligeså snart jeg sætter flere ark ind, så virker det ikke. Den siger, at værdien allerede eksisterer i det aktive ark, men også i et andet ark. Herefter så laver den dubletten alligevel.
Det er der aben ligger :-) Så langt så godt. Kan jeg opdele i flere områder istedet for blot A4:AB50? Tænker at jeg jo gerne vil springe hver anden colonne over, da det er hylde numre 1,2,3 osv. De bliver også registreret som dubletter. Jeg kan nemt lave alle ark ens i layout, hvis det kræves. Tænkte om jeg kunne lave range som eks. A4:A100 og C4:C100. Så bruger jeg kolonne B som mine lokations/hylde numre. Det bedste vil selvfølgelig være, hvis det kunne laves, så det kigger i et område i Ark1 og et andet i Ark2, hvis man kan det. Så behøver jeg ikke at ændre i layout. Har desværre ikke lige en fil herhjemme som du kan få, men jeg kan selv redigere range så det passer. Fandt også en anden god en som åbner en msg box, som fortæller at varenr eksisterer allerede, hvorefter jeg kan skrive nyt varenr i boksen. Desværre, så kan jeg ikke få lov, at flytte varenumrene rundt på lokationer :-( På forhånd tak.
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.