Note: The other languages of the website are Google-translated. Back to English

Hvordan beskyttes celler baseret på dato i Excel?

Normalt kan vi beskytte regnearket for at forhindre andre i at redigere eller ændre celleværdierne, men nogle gange er du nødt til at beskytte cellerne baseret på dato. For eksempel vil jeg beskytte andre celler, men kun tillade, at celleværdierne i dagens dato ændres som vist på følgende skærmbillede, denne artikel vil tale om, hvordan man beskytter celler baseret på dato.

doc beskyt efter dato 1

Beskyt alle rækker undtagen dagens datorrække med VBA-kode

Beskyt alle rækker, datoen er passeret med VBA-kode


pil blå højre boble Beskyt alle rækker undtagen dagens datorrække med VBA-kode

Tillad kun den række, der svarer til dagens dato, at blive ændret, følgende kode kan hjælpe dig, gør venligst som denne:

1. Højreklik på arkfanen, som du vil beskytte cellerne baseret på dato, og vælg derefter Vis kode fra genvejsmenuen, i poppet ud Microsoft Visual Basic til applikationer vindue, skal du kopiere og indsætte følgende kode i det tomme modul:

VBA-kode: Beskyt alle rækker undtagen dagens datorrække:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby Extendoffice 20161025
    If Range("E" & Selection.Row).Value <> Date Then
        ActiveSheet.Protect Password:="111111"
        MsgBox "Only today's date row can be edited!", vbInformation, "Kutools for Excel"
    ElseIf Range("E" & Selection.Row).Value = Date Then
        ActiveSheet.Unprotect Password:="111111"
        ActiveSheet.EnableSelection = xlNoRestrictions
    End If
End Sub

doc beskyt efter dato 2

Bemærk: I ovenstående kode, brevet E er kolonneoverskriften, hvor datoen er placeret, “111111”Er adgangskoden til at beskytte dette ark. Du kan ændre dem til dit behov.

2. Gem og luk derefter dette kodevindue.

(1.) Hvis du klikker på andre celler ud over dagens datorrække, vises et promptfelt for at minde dig om, at cellen ikke kan redigeres, se skærmbillede:

doc beskyt efter dato 3

(2.) Hvis du klikker og rediger rækken svarer til dagens dato, vil den blive ændret med succes, se skærmbillede:

doc beskyt efter dato 4


pil blå højre boble Beskyt alle rækker, datoen er passeret med VBA-kode

Hvis du har brug for at beskytte alle rækker, datoen er gået, kun tillader ændring i dag og fremtidige datorrækker, skal du anvende følgende VBA-kode:

1. Højreklik på arkfanen, som du vil beskytte cellerne baseret på dato, og vælg derefter Vis kode fra genvejsmenuen, i poppet ud Microsoft Visual Basic til applikationer vindue, skal du kopiere og indsætte følgende kode i det tomme modul:

VBA-kode: Beskyt alle rækker datoen er passeret:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Updateby Extendoffice 20161025
  Dim xRow As Long
  xRow = 2
  ThisWorkbook.ActiveSheet.Unprotect Password:="111111"
  ThisWorkbook.ActiveSheet.Cells.Locked = False
  Do Until IsEmpty(Cells(xRow, 5))
    If Cells(xRow, 5) < Date Then
      Rows(xRow).Locked = True
    End If
    xRow = xRow + 1
  Loop
  ThisWorkbook.ActiveSheet.Protect Password:="111111"
End Sub

doc beskyt efter dato 5

Bemærk: I ovenstående kode, nummeret 5 er kolonnenummeret, hvor datoen er placeret, “111111”Er adgangskoden til at beskytte dette ark. Du kan ændre dem til dit behov.

3. Gem og luk derefter dette kodevindue.

(1.) Hvis du klikker på celledatoen er passeret, vises et promptfelt for at minde dig om at cellen ikke kan redigeres, se skærmbillede:

doc beskyt efter dato 6

(2.) Hvis du klikker på cellen med rækker for at prøve at ændre værdierne i dagens dato eller fremtidige dato, vil den blive ændret med succes, se skærmbillede:

doc beskyt efter dato 7


De bedste Office-produktivitetsværktøjer

