Avatar billede jesperdyhr Praktikant
23. september 2004 - 10:27 Der er 3 kommentarer og
2 løsninger

Låse felter efter udfyldelse

Hej eksperter.

Jeg har brug en liste med journalnumre, som vi udleverer til vores medarbejdere. Når et journalnummer er udleveret skriver vi en dato og initialerne på den pågældende medarbejder.

Hvordan laver jeg et regneark, som forhindrer at man kan ændre i dato og medarbejder når det ER udleveret??

Journalnr.  Dato    Tekniker    Kommentar
1232        23-09-04    MB            Udleveret af JD
1233           
1234           
1235           
1236           

Altså: Når dato og medarbejder er udfyldt, må det ikke kunne rettes eller slettes.
Avatar billede supertekst Ekspert
23. september 2004 - 12:18 #1
Alle celler i et ark er forberedt som låste. Dette træder først i kraft når arket beskyttes.

D.v.s., at de journalnr., der ikke er udleveret skal formateres som ikke beskyttede.
Dette gøres nemmest ved at "hente" den knap m/hængelåsen, som kan findes under Tilpas - Kommandoer - Formater - knappen "Lås celle". Træk denne op i en værktøjslinie.

MVH
Avatar billede supertekst Ekspert
24. september 2004 - 14:38 #2
Hvis den manuelle løsning ikke er hensigtmæssigt kan en makro automatisk låse de udfyldte celler, når arket lukkes - eller via en knap.

Er du interesseret? - så sig til - er udarbejdet.

MVH
Avatar billede jesperdyhr Praktikant
24. september 2004 - 14:44 #3
Hej !

Jamen en makro, der aktiveres når arket lukkes vil da være en fin løsning. Den skal så finde de celler med indhold, der ikke er låste, og så låse dem - ikk'??
Avatar billede supertekst Ekspert
26. september 2004 - 12:42 #4
Nemlig - her er koden - så kan du kopiere den over:
Er femstillet i Office97

- - -
Rem Koden indsættes i Arkets "ThisWorkBook"
Rem =======================================
Public sidsteR, arkNavn
Sub Workbook_Deactivate()
    arkNavn = Me.ActiveSheet.Name
    fjernbeskytArk
   
    TestUdfyldning
   
    beskytArk
   
    MsgBox ("Beskyttelse er udført! - filen gemmes")
    ActiveWorkbook.Save
End Sub
Sub TestUdfyldning()
Dim raekke, r As Range
    ActiveWorkbook.Worksheets(arkNavn).Activate
    aktuelleR = 2

Rem beregn sidste række i basisark
    ActiveCell.SpecialCells(xlLastCell).Select
    sidsteR = ActiveCell.Row

    For raekke = 2 To sidsteR
        Set r = Range("A" + CStr(raekke) + ":D" + CStr(raekke))
Rem marker & lås hvis dato & tekniker er udfyldt
        If Cells(raekke, 2).Value And Cells(raekke, 3).Value <> "" Then
            r.Locked = True
            r.Interior.ColorIndex = 6
            r.Interior.Pattern = xlSolid
        Else
            r.Locked = False
        End If
    Next raekke
   
End Sub
Private Sub fjernbeskytArk()
    With Worksheets(arkNavn)
        .Unprotect
    End With
End Sub
Private Sub beskytArk()
    With Worksheets(arkNavn)
        .Protect
    End With
End Sub

- - -

MVH
Avatar billede Snedronning Seniormester
15. maj 2020 - 09:57 #5
Hej,
Jeg ved godt det er et meget gammelt opslag jeg søger på, men kan denne kode også bruges i en dansk excel version O365?
Hvis ja, hvordan gør jeg så, hvis der stadig er en kolonne, som brugerene stadig gerne må skrive i, selv om den allerede er udfyldt?
På forhånd tak for forslag :o)
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