Avatar billede steensommer Praktikant
03. april 2003 - 17:20 Der er 40 kommentarer og
2 løsninger

Låse celler?

Hej
Kan følgende lade sig gøre:

Vi indtaster en del data i en stor projektmappe med flere ark. Et af arkene indeholder et medicinskema. Hver søjle repræsenter et medicinpræparat.

Når sygeplejersken sætter sine initialer under medicinsøjlen (ex. i et felt a35) skal cellerne i a5,a7,a9 etc låses således at de ikke kan redigeres.
Det er altså tanken at ved kvittering for at medicin er givet skal dokumentationen ikke kunne ændres.

vh Steen
Avatar billede exp-ralle Nybegynder
03. april 2003 - 17:21 #1
Følger lige med her...
Avatar billede steensommer Praktikant
03. april 2003 - 17:26 #2
Ups en lille fejl ...hver række indeholder et medicinpræparat .. ellers skulle ovenstående være korrekt. Sygeplejersken kvitterer altså for flere præparater af gangen.  vh Steen
Avatar billede kabbak Professor
03. april 2003 - 19:23 #3
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row = 35 And Target.Column = 1 Then
If Target = "hb" Then
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Else
ActiveSheet.Unprotect
End If
End If
End Sub

denne virker ved A35, ret selv teksten.

Klik på cellen med musen efter at der er skrevet.
Avatar billede steensommer Praktikant
03. april 2003 - 19:32 #4
Jeg er ikke sikker på at nævnte kode gør det den skal. Korriger mig hvis jeg tager fejl!
Denne beskytter eller "af"beskytter arket når det rigtige ord indtastes i en celle? Hvis det er tilfældet kan den ikke bruges.
Arket er i forvejen beskyttet. Dataområderne er ulåste. Ønsket er at når Sygepl. initialer (efter dagens arbejde) indtastes skal den kolonne hun kvitterer for (den medicin hun har givet den dag) - låses (og evt ændre farve så man kan se at cellerne (kolonne) er låste.
vh Steen
Avatar billede bak Forsker
03. april 2003 - 19:45 #5
Jeg er ikke helt sikker på hvad du ønsker, Steen, men hvis du bare skal have låst cellerne (vinget låst af i formater), men ikke sat beskyttelsen til endnu, så er her et bud

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A35").EntireRow) Is Nothing Then
  Target.EntireColumn.Locked = True
End If
End Sub
Avatar billede kabbak Professor
03. april 2003 - 20:00 #6
denne virker på alle kolonner, men kun række 35
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row = 35 Then
If Target = "hb" Then
ActiveSheet.Unprotect
Target.EntireColumn.Locked = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End If
End Sub

jeg er nødt til al fjerne beskyttelsen, før kolonnen låses, og så beskytte igen
Avatar billede steensommer Praktikant
03. april 2003 - 20:20 #7
Den skal virke på en hel kolonne og IKKE en hel række og der skal være mulighed for at op mod 20 sygeplejersker kan indtaste deres initialer - er det muligt? :0)
Avatar billede kabbak Professor
03. april 2003 - 20:26 #8
med farver

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim K As Integer
K = Target.Column
If Target.Row = 35 Then
If Target = "hb" Then
ActiveSheet.Unprotect
Target.EntireColumn.Locked = True
Worksheets("Ark1").Range(Cells(1, K), Cells(35, K)).Select
With Selection.Interior
        .ColorIndex = 6
        .Pattern = xlSolid
    End With
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End If
End Sub
Avatar billede kabbak Professor
03. april 2003 - 20:30 #9
det med 20 sygeplejesker.

ja / nej

jo hvis vi siger at det skal være 3 tegn

retter vi denne her


