[vb vba?? excel]beveiligd excel bestand toch in script meene

Pagina: 1
Acties:
  • 1.072 views sinds 30-01-2008
  • Reageer

  • degroot
  • Registratie: December 2003
  • Niet online
ik heb een script gemaakt dat een aantal excel bestanden backupped.
dit gaat allemaal goed maar,
een excel bestand is beveiligd met een password en moet toch meegebackupped worden.
dit bestand moet dus geopend worden als een alleen lezen bestand om de macro in dat excel bestand uit te voeren.
ik heb al geprobeerd met de volgende stukjes code
code:
1
application.displayalerts = readonly

code:
1
settatrib = 2


dit bleek allemaal niet te werken
is hier misschien een oplossing voor? of is er een mogelijkheid dat het password automatisch word ingevuld?
het gaat om hetvolgende script dat excel opstart(in excel zit het backup script zelf)
code:
1
2
3
4
5
6
7
'backuppen van planning
Set appExcel = CreateObject("Excel.Application")
Set workbook = appExcel.WorkBooks.open("K:\zomer 2005\transportplanning\planningS05.xls")
appExcel.visible = true
appExcel.run "backup"
workbook.activate
workbook.close

www.degroot-it.nl


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13:28

Janoz

Moderator Devschuur®

!litemod

Waneer er een wachtwoord op een document zit is het natuurlijk niet de bedoeling dat er een manier is om toch met de data te kunnen werken zonder dit wachtwoord te kennen. Het hele nut van het wachtwoord is dan natuurlijk weg. Ale workarounds die de data toch kunnen benaderen zullen gebaseerd zijn op bugs of 'features' en zijn dus onbetrouwbaar.

Waarom backup je je data eigenlijk via een macro? Je zou toch ook gewoon de bestanden zelf kunnen backuppen?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • degroot
  • Registratie: December 2003
  • Niet online
Janoz schreef op 01 november 2004 @ 10:24:
Waarom backup je je data eigenlijk via een macro? Je zou toch ook gewoon de bestanden zelf kunnen backuppen?
klopt je kan dat lekker handmatig zelf doen
maar nu gaat alles automatisch op een bepaald tydstip met bepaalde documenten.
dus is een stukje automatisering he:D

er staat een wachtwoord op omdat het bestand op een netwerklocatie staat en dus voor iedereen te benaderen is.
een aantal mensen weten dit wachtwoord die in dit document mogen.
en de eigenaar van het bestand wil het toch mee laten backuppen.

www.degroot-it.nl


  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 18-12 10:45
Kijk even in je VBA help, dit is de syntax van je open commando:
code:
1
2
3
expression.Open(FileName, UpdateLinks, ReadOnly, Format, Password,
WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable,
Notify, Converter, AddToMru, Local, CorruptLoad, OpenConflictDocument)

Je ziet het al, je kan een password meegeven.
Let er wel op dat het password daarna in plain text in je code staat, weet niet of je daar bijster gelukkig van wordt.

  • degroot
  • Registratie: December 2003
  • Niet online
jah ik zie het maar als ik het goed begrijp kan ik het ook als alleen lezen openen??
dat wil ook werken met de macrotjes toch?

word de code dan iets in deze trend?
code:
1
expression.open.ignorereadonlyrecommended = true


in dit stukje script??
code:
1
2
3
4
5
6
7
'backuppen van planning
Set appExcel = CreateObject("Excel.Application")
Set workbook = appExcel.WorkBooks.open("K:\zomer 2005\transportplanning\planningS05.xls")
appExcel.visible = true
appExcel.run "backup"
workbook.activate
workbook.close

[ Voor 47% gewijzigd door degroot op 01-11-2004 11:52 ]

www.degroot-it.nl


Verwijderd

degroot schreef op 01 november 2004 @ 10:38:
[...]

klopt je kan dat lekker handmatig zelf doen
maar nu gaat alles automatisch op een bepaald tydstip met bepaalde documenten.
dus is een stukje automatisering he:D
of Scheduled Tasks / Geplande Taken 8)7

  • degroot
  • Registratie: December 2003
  • Niet online
Verwijderd schreef op 01 november 2004 @ 12:07:
[...]

of Scheduled Tasks / Geplande Taken 8)7
daar staat het script ingelade jah 8)7 heel goed :9
maar het is makkelijker om 1 script in te lade dan 10 excel bestanden die dwars door elkaar heen kunnen gaan lopen. in het script gaat ie ze 1 voor 1 af

www.degroot-it.nl


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 13:28

Janoz

Moderator Devschuur®

!litemod

Ik zie niet in waarom je niet gewoon een copy actie uit kunt voeren in je VB script ipv het excel document openen om vervolgens binnen dat excell document een macro uit te voeren.

Denk voor de grap eens logisch na. Zonder wachtwoord kom je er gewoon niet bij. Als je er immers zonder wachtwoord bij zou kunnen heeft het hele wachtwoord toch geen nut. Wat is het nut van het beveiligen van data met een wachtwoord als je vervolgens die data wel weer readonly kunt lezen?

Ik zie maar twee mogenlijkheden. Backuppen op een normale manier (dus gewoon door de bestanden te laten kopieren door een backup proces ipv een macro in het bestand zelf) of het wachtwoord opnemen in het script zelf. Die eerste optie lijkt me helemaal niet lastig aangezien je nu die bestanden ook al 1 voor 1 af gaat.

