• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Vba

  • Onderwerp starter Onderwerp starter ppms
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

ppms

Gebruiker
Lid geworden
19 aug 2006
Berichten
226
Hallo,

Is het mogelijk om iets te maken in VBA dat een programma b.v. van 30 november t/m 3 december de bladen gebruikt kunnen worden en daarna geen wijzigingen meer kunnen worden uitgevoerd maar wel zo dat ik zelf die code weer vrij kan geven met b.v. een wachtwoord. Ook dat ik de datums steeds kan aanpassen in VBA. Het VBA is beveiligt met een wachtwoord.

Groet PPMS
 
Wigi,

Inderdaad daar heb ik wat aan het zou alleen fijn zijn dat de beveiliging met de eigen pincode wordt beveiligd. Laat hierbij een macro zien hoe ik dat zelf doe, de code heb ik nu even weergegeven met sterretjes.

Const PW As String = "********"
Sub sorterenopkoppel()
'
' sorterenopkoppel Macro
' De macro is opgenomen op 7-11-99 door PPMS.
'

'
ActiveSheet.Unprotect (PW)
Application.ScreenUpdating = False
Dim MijnSelectie
Range("A12:Y91").Select
Selection.Sort Key1:=Range("A12"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B12:Y91").Select
Selection.Sort Key1:=Range("B12"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("C12").Select
Application.ScreenUpdating = True
ActiveSheet.Protect Password:=PW, DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Groet PPMS
 
Wigi,

Vergeet ik het wissen dat hoeft ook niet het gaat er dus alleen om dat het blad niet meer gebruikt kan worden.

Groet PPMS
 
ppms

1. Waartoe dient de variabele MijnSelectie?

2. Waar is de code om aan te geven dat er tussen bepaalde datums gewerkt moet worden?

Hier is al wat opgekuiste code:

Code:
Const PW As String = "********"
Sub sorterenopkoppel()

Dim MijnSelectie As Range

ActiveSheet.Unprotect (PW)
Application.ScreenUpdating = False

Range("A12:Y91").Sort Key1:=Range("A12"), Order1:=xlAscending, Header:=xlNo, Orientation:=xlTopToBottom
Range("B12:Y91").Sort Key1:=Range("B12"), Order1:=xlAscending, Header:=xlNo, Orientation:=xlTopToBottom

Application.ScreenUpdating = True
ActiveSheet.Protect Password:=PW, DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Wigi
 
Wigi,

Heel dom maar was verkeerde macro nu de juiste

Private Sub Workbook_Open()
Dim MijnDatum, MijnTijd
Worksheets("Blad1").Unprotect
MijnDatum = DateValue("16 december 2006")
MijnTijd = TimeValue("6:12:01")
If Now > MijnDatum + MijnTijd Then
Range("C15,C12,C9").Select
Range("C9").Activate
Selection.Locked = True
Selection.FormulaHidden = False
End If
Worksheets("Blad1").Protect
End Sub

Het werkblad is beveiligd met een wachtwoord bijvoorbeeld 1234 en het zou fijn zijn als na deze actie ook die cellen nu worden geblokkeerd met het zelfde wachtwoord bijvoorbeeld 1234 als het werkblad beveiligd zou zijn.

Groet PPMS
 
Wigi,

Ik ben er al uit maar misschien wil je even kijken of het zo redelijk is en misschien heb je nog een goede raad of aanpassing over dit stukje VBA,

Private Sub Workbook_Open()
Dim MijnDatum, MijnTijd
Worksheets("Blad1").Unprotect ("1234")
MijnDatum = DateValue("16 december 2006")
MijnTijd = TimeValue("7:00:01")
If Now > MijnDatum + MijnTijd Then
Range("C15,C12,C9").Select
Range("C9").Activate
Selection.Locked = True
Selection.FormulaHidden = False
End If
Worksheets("Blad1").Protect Password:="1234", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Groet PPMS
 
PPMS

Code:
Private Sub Workbook_Open()
Dim MijnDatum As Date, MijnTijd
Sheets("Blad1").Unprotect ("1234")
MijnDatum = DateValue("16 december 2006")
MijnTijd = TimeValue("7:00:01")

If Now > MijnDatum + MijnTijd Then
    With Range("C15,C12,C9")
        .Locked = True
        .FormulaHidden = False
    End With
End If
Sheets("Blad1").Protect Password:="1234", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Vooral de With statement is belangrijk. Select en Activate moet je vermijden.

Wigi
 
Nog om te onthouden in het vervolg hier op het forum:

Gebruik eens code tags om je code beter op te maken. Selecteer je code en klik op het hekje.

Bedankt.
 
Wigi,

Als eerste bedankt voor je hulp en tips tot zover werkt alles naar behoren. Er werken diversen mensen met het programma bij een toernooi en wil met het blokkeren verhinderen dat de volgende dag nog per ongeluk wijzigingen worden aangebracht in de standen. Heb ook deze keer best weer het een en ander geleerd ook al ben ik nog maar een heel klein amateurtje in VBA.

Het volgens wat je schreef snap ik niet helemaal wat en hoe ik moet handelen,

Gebruik eens code tags om je code beter op te maken. Selecteer je code en klik op het hekje.

Heb alles geselecteerd maar zie geen hekje graag hierover nog wat uitleg als je daar tijd voor heb.

Nogmaals bedankt en het forum is echt heel goed met de juiste vakmensen erbij.

Groet PPMS
 
Range("A1").ClearContents

en

Code:
Range("A1").ClearContents

Zie je het verschil? Je krijgt dit, als je een bericht typt, door de tekst te selecteren en dan op de 2de lijn op het derde laatste pictogram te typen.

Wigi
 
Wigi,

Is het ook nog mogelijk dat met deze code om er nog wat bij te zetten dat tevens alle macro's die in module staan worden uitgeschakeld in deze werkmap. Er kan zo niets veranderd worden maar sorteren is nog wel mogelijk en zou fijn zijn als dit ook werdt geblokkerd.

Private Sub Workbook_Open()
Dim MijnDatum As Date, MijnTijd
Sheets("Blad1").Unprotect ("1234")
MijnDatum = DateValue("16 december 2006")
MijnTijd = TimeValue("7:00:01")

If Now > MijnDatum + MijnTijd Then
With Range("C15,C12,C9")
.Locked = True
.FormulaHidden = False
End With
End If
Sheets("Blad1").Protect Password:="1234", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Groet PPMS
 
mmmmmmm,

Ik ga graag met Wigi mee wat betreft het plaatsen van code tussen de tags.
Selecteer je code en druk op het # symbool in het berichten scherm.
Hierdoor wordt je code een stuk overzichtelijker en heb je een grotere kans dat je vraag (sneller) wordt beantwoord :).

Probeer deze lijn eens.
Code:
Sheets("Blad1").Protect Password:="1234", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowSorting:=True


Groet,
Ferenc
 
Code:
Private Sub Workbook_Open()
Dim MijnDatum As Date

Sheets("Blad1").Unprotect ("1234")

MijnDatum = DateValue("16 december 2006")
MijnTijd = TimeValue("7:00:01")

    If Now > MijnDatum + MijnTijd Then
        With Range("C15,C12,C9")
            .Locked = True
            .FormulaHidden = False
        End With
    End If
    
Sheets("Blad1").Protect Password:="1234", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowSorting:=True

End Sub

ziet er toch beter uit dan:

Private Sub Workbook_Open()
Dim MijnDatum As Date, MijnTijd
Sheets("Blad1").Unprotect ("1234")
MijnDatum = DateValue("16 december 2006")
MijnTijd = TimeValue("7:00:01")

If Now > MijnDatum + MijnTijd Then
With Range("C15,C12,C9")
.Locked = True
.FormulaHidden = False
End With
End If
Sheets("Blad1").Protect Password:="1234", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

zeg nou eens eerlijk :)


