Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Macro's automatisch deleten  (gelezen 5398 keer)

0 leden en 1 gast bekijken dit topic.

Offline Torro

  • Lid
  • *
  • Berichten: 24
  • Oplossing.be
Macro's automatisch deleten
« Gepost op: 13 juli 2007, 15:04:43 »
Hallo excellers

Weet iemand of het mogelijk is om met wat codes,  macro's en/of codes in een xls.workbook automatisch niet meer te laten functioneren, of eventueel te deleten, door een van te voren aangeven datum?
Met vriendelijk groet
Torro
Geneva2 Acer, GeForce Go 7600, Windows XP, Home, SP2, NL, Genuine Intel(R) CPU           T2300  @ 1.66GHz, 2046 MB RAM, HDD:97 GB, FAT32, Norton AntiVirus, Internet Explorer 6.0, Outlook Express

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.181
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Macro's automatisch deleten
« Reactie #1 Gepost op: 13 juli 2007, 15:57:28 »
Hallo torro,

mogelijk is het zeker. Met Start, Prgramma's, Bureau-accesoires, Taakplanner, kan je een xls-bestand op een bepaalde dag, uur en minuut openen en starten, waarin een macro het te verwijderen bestand zal opruimen.

Het vraagt wel wat kennis van VBA om de macro te schrijven, alhoewel deze zeer eenvoudig kan zijn.

Dit laatste laat ik over aan de echte Excellers, anders ga ik toch fouten maken.

:) SoftAid :)       
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.280
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Macro's automatisch deleten
« Reactie #2 Gepost op: 13 juli 2007, 18:05:24 »
Hey SoftAid... 'k heb je een tijd niet gehoord op het forum. Vakantie gehad? 8)

Torro, je kan het jezelf heel simpel maken door je codeblokken te beginnen metSub...   ()
if Date >= Range("A1").value then Exit Sub

...rest van je code

End Sub

Je plaatst dan ergens in je sheet (in het voorbeeld cel A1) de datum waarop je wilt dat de code 'het niet meer doet'. Je kan er natuurlijk ook voor kiezen om de 'sluit-datum' als een constante in je code mee te geven. Wat doet het? Als de datum die je hebt opgegeven is bereikt, zal het if-statement er voor zorgen dat het codeblok wordt verlaten. Je kan eventueel nog een msgbox tonen met de mededellng dat de bewerking niet meer automatisch gaat. Anders snapt de gebruiker het welllicht niet meer....
Ik heb trouwens ooit op het net ergens code gevonden die zorgt voor het verwijderen van VBA-code. De maker (een goeroe) gaf zelf aan er ERG voorzichtig mee om te gaan. Dus ik denk dat mijn oplossing helemaal zo gek nog niet is... ;D

Groet, Leo
______________________________

Groet, Leo

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: Macro's automatisch deleten
« Reactie #3 Gepost op: 13 juli 2007, 19:25:15 »
Leo,

Gewoon effe datum van je PC terugzetten en je bent "binnen".

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.280
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Macro's automatisch deleten
« Reactie #4 Gepost op: 13 juli 2007, 21:14:40 »
Erik, je hebt wel gelijk... Maar ik vraag me af waarom je veel moeite doet om iets te automatiseren met behulp van VBA, om het vervolgens de nek om te draaien. Wat kan er dan zo belangrijk zijn dat je de code niet meer mag gebruiken? Ik geef toe, het is een simpele oplossing die kwa beveiliging nogal 'rammelt', maar hoe gewiekst zijn de gebruikers en hoeveel belang hebben ze er bij om de systeemdatum terug te zetten.

Maar ok... een zéér permanente oplossing kan ook!  ;D