Kutools til Excel løser de fleste af dine problemer og øger din produktivitet med 80%

  • Genbruge: Indsæt hurtigt komplekse formler, diagrammer og alt, hvad du har brugt før; Krypter celler med adgangskode Opret postliste og send e-mails ...
  • Super formel bar (let redigere flere linjer med tekst og formel); Læsning Layout (let at læse og redigere et stort antal celler); Indsæt til filtreret rækkevidde...
  • Flet celler / rækker / kolonner uden at miste data; Split celler indhold; Kombiner duplikerede rækker / kolonner... Forhindre duplikerede celler; Sammenlign områder...
  • Vælg Duplicate eller Unique Rækker; Vælg tomme rækker (alle celler er tomme); Super Find og Fuzzy Find i mange arbejdsbøger; Tilfældig valg ...
  • Præcis kopi Flere celler uden at ændre formelreference; Auto Opret referencer til flere ark; Indsæt kugler, Afkrydsningsfelter og mere ...
  • Uddrag tekst, Tilføj tekst, Fjern efter position, Fjern mellemrum; Opret og udskriv personsøgningssubtotaler; Konverter mellem celler indhold og kommentarer...
  • Superfilter (gem og anvend filterskemaer på andre ark); Avanceret sortering efter måned / uge / dag, hyppighed og mere; Specielt filter af fed, kursiv ...
  • Kombiner arbejdsbøger og arbejdsark; Fletabeller baseret på nøglekolonner; Opdel data i flere ark; Batch Konverter xls, xlsx og PDF...
  • Mere end 300 kraftfulde funktioner. Understøtter Office / Excel 2007-2021 og 365. Understøtter alle sprog. Nem implementering i din virksomhed eller organisation. Fuld funktioner 30-dages gratis prøveperiode. 60 dages pengene tilbage garanti.
kte-fane 201905

Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
officetab bund
Sorter kommentarer efter
Kommentarer (30)
Ingen vurderinger endnu. Vær den første til at bedømme!
Denne kommentar blev minimeret af moderatoren på webstedet
Smuthul: Adgangskode kan ses af en anden person ved at bruge "Se kode" mulighed.
Denne kommentar blev minimeret af moderatoren på webstedet
fungerer ikke, da hele cellen viser beskeden, men kan redigeres
Denne kommentar blev minimeret af moderatoren på webstedet
Hej er det muligt at låse kolonner til datoen direkte over kolonnerne?
Denne kommentar blev minimeret af moderatoren på webstedet
Privat underarbejdsark_Change(ByVal Target As Range)

'Abonnere på http://youtube.com/excel10tutorial

'Støt kanalen ved at donere videre http://patreon.com/excel10tutorial

Dim col As Range

'Indstil det korrekte arknavn her:

With ThisWorkbook.Sheets("AGOSTO-22")

. Fjern beskyttelsen af ​​"ABCDE"

For hver kolonne i .UsedRange.Columns

col.EntireColumn.Locked = col.Range("A1").Value <> Dato

Næste kol

.Beskyt "ABCDE"

.EnableSelection = xlNoRestrictions

Slut med

End Sub
Denne kommentar blev minimeret af moderatoren på webstedet
hej er det muligt at låse bestemte celler afhængigt af datoen, der er direkte over dem i en kolonne?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Lusis,
Kan du give dit problem mere specifikt? Eller du kan vedhæfte et skærmbillede som dit problem.
Tak!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej skyyang

Ja her er et skærmbillede. Håber dette hjælper.
Denne kommentar blev minimeret af moderatoren på webstedet
Her er det.
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Lucis,
Mener du at låse de kolonner, hvor datoen er forbi, og kun kolonnerne i dag og fremtidige dage kan ændres?
Denne kommentar blev minimeret af moderatoren på webstedet
Korrekt! Hvordan ville jeg gøre det?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Luis,
Hvad med datocellen i A1? Er det indtastet manuelt eller indtastet med en formel =nu()? Hvis det er en formelcelle, vil de låste kolonner blive ændret med datoændringerne.
Ser frem til dit svar!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Skyyangg

ja cellen A1 har =now() formlen.

tak!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej.....


Jeg bruger koden til Beskyt alle rækker undtagen dagens datorække........



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Opdatering af Extendoffice 20161025
Hvis Range("A" & Selection.Row).Værdi <> Dato Så
ActiveSheet.Protect Password:="111111"
MsgBox "Kun dagens datorække kan redigeres!", vbInformation, "Kutools for Excel"
ElseIf Range("E" & Selection.Row).Værdi = Dato derefter
ActiveSheet.Unprotect Password:="111111"
ActiveSheet.EnableSelection = xlNoRestrictions
End If
End Sub


Når jeg har gemt i og klikket på cellen, får jeg besked, kun dagens datorække kan redigeres....men hvis jeg dobbeltklikker på cellen, kan jeg redigere...pls help
Denne kommentar blev minimeret af moderatoren på webstedet
Dette fungerer fantastisk. men hvordan kan jeg skifte det til at låse op for en kolonne baseret på datoer i række 3?
Denne kommentar blev minimeret af moderatoren på webstedet
Som en, der er relativt ny i VBA, ville du have noget imod at forklare, hvorfor xRow = 2 i linje 4?



Tak
Denne kommentar blev minimeret af moderatoren på webstedet
fordi i rækkenr. 1 du har overskrift
Denne kommentar blev minimeret af moderatoren på webstedet
Hej,

mens jeg kører denne kode, får jeg en fejl som vist på figuren
Jeg vedhæfter også et øjebliksbillede af mit excel, hvor jeg vil lave ændringer..

