Avatar billede svla Mester
02. december 2012 - 14:48 Der er 12 kommentarer og
1 løsning

Beskytte en excelfil

Hej !

Jeg bruger Office 2010.
Jeg har en excelfil som lige er oprettet og som skal testes.

Jeg kunne godt tænke mig at der kunne laves en VBA-kode således at hvis arket bliver benyttet om f.eks 2 mdr., eller efter en bestemt dato, så skal der indtastes en kode for og åbme arket.

Er der mon nogen som lige kunne hjælpe med VBA til denne opgave, hvis det da kan laves
Avatar billede KurtOA Praktikant
02. december 2012 - 21:48 #1
VBA kunne evt laves som dette...

1) en kode der skjuler fane(r) ved lukning....
2) en kode der ved åbning af filen checker om dato er før/efter en given dato
3) og ved "efter" kræver en kode for at vise fane(r)

mvh Kurt OA
Avatar billede svla Mester
03. december 2012 - 17:24 #2
Hej KurtOA

Efter lidt søgning på VBA-hjælp, fandt jeg på denne kode som blev lagt i VBA i "Denne Projektmappe"

Private Sub Workbook_Open()
  Dim dato As Date
  dato = "02-12-2013"  ' Dato hvortil fil kan åbnes
    If Date >= dato Then
      With ActiveWorkbook
          .RunAutoMacros xlAutoClose
          .Close
      End With
    End If
End Sub

Jeg har prøvet den nogle gange, umiddelbart virker den fint nok, filen åbnes, men lukkes igen straks.
Jeg er ikke helt klar over hvad koden "RunAutoMacros xlAutoClose" egentlig gør, kan du forklare det ?
For og teste arket rettede jeg på computerens dato.
Har du et godt forslag???
Avatar billede svla Mester
03. december 2012 - 17:26 #3
Hov der skulle i koden stå 02-12-2012.
Avatar billede store-morten Ekspert
03. december 2012 - 18:20 #4
Prøv med tilføjelsen:

Private Sub Workbook_Open()
Dim dato As Date
Dim Svar As String

  dato = "02-12-2012"  ' Dato hvortil fil kan åbnes
    If Date >= dato Then
        Svar = InputBox("Indtast kode", "Prøve perioden er udløbet")
        If Svar = 1234 Then
            Exit Sub
        Else
          With ActiveWorkbook
          .RunAutoMacros xlAutoClose
          .Close
        End With
End If
End If
End Sub
Avatar billede store-morten Ekspert
03. december 2012 - 19:01 #5
Private Sub Workbook_Open()
Dim dato As Date
Dim Svar As String

dato = "02-12-2012"  ' Dato hvortil fil kan åbnes
        If Date >= dato Then
       
        Svar = InputBox("Indtast kode", "Prøve perioden er udløbet")
        If Svar = "" Then GoTo Luk
        If Svar = 1234 Then
            Exit Sub
        Else
Luk:
          With ActiveWorkbook
          .RunAutoMacros xlAutoClose
          .Close
        End With
End If
End If
End Sub
Avatar billede svla Mester
03. december 2012 - 22:19 #6
Hej Store Morten

Jeg har lige tjekket dit første forslag og der var der lige et problem med følgende
1) ved lukning af dialogfelt
2) ved annuller
3) ved ingenting i svarfelt
Disse 3 punkter gav fejl i VBA., det ville jeg jo lige skrive retur, men så så jeg du havde lavet et nyt forslag, det er bare lige det jeg manglede, jeg har tjekket det og det virker perfekt ingen fejl, og arket lukkes uanset hvad der gøres bortset fra hvis koden indtastes.
- En rigtig god kodestump, det har jeg arbejdet på tidligere men ikke kunnet få til og virke.
Rigtig mange tak for hjælpen, og læg et svar.
Avatar billede store-morten Ekspert
03. december 2012 - 22:25 #7
Ja, jeg fangede lige 1, 2 og 3 i sidste tilføjelse.

Nu er koden jo ikke mere sikker, end at man kan åbne med deaktiveret makroer, og "lurer" password, eller helt fjerne koden.

Velbekomme.
Avatar billede svla Mester
03. december 2012 - 22:37 #8
Når jeg laver VBA-kode plejer jeg og sætte kode på VBA-projektet, så er der jo lukket af for pilfingre.
Hvis man skal nå og deaktiver skal man vist være særlig hurtig.
Avatar billede svla Mester
03. december 2012 - 22:43 #9
Hej igen
Kan godt se at der lige er et problem hvis man kender hvorledes man kan åbne med deaktiverede makroer, men koden kan ikke ses.
Er der nogen løsning for det ????
Avatar billede store-morten Ekspert
03. december 2012 - 22:43 #10
kode på VBA-projektet, kan også "fjernes" ;-)
Avatar billede svla Mester
03. december 2012 - 22:53 #11
Ok -men der hvor jeg benytter VBA har jeg endnu ikke mødt nogen som var så interesserede, at de ville bruge tid på og finde ud af og deaktivere eller bryde koden på VBA-projekt.
-  Jeg kender ikke lige selv måde og fjerne koden på et VBA projekt.
Avatar billede store-morten Ekspert
03. december 2012 - 23:00 #12
Netop, hvis det kun er for at beskytte arket, og ikke stats-hemmeligheder, er det ikke et problem.

"Jeg kender ikke lige selv måde og fjerne koden på et VBA projekt."
Tro mig, det kan lade sig gøre ;-)
Avatar billede store-morten Ekspert
03. december 2012 - 23:01 #13
Tak, for point.
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