Avatar billede Bumle Mester
10. september 2015 - 05:23 Der er 5 kommentarer og
1 løsning

VBA celle udelukkelse

Hej herinde,

Sidder og brygger videre på en vba som jeg har fundet på nettet og har lige et problem.
Det er sat til at fortælle mig, når et varenr allerede er oprettet, da jeg gerne vil undgå dublet varenr.
Den fortæller også I hvilket sheet det allerede eksisterer.
Sagen er, at jeg gerne vil have celle "AL1" I "sheet1" udelukket heraf.
Denne celle bruger jeg til, at søge på varenumre efter LOPSLAGS metoden.
Altså må varenummeret som jeg kan taste I denne celle gerne være andre steder I hele workbook uden at den fortæller mig det.
Min workbook består af 13 sheets

Se VBA her:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Cell As Range
For Each Cell In Target
Select Case Target.Value
Case ""
Case Else
For i = 1 To ThisWorkbook.Sheets.Count
Select Case Application.WorksheetFunction.CountIf(Sheets(i).[A2:AN400], Target)
Case 0
Case 1
If Sheets(i).Name <> ActiveSheet.Name Then
GoTo modify
End If
Case Else
GoTo modify
End Select
Next
End Select
Exit Sub
modify:
myPrompt = "Varenr. eksisterer allerede på " & _
Chr(10) & Sheets(i).Name & " Række " & Sheets(i).Cells.Find(What:=Target.Value, After:=Sheets(i).Cells(1, 1), LookIn:=xlValues, LookAt:= _
        xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Row & _
Chr(10) & _
Chr(10) & "Angiv venligst et nyt varenr."
myDefault = Target
myInput = InputBox(Prompt:=myPrompt, Default:=myDefault, Title:="angiv venligst nyt varenr")
Target = myInput
Next Cell
End Sub
Avatar billede natkatten Mester
10. september 2015 - 09:50 #1
Hmm, som jeg umiddelbart læser koden, så "overvåges" området A2:AN400. Dvs. at du godt kan anvende en formel med LOPSLAG i AL1?

Men står der varenumre i hele dette område i alle 13 ark? Jeg ville tro, at varenumrene fandtes i bestemte kolonner?
Avatar billede store-morten Ekspert
10. september 2015 - 12:02 #2
Måske hvis du starter koden med:

If ActiveSheet.Name = "sheet1" And Target.Address = "$AL$1" Then Exit Sub
Avatar billede Bumle Mester
10. september 2015 - 16:03 #3
Ja, der er numre i samtlige sheets, så derfor :-)
Avatar billede Bumle Mester
10. september 2015 - 16:04 #4
Prøver lige at starte koden med dit forslag når jeg får kigget på det senere og vender tilbage :-)
Avatar billede Bumle Mester
11. september 2015 - 05:26 #5
Det virkede store morten, så smid et svar til point.
Tak for hjælpen.
Avatar billede store-morten Ekspert
11. september 2015 - 11:40 #6
Velbekomme
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