Avatar billede kmlp Nybegynder
04. oktober 2001 - 12:38 Der er 8 kommentarer og
1 løsning

Gemme ændringer i ark med beskyttet VBA-kode

Dette ligger i forlængelse af mit spørgsmål fra 3/10 om, hvordan man sorterer data i beskyttede ark. Løsningen var at lave en makro a la denne:
  ActiveSheet.Unprotect Password:=\"1\"
  Rows(\"5:10\").Select
  Application.Dialogs(xlDialogSort).Show
  ActiveSheet.Protect Password:=\"1\"
Men for at brugeren ikke skal kunne gå ind i VBA-koden og læse adgangskoden til arket, beskyttes VBA-koden også med en adgangskode.
Nu kommer problemet: Når brugeren har kørt makroen og sorteret data, skal arket kunne gemmes med ændringer. Men det kan ikke lade sig gøre - ikke hos mig i hvert fald.
Der sker følgende: Jeg får en besked om, at ændringerne ikke kunne gemmes, men at de findes i en midlertidig fil med navnet <...> (ca. 8 tilsyneladende tilfældige karakterer), og at jeg skal lukke den oprindelige fil og derefter åbne og omdøbe den midlertidige fil. Det kan jeg bare ikke, eller også kan jeg bare ikke finde ud af, hvad jeg skal åbne den med - en excel-fil er det i hvert fald ikke.
Men ikke nok med det: Den oprindelige fil er pist væk!
Hvis jeg ikke beskytter VBA-koden med adgangskode, er der ingen problemer. Hvad gør jeg?
04. oktober 2001 - 12:45 #1
Det lyder ... underligt!
Prøv følgende kode i en test fil:

  ActiveSheet.Unprotect Password:=\"1\"
  Rows(\"5:10\").Select
  Application.Dialogs(xlDialogSort).Show
  Range(\"A1\").Select
  ActiveSheet.Protect Password:=\"1\"
Avatar billede kmlp Nybegynder
04. oktober 2001 - 13:57 #2
Det var faktisk også min første indskydelse (bortset fra at jeg gik til celle A5...), men det virkede ikke. Men bortset fra det, har du prøvet at gemme ændringer med VBA-adgangskode, og går det uden problemer ?
04. oktober 2001 - 14:04 #3
Jeg har ALDRIG oplevet den problemstilling før, og jeg har lavet et program eller to !

Jeg har lige lavet et hurtigt lille ark, med data i række 5-10, beskyttet arket med koden 1 og kørt din første makro og gemt efterfølgende HELT UDEN problemer.

Hvad gør du mon galt ?

Jeg kan kigge på det sidst på dagen - fd@win-consult.com husk at oplyse evt. koder.
04. oktober 2001 - 14:05 #4
Jeg havde selvfølgelig også beskyttet VBA koden.
04. oktober 2001 - 14:05 #5
Jeg kan sende arket til dig, hvis du vil ?
Avatar billede kmlp Nybegynder
04. oktober 2001 - 14:30 #6
Det må du meget gerne, så jeg kan teste om det har noget med min øvrige opsætning at gøre. Nu er jeg lige på vej ud ad døren, men jeg ser på det snarest - og tak so far! karsten_poulsen@man.dk
04. oktober 2001 - 14:36 #7
sendt
Avatar billede kmlp Nybegynder
05. oktober 2001 - 10:30 #8
OK, det her er måske ikke helt til kvajebajere, men det grænser...
Din testfil gav mig ingen problemer, så jeg lavede en lignende testfil, og den virkede også fint.
Først på det sted var det så lige, at jeg lagde mærke til, at den fil, jeg havde fået leveret som forlæg og som gav mig problemerne, oprindeligt må være lavet i en tidligere Excel-version. Det var ikke noget, der sprang i øjnene, for der kom hverken en konverteringsmeddelelse ved åbning af filen eller en dialogbox om filformat ved lukning. Men under \'Gem Som\' kunne man se, at Excel foreslog filtypen \'Excel 97-& 5.0/95\'. Og ganske rigtigt, efter en konvertering var problemet forsvundet.
Du får dine points for din hjælpsomhed og for at have fremprovokeret løsningen... :-)

05. oktober 2001 - 11:21 #9
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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