[ Voor 7% gewijzigd door Janoz op 01-11-2004 12:32 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • degroot
  • Registratie: December 2003
  • Niet online
Janoz schreef op 01 november 2004 @ 12:31:
Ik zie niet in waarom je niet gewoon een copy actie uit kunt voeren in je VB script ipv het excel document openen om vervolgens binnen dat excell document een macro uit te voeren.
ik voer geen copy actie uit omdat de macro in het excel bestand het excel bestandd wegschrijft naar aparte schijf met de datum van wanneer het gebackupped is.

backuppen op de normale manier kan idd ook.
maar dan geeft ie de datum niet mee in de titel.
en het is en blijft een uitdaging om iets te laten werken als je programmeerd toch??

het mooie van het script is dat je dat script vanaf iedere pc in het netwerk kan runne omdat de bestanden op een netwerk schijf staan.
als je pc crashed moet je alles weer in gaan lopen stellen in je backup programma.
nu gooi ik het script direct op een pc en hopla gaan met die banaan.

[ Voor 41% gewijzigd door degroot op 01-11-2004 12:44 ]

www.degroot-it.nl


  • degroot
  • Registratie: December 2003
  • Niet online
kickje en aanvullende info

ik doe dit in excel omdat het script excel opent.
daarin opent ie de macro backup
de macro backup selecteerd alle gegevens kopieert die en plakt ie daarna erover heen als waarde zodat alle formules eruit zijn.
daarna slaat ie het op onder het bestandnaams+datum

ik hoop dat het beetje duidelijk is waarom ik het in excel doe en waarom de andere opties daarom niet mogeljik zijn.

maar ik wil dan wel het password meegeven in de script maar hoe moet dat precies want van die help word ik niet echt wijzer van 8)7

www.degroot-it.nl


  • FireWood
  • Registratie: Augustus 2003
  • Laatst online: 17-12 21:52
Geoon kopieren met een vbscript, werkt op het netwerk, van elk staion af kun je ook de datum eraan hangen, geen wachtwoorden nodig om te kopieren en gegarandeerd success.

code:
1
2
3
dim oFS
set oFs=CreateObject("Scripting.FileSystemObject")
oFS.CopyFile "c:\1.txt", "c:\2.txt", true


Werkt perfect:
Opslaan als naam.vbs

[ Voor 27% gewijzigd door FireWood op 03-11-2004 18:15 ]

Noobs don't use "F1", Pro's do, but they can't find the information they needed


  • degroot
  • Registratie: December 2003
  • Niet online
jah werkt cker perfect
maar opent ie dan ook excel
kopieert ie dan ook de gegevens
en plakt ie die dan ook als waarde??
zo te zien niet???
dus die optie werkt helaas niet

www.degroot-it.nl


  • FireWood
  • Registratie: Augustus 2003
  • Laatst online: 17-12 21:52
Maakt toch niks uit????
Het doel bereik je, hoe maakt toch niet uit????

Dit werkt 200x zo snel, beter nauwkeruiger en veeel minder kansen op fouten

Trouwens, waarom is het bestand niet gewoon met rechten afgescherm van de andere users? Ga er toch vanuit dat er een Linux/Windows NT/2000/XP/2003 server aanwezig is?

Noobs don't use "F1", Pro's do, but they can't find the information they needed


  • degroot
  • Registratie: December 2003
  • Niet online
jawel maakt wel degelijk uit
dit zijn niet bestanden van zomaar 100kb groot maar van tientalle mb's
hoe snel het is maakt mij niet uit.
de backup's worden snagts uitgevoerd(en dan is er niemand opt bedrijf).
door de formule's die in de excel bestanden bevinden te kopieren en te plakken als waarden krimpt het bestand een flink stuk en word het iet wat sneller.
als dit script met ingevulde pw eenmaal werkt heeft het net zoveel kans op fouten dan jouw script om zomaar even te kopieren.

maar er MOET dus gekopieerd worden in excel en de data als waarde plakken.
dus excel moet dus ook geopend worden.

www.degroot-it.nl


  • degroot
  • Registratie: December 2003
  • Niet online
kick

www.degroot-it.nl


  • Mickman
  • Registratie: Juni 2001
  • Laatst online: 27-08 11:32
Je aanpak is verkeerd. (als we het dan toch over automatisering gaan praten)
Wat nu al je straks 3000 Excel bestanden wilt gaan backup op de manier zoals als jij het wilt doen?
Als je puur naar het backuppen kijkt, is het kopieren van die bestanden een stuk sneller. Wat is het voordeel om al die macro scripts in 1 backup bestand te hebben?

Verwijderd

hij zegt het ergens in een vorige post, het zijn excelbestanden die formules bevatten, maar hij wil de waardes kopiëren. in dat geval moet je ofwel de excelbestanden openen, ofwel zal je met ADO moeten werken (wat mij in dit geval eerder aangeraden lijkt, maar misschien is de TS nog onvoldoende hierin thuis om er onmiddellijk mee aan de slag te gaan)

voor het openen van beveiligde werkbladen, kan je hetvolgende doen:
code:
1
2
3
dim Cef as workbook
set cef= _
  workbooks.open(filename:="c:\tkeb\bronbestand.xls",password:="pw")
Pagina: 1