Succes,
Ferenc
 
Over de plaatsen van VBA code tussen code tags: de echten gebruiken:

doe:

Code:
'jouw code
[/ code]

en de spatie tussen / en code moet nog weg. (maar anders kan ik het niet laten zien.

Kan ook:

[vba]
'jouw code
[/ vba]


Wigi
 
Wigi en Demeter,

Het wil even niet zo daar ik chronische pijnpatiënt ben en dan soms wat dagen bed moeten houden en nu moeite heb om me te kunnen consenteren met het VBA zeker als amateurtje op VBA gebied. Ik kom er zeker op terug daar het zo van de een op de andere dag het weer dragelijk kan zijn. Nog even dit is zeker niet zielig en zie alles positief het is alleen af en toe lastig.

Groet PPMS
 
Wigi en Demeter,

Het wil even niet zo daar ik chronische pijnpatiënt ben en dan soms wat dagen bed moeten houden en nu moeite heb om me te kunnen consenteren met het VBA zeker als amateurtje op VBA gebied. Ik kom er zeker op terug daar het zo van de een op de andere dag het weer dragelijk kan zijn. Nog even dit is zeker niet zielig en zie alles positief het is alleen af en toe lastig.

Groet PPMS

Voor jouw situatie heb ik heel veel respect PPMS. Als je zelf niet in zo'n situatie zit, weet je helemaal niet hoe zwaar het kan zijn voor iemand. Ik wens je ongelooflijk veel moed en sterkte in het nieuwe jaar.

Over de vraag: laat hem zo maar staan, we lezen het wel wanneer je aan de beterhand bent. Ik merk ook dat je in deze topic niet zo goed geholpen bent als anderen in andere topics (al is het wel een lastige vraag), maar een extra inspanning op tijd en stond gaat voor jou zeker nog komen.

Wigi
 
Hallo,

Het heeft deze keer wat langer geduurd de pijn maar we zijn weer bij de mensen en ga weer zo snel mogelijk met de vragen komen is het niet dit jaar dan zeker begin 2007. Wigi, Demeter en alle mensen van Helpmij een hele fijne jaarwisseling en vooral een gezond 2007 toegewenst.

Groet PPMS
 
ppms,

Kom maar op met die vragen :).
Prettige jaarwisseling en een gezond en succesvol 2007 gewenst.