Torro, plaats deze code in je ThisWorkbook module van je VBE.Private Sub Workbook_Open()
On Error Resume Next
Const cVerwijderDatum = "14-7-2007"

    If Date >= cVerwijderDatum Then
       
        With ActiveWorkbook.VBProject
            'vervang 'MagWeg' voor je eigen module-naam
            .vbcomponents.Remove .vbcomponents("MagWeg")
            'volgende regel is nodig op het moment dat de module reeds is verwijderd
            If Err.Number = 9 Then GoTo Einde
        End With
       
        MsgBox "De automatiseringstoepassingen zijn verwijderd!", _
                vbOKOnly + vbExclamation, "On your own now... ;-)"
    End If

Einde:
End Sub
Maak een aparte module aan met de code die je wilt verwijderen en plaats daar de betreffende (te verwijderen) code in. Geef die module een duidelijke naam. Zet de 'constante' cVerwijderDatum in mijn codeblokje op de gewenste startdatum en verander de 'voorbeeld-module-naam' (MagWeg) in je eigen gecreeerde modulenaam.
Bij iedere 'opening' van het workbook zal er gekeken worden of de datum is overschreden. Zo ja, dan gaat het if-statement in werking en wordt de complete aangewezen module uit het workbook verwijderd.

Groet, Leo

BELANGRIJK Zorg er dus wel voor dat je te verwijderen code elders in een workbook hebt staan, anders zal je alles weer opnieuw moeten ontwikkelen!!!!

EDIT: Leuk... ik zie nu dat dit is mijn 400-ste bericht is... ;D ;D
______________________________

Groet, Leo

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: Macro's automatisch deleten
« Reactie #5 Gepost op: 14 juli 2007, 22:37:55 »
Hoi,

Het is de laatste dagen erg druk voor mij. Ik had een bericht geschreven en dacht dat dit verzonden was. Vandaar mijn vorige korte reply.

Dit is ongeveer wat ik geschreven had:
Dag, Torro,

Mijn indruk van jouw vraag is dat je een werkboek slechts gedurende een bepaalde tijd beschikbaar wil houden voor de gebruiker.
Vooreerst moet je rekening houden met een aantal zaken:
1. Excel is niet de meest waterdichte omgeving om zoiets helemaal uit te werken.
2. Als professionele ontwerpers willen we niet al onze geheimen, waar we zo hard aan gewerkt hebben, zomaar prijsgeven. Zo hebben onze "echte" projecten toch nog iets exclusiefs. Hopelijk begrijp je dit.
3. Er zijn wel enkele simpele mogelijkheden, die de meeste doorsneegebruikers kunnen buiten houden: ook diegenen die aan hun systeemdatum prutsen.

Een kleine beschrijving van (de aard van) je werkboek is in dit geval nuttig. Dit om op te sporen op welke plek de zaak best "gesabotteerd" kan worden. Het is misschien niet de code die vernietigd moet worden, althans niet compleet: er zijn nog andere mogelijkheden.

beste groeten,
Erik

Offline Torro

  • Lid
  • *
  • Berichten: 24
  • Oplossing.be
Re: Macro's automatisch deleten
« Reactie #6 Gepost op: 15 juli 2007, 11:24:03 »
Hallo Erik, Leo en Softaid .
Sorry voor de late reactie t.o.v. jullie oplossingen, ik ga de oplossingen proberen op een test file, en dan maar eens kijken wat er gebeurd.
Leo, ik lees dat je nu 400 berichten hebt geplaatst,  :)
daar heeft heel wat werk in gezeten, bedankt !
Erik, mijn workbook gaat over energiemonitoring met de daarbij behorende grafieken, trends, flowschema's en looplijsten met meterstanden, welke iedere maand ingevuld worden, en de uitkomsten worden via macro's. en code's  gebruikt  in het monitoringssysteem.
Ik hoop dat het een beetje duidelijk is wat ik met het workbook bedrijf.
Groet Torro
Geneva2 Acer, GeForce Go 7600, Windows XP, Home, SP2, NL, Genuine Intel(R) CPU           T2300  @ 1.66GHz, 2046 MB RAM, HDD:97 GB, FAT32, Norton AntiVirus, Internet Explorer 6.0, Outlook Express

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.280
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Macro's automatisch deleten
« Reactie #7 Gepost op: 15 juli 2007, 20:17:12 »
Torro, Late reacties zijn niet erg. ALS de vraagsteller maar reageert, dat is belangrijk!