Kan du guide i min kode, hvor skal jeg foretage ændringer i henhold til min excel-fil, så celler, der kun indeholder dagens og fremtidige dato, kan redigeres???
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Karan,
Fordi der er flettede celler i din tabel, kan ovenstående kode ikke anvendes korrekt i flettede cellers tabel.
Hvis du har andre gode ideer, så skriv endelig her. Tak skal du have!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, jeg prøvede at gøre det samme, men at beskytte alle kolonner undtagen dagens datokolonne med VBA-kode ved at erstatte "Selection.Row" med "Selection.Columns" og "E" med "5" (rækkenummer hvor datoer er), men Jeg bliver ved med at modtage fejl 1004!

Enhver hjælp venligst?

Tak
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, jeg prøvede at gøre det samme, men at beskytte alle kolonner undtagen dagens datokolonne med VBA-kode ved at erstatte "Selection.Row" med "Selection.Columns" og "E" med "5" (rækkenummer hvor datoer er), men Jeg bliver ved med at modtage fejl 1004!

Enhver hjælp venligst?

Tak
Denne kommentar blev minimeret af moderatoren på webstedet
Hej,
For at anvende denne kode på kolonner, som du har brug for, skal du bruge følgende VBA-kode:(Bemærk: I koden er 5 rækkenummeret, der indeholder datoen, skift det til dit behov.)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRg As Range
Indstil xRg = Target.Worksheet.Cells(5, Target.Column)
Hvis xRg <> Dato Så
ActiveSheet.Protect Password:="111111"
MsgBox "Kun dagens datorække kan redigeres!", vbInformation, "Kutools for Excel"
ElseIf xRg.Value = Dato derefter
ActiveSheet.Unprotect Password:="111111"
ActiveSheet.EnableSelection = xlNoRestrictions
End If
End Sub

Prøv venligst, håber det kan hjælpe dig!
Denne kommentar blev minimeret af moderatoren på webstedet
Tak skal du have! Beklager, jeg har ikke modtaget dit svar før nu, det kan være et problem i min e-mail.

Det virkede! Kan ikke sige tak nok! Det sætter jeg virkelig pris på!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej,
Godt det kan hjælpe dig!
Denne kommentar blev minimeret af moderatoren på webstedet
Hej,

Jeg forsøger at udvide dette for at beskytte kolonner, der ikke inkluderer denne aktuelle måned eller/og denne aktuelle uge. Jeg forsøgte at erstatte "Dato" med "måned" eller "uge", men det virkede ikke.

Jeg har vedhæftet et eksempel på ugeark, hvor brugeren ikke kan redigere eller skrive i kolonner ud over denne uge.

Nogen råd om det? eller skal jeg bruge faktiske datoer til at afspejle en dag i måneden?
Denne kommentar blev minimeret af moderatoren på webstedet
Tak for din hjælp, mange tak, ven, det er en stor hjælp. og løste min spænding.
Pas godt på dig selv
Hilsen Rohit Khanna
Denne kommentar blev minimeret af moderatoren på webstedet
Hej Jeg står over for et problem, når jeg lukker filen og genåbner den igen på samme dato, virker koden ikke. pls hjælp jeg sidder fast
Denne kommentar blev minimeret af moderatoren på webstedet
Hej rohit,
For at beholde koden skal du gemme din projektmappe som Excel Macro-Enabled Workbook-format, prøv venligst, tak!
Denne kommentar blev minimeret af moderatoren på webstedet
hej, jeg gjorde det, men når jeg trykker på cellemeddelelsen, viser den, at den ikke kan redigeres, men når jeg trykker på tastaturet, kan jeg stadig skrive i cellen
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, jeg vil gerne beskytte fremtidige dage og tillade redigering af nuværende og tidligere dage. Hvordan gør jeg det?
Denne kommentar blev minimeret af moderatoren på webstedet
Hej, Miguel, For at beskytte de fremtidige dage, anvend venligst nedenstående kode: Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Opdatering af Extendoffice
Dim xRow As Long
x række = 2
ThisWorkbook.ActiveSheet.Unprotect Password:="111111"
ThisWorkbook.ActiveSheet.Cells.Locked = Falsk
Gør indtil Er Tom (Cells(xRow, 5))
Hvis Cells(xRow, 5) > Dato Then
Rækker(xRække).Låst = Sand
End If
xRow = xRow + 1
Loop
ThisWorkbook.ActiveSheet.Protect Password:="111111"
Afslut SubPrøv venligst, håber det kan hjælpe dig!
Der er endnu ingen kommentarer her
Efterlad dine kommentarer
Sender som gæst
×
Bedøm dette indlæg:
0   Tegn
Foreslåede steder

Følg os

Copyright © 2009 - www.extendoffice.com. | Alle rettigheder forbeholdes. Drevet af ExtendOffice. | | Sitemap
Microsoft og Office-logoet er varemærker eller registrerede varemærker tilhørende Microsoft Corporation i USA og / eller andre lande.
Beskyttet af Sectigo SSL