If Target = "hb" Then
til
If len(Target) = 3 Then
Avatar billede kabbak Professor
03. april 2003 - 20:32 #10
den virker på kolonnen ned til række 35
Avatar billede steensommer Praktikant
03. april 2003 - 20:34 #11
Det begynder sandelig at se godt ud. Det med de 3 bogstaver er helt fint.
Lige et spørgsmål mere. Ved anvendelse af makro/vba vælger excel (2002) typisk at beskytte således at låste celler kan vælges - dette ønskes ikke!!! Kan det løses?? vh Steen
Avatar billede kabbak Professor
03. april 2003 - 20:36 #12
du kan vælge men ikke rette/slette
Avatar billede kabbak Professor
03. april 2003 - 20:37 #13
jeg har kun excel 2000
Avatar billede steensommer Praktikant
03. april 2003 - 20:39 #14
Jeg tester lige og vender hurtigt tilbage....
Avatar billede steensommer Praktikant
03. april 2003 - 20:45 #15
Det kan godt være at jeg er lidt dum - men hvor skal sygeple. indtaste de 3 initialer (det kunne ex være Row 7 række 45 - kan du rette nedenstående? vh Steen

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim K As Integer
K = Target.Column
If Target.Row = 7 Then
If Len(Target) = 3 Then
ActiveSheet.Unprotect
Target.EntireColumn.Locked = True
Worksheets("Ark1").Range(Cells(1, K), Cells(35, K)).Select
With Selection.Interior
        .ColorIndex = 6
        .Pattern = xlSolid
    End With
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End If
End Sub
Avatar billede bak Forsker
03. april 2003 - 20:53 #16
Hvis du indsætter denne linie inden du sætter password, er det ikke muligt at vælge låste celler.

Sheets("Ark1").EnableSelection = xlUnlockedCells
Avatar billede kabbak Professor
03. april 2003 - 20:55 #17
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim K As Integer
K = Target.Column
If Target.Row = 7 Then
If Len(Target) = 3 Then
ActiveSheet.Unprotect
Target.EntireColumn.Locked = True
Worksheets("Ark1").Range(Cells(1, K), Cells(Target.Row , K)).Select
With Selection.Interior
        .ColorIndex = 6
        .Pattern = xlSolid
    End With
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End If

det er række 7 nu
End Sub
Avatar billede kabbak Professor
03. april 2003 - 20:56 #18
hov fjern lige bemærkningen
Avatar billede kabbak Professor
03. april 2003 - 20:58 #19
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim K As Integer
K = Target.Column
If Target.Row = 7 Then
If Len(Target) = 3 Then
ActiveSheet.Unprotect Password:="kabbak"
Target.EntireColumn.Locked = True
Worksheets("Ark1").Range(Cells(1, K), Cells(Target.Row, K)).Select
With Selection.Interior
        .ColorIndex = 6
        .Pattern = xlSolid
    End With
  Sheets("Ark1").EnableSelection = xlUnlockedCells
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="kabbak"
End If
End If
End Sub
Avatar billede kabbak Professor
03. april 2003 - 20:59 #20
fint bak , ny viden strømmer til mig ;-p
Avatar billede steensommer Praktikant
03. april 2003 - 21:04 #21
Nu skriver den desværre - Unable to set the locked property of the Range class OG undskyld iøvrigt det var række 44....
Avatar billede kabbak Professor
03. april 2003 - 21:04 #22
steensommer du er nødt til at vælge en bestemt række, dieskal underskrive i.

du retter her til den række de skal taste i.
If Target.Row = 7 Then (her er det række 7 over alle kolonner)
Avatar billede steensommer Praktikant
03. april 2003 - 21:11 #23
Jeg tror muligvis at jeg udtrykker mig lidt dårligt.
I skemaets kolonnefelt er placeret dato'er. I rækkerne de enkelte præparater. Nedenunder alle dagens præparater skal sygepl. kvittere for dagens medicinering ex de kvitterer for kolonne 4 (dato: 24-03-03) i felt d44 hvorefter kolonne d skal låses - næste dag kolonne 5 (dato: 25-03-03) i felt e44 hvorefter kolonne e skal låses. vh Steen
Avatar billede bak Forsker
03. april 2003 - 21:24 #24
Prøv lige denne let modificerede makro


Private Sub Worksheet_Change(ByVal Target As Range)
Dim K As Integer
K = Target.Column
If Target.Row = 44 Then
  With ActiveSheet
      .Unprotect Password:="kabbak"
      Target.EntireColumn.Locked = True
      With .Range(Cells(1, K), Target).Interior
              .ColorIndex = 6
              .Pattern = xlSolid
      End With
      .EnableSelection = xlUnlockedCells
      .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="kabbak"
  End With
End If
End Sub
Avatar billede steensommer Praktikant
03. april 2003 - 21:28 #25
Den skriver samme fejl - kan det måske være fordi der er merged celler fra række 6 og op. Dvs at det kun er kolle c,d etc række 7 til række 44 der skal låses - undskyld!
Avatar billede kabbak Professor
03. april 2003 - 21:33 #26
skulle være rettet her

Private Sub Worksheet_Change(ByVal Target As Range)
Dim K As Integer
K = Target.Column
If Target.Row = 44 Then
  With ActiveSheet
      .Unprotect Password:="kabbak"
      .Range(Cells(8, K), Target).Locked = True
      With .Range(Cells(8, K), Target).Interior
              .ColorIndex = 6
              .Pattern = xlSolid
      End With
      .EnableSelection = xlUnlockedCells
      .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="kabbak"
  End With
End If
End Sub
Avatar billede kabbak Professor
03. april 2003 - 21:34 #27
hov ret lige
.Range(Cells(8, K), Target).Locked = True
til
.Range(Cells(7, K), Target).Locked = True
Avatar billede bak Forsker
03. april 2003 - 21:36 #28
Det kan sagtens være Merged Celler for det er noget uberegnelig skidt, som jeg "aldrig" bruger. I stedet kan du marker de celler du vil have sammensat, gå til Formater / Celler /justering og sætte sætte "vandret" til centrer over markering. (Center across cells)
Avatar billede kabbak Professor
03. april 2003 - 21:36 #29
hej bak det er godt med lidt hjælp :-)
Avatar billede steensommer Praktikant
03. april 2003 - 21:37 #30
Hallo hvor det kører - tak til jer begge. Hva bør man måske fordele point således at kabbak får 30 og bak 20 point?
Avatar billede kabbak Professor
03. april 2003 - 21:39 #31
det er retfærdig synes jeg, hvad siger du bak
Avatar billede bak Forsker
03. april 2003 - 21:41 #32
Mere end retfærdigt, da du jo har lavet det meste, Holger. men sammen kan vi sagtens klare det :-)
Avatar billede steensommer Praktikant
03. april 2003 - 21:42 #33
Lige en lille ting kan i huske farvekoden for lysegrå?  vh Steen
Avatar billede kabbak Professor
03. april 2003 - 21:43 #34
.ColorIndex = 15
Avatar billede steensommer Praktikant
03. april 2003 - 21:44 #35
Tak igen
Avatar billede kabbak Professor
03. april 2003 - 21:44 #36
selv tak
Avatar billede steensommer Praktikant
03. april 2003 - 21:45 #37
Jeg opretter et nyt spørgsmål vedr. låsning af hele projektmappen inkl pt ulåste celler - hvis i skulle være interesseret.  VH Steen
Avatar billede kabbak Professor
03. april 2003 - 21:46 #38
steensommer > du kan jo selv rette password til noget andet, men husk at skrive det samme begge steder.
Avatar billede bak Forsker
03. april 2003 - 21:47 #39
Nejjj, jeg må desværre spinge fra, ungerne skal i seng. :-)
Avatar billede steensommer Praktikant
03. april 2003 - 21:48 #40
Kender det kun alt for godt ;0)
Avatar billede steensommer Praktikant
03. april 2003 - 21:51 #41
Hov jeg har opdaget en lille fejl den låser rækken uanset hvor mange bogstaver man indtaster - men den kode du primært anvendte er vist heller ikke i koden længere?
Avatar billede steensommer Praktikant
03. april 2003 - 22:01 #42
Minsanten om jeg ikke selv fik rettet den :0))
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