Succes met testen. Laat ff weten of het gelukt is, of dat je nog wat problemen hebt overgehouden...

Groet, Leo
______________________________

Groet, Leo

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: Macro's automatisch deleten
« Reactie #8 Gepost op: 16 juli 2007, 16:10:14 »
Torro,

Zijn er ook formules in je werkmap? Wellicht wel! Je spreekt immers over uitkomsten.
Wat moet er precies worden gestopt na bepaalde tijd:
1. invoer gegevens
2. output: grafieken, formules
3. enkel de macros

Vind je het erg als de slimste gebruikers je beveiliging omzeilen? Met andere woorden, neem je er genoegen mee dat enkel de doorsnee gebruikers moeten "plooien" voor jouw restricties? Hebben de gebruikers bijvoorbeeld de mogelijkheid om hun datum te wijzigen?

Je kan ook best eens een paar regeltjes van zo'n macro sturen: dat kan ons nog op wat ideeën brengen.

Offline Torro

  • Lid
  • *
  • Berichten: 24
  • Oplossing.be
Re: Macro's automatisch deleten
« Reactie #9 Gepost op: 17 juli 2007, 13:59:37 »
Erik

Ik zou graag willen dat de macros en de invoer van gegevens stoppen op een bepaalde tijd.
De gebruikers kunnen de datum wijzigen.

Ik doe er een stukje van de macros bij als bijlage, ik hoop dat je het kunt lezen want het staat nogal door elkaar de codes.

Groet Torro
Geneva2 Acer, GeForce Go 7600, Windows XP, Home, SP2, NL, Genuine Intel(R) CPU           T2300  @ 1.66GHz, 2046 MB RAM, HDD:97 GB, FAT32, Norton AntiVirus, Internet Explorer 6.0, Outlook Express

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.280
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Macro's automatisch deleten
« Reactie #10 Gepost op: 17 juli 2007, 22:52:59 »
Torro, Ik ben ff door je code gegaan en heb 't een en ander als 'commentaar' gezet. De macrorecorder geeft bij het opnemen nogal wat 'ballast' mee, die je rustig na opname kan verwijderen. Zeker alle 'select's' moet je vermijden. Die vertragen flink als je code langer wordt.

Voor de standaard gebruiker zou het workbook nu beveiligd moeten zijn (met password) als de datum bereikt wordt (zie module ThisWorkbook). De knoppen 'beveilig' en ' onbeveilig' zijn tijdelijk in de sheet gezet als test. Die moet je uiteraard niet tonen!

Kijk maar of je 't wat vindt...

Groet, Leo
______________________________

Groet, Leo

Offline Torro

  • Lid
  • *
  • Berichten: 24
  • Oplossing.be
Re: Macro's automatisch deleten
« Reactie #11 Gepost op: 25 juli 2007, 21:36:12 »
Hallo Redhead en de andere excel experts

Na wat gepuzzel met de codes heb ik het nu voor elkaar zodat de macro's op een van te voren bepaalde datum stoppen.
Ik wil jullie allen bedanken voor de reakties en adviezen voor mijn probleem, en tot de volgende keer, als ik weer een probleem heb met de excel goocheldoos. ;)

Groet Torro
Geneva2 Acer, GeForce Go 7600, Windows XP, Home, SP2, NL, Genuine Intel(R) CPU           T2300  @ 1.66GHz, 2046 MB RAM, HDD:97 GB, FAT32, Norton AntiVirus, Internet Explorer 6.0, Outlook Express

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.280
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Macro's automatisch deleten
« Reactie #12 Gepost op: 25 juli 2007, 22:01:25 »
Torro, graag gedaan. Tot een volgende 'quest'... ;D

Groet, Leo
______________________________

Groet, Leo

 


www.combell.com