Ook in 2007 gaan we weer wat van elkaar leren.


Groet,
Ferenc
 
Hallo,

Code:
Private Sub Workbook_Open()
    Application.DisplayFormulaBar = False
    Application.DisplayStatusBar = False
    Application.CommandBars("Standard").Visible = False
    Application.CommandBars("Formatting").Visible = False
    Application.CommandBars("Worksheet Menu Bar").Enabled = False
    
    Dim MijnDatum, MijnTijd
Worksheets("toernooi").Unprotect ("sc1234")
MijnDatum = DateValue("31 december 2007")
MijnTijd = TimeValue("00:00:01")

If Now > MijnDatum + MijnTijd Then
    With Range("F9:V9,C12:D91,H12:V91,Y12:Y91")
        .Locked = True
        .FormulaHidden = False
    End With
End If
Worksheets("toernooi").Protect Password:="sc1234", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Dit werkt heel goed maar zou nu nog de macro’s die op het blad toernooi staan ook willen uitschakelen. Kleine uitleg het programma wordt gebruikt bij toernooien van de Jeu de Boules vereniging waarvan ik niet spelend lid ben maar al vanaf 1994 het wedstrijdsecretariaat doe. Nu dat het steeds meer met de gezondheid achteruit gaat en zelf niet meer heel de dag aanwezig kan zijn doen anderen het programma gebruiken Het gebeurt nogal eens dat ik geen compleet beeld meer had van een gespeeld toernooi daar sommige even kijken hoe het een en ander werkt in het programma. Nu kan er al niet meer worden geknoeid in de cellen de volgende dag maar nog wel de macro’s te gebruiken. Hoop dat het een en ander duidelijk is het is best moeilijk te omschrijven, zie graag jullie reactie tegemoet.

Groet PPMS
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan