• 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.

gegevensvalidatie en/of beveiliging toepassen

Status
Niet open voor verdere reacties.

xmir

Gebruiker
Lid geworden
12 mrt 2011
Berichten
212
Hoi allen,

Ik ben op zoek naar het volgende maar kan het helaas niet vinden:
Ik heb een excel bestand met 52 tabbladen (weken vh jaar) die exact dezelfde indeling hebben. Nu wil ik in een bepaald bereik van ieder tabblad gebruik maken van gegevensvalidatie terwijl niet alles overschreven mag worden (het is een rooster en er zijn in bepaalde weken/tabbladen al vakanties ingevuld). Ik kan dus niet alle bladen selecteren en de gehele inhoud van een geselecteerd gebied overnemen naar de rest. Met het alleen overschrijven van de opmaak wordt de validatie niet meegenomen. Is er een mogelijkheid om deze validatie toch op alle bladen tegelijk in te stellen? Zelfde vraag geldt voor het beveiligen van de tabbladen.

Alvast bedankt,

Mirjam
 
Voor de validatie heb ik een benoemdbereik aangemaakt met de naam test.

Code:
Sub Macro1()

    For Each sh In ThisWorkbook.Worksheets
        If sh.Name <> "naam voor eventueel uit te sluiten blad" Then
            With sh.Range("A1").Validation
                .Delete
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                xlBetween, Formula1:="=test"
                .IgnoreBlank = True
                .InCellDropdown = True
                .ShowInput = True
            End With
        End If
        sh.Protect Password:="1234"
    Next
    
End Sub

Niels
 
Hoi Niels,

Ik moet eerlijk bekennen dat ik hier niet zo in thuis ben. Ik heb een voorbeeldbestand toegevoegd.
Op tabblad mrt wk12 wordt i5 tm at101 gevalideerd met de lijst "zelf". Deze validatie wil ik snel door kunnen voeren op alle andere tabbladen behalve "vaste werktijden" en "lijsten"
Het celbereik voor de validatie is op alle tabbladen hetzelfde (tabblad wk13 is hier een voorbeeld van).

Zou je aan de hand hiervan iets specifieker kunnen vertellen wat ik kan doen en is er tevens ook de mogelijkheid om op dezelfde wijze de validatie op te heffen?

Overigens mag de verdere inhoud van de cellen op de tabbladen (i5 tm at 101) dus niet wijzigen. Ook zou het fijn zijn als ik op alle tabbladen de formules kan verbergen zonder alles te beveiligen, kan dat?

Dank,

Groetjes Mirjam


Bekijk bijlage testmap.xlsm
 
Laatst bewerkt door een moderator:
Sorry ik begrijp niet helemaal wat je bedoelt,
In deze cellen staan formules, waarom wil je er dan een validatie in hebben.
als je dan een validatie kiest ben je de formule kwijt.

Niels
 
Als ik kies voor validatie volgens die lijst zoals ik heb gedaan dan blijft de formule gewoon staan. Op het moment dat er iets ingevuld wordt in een cel is de formule natuurlijk weg maar dat is geen probleem. Het is een rooster waar mensen als de basis er eenmaal is, ook zelf dingen in kunnen vullen maar ze mogen niet alles invullen, vandaar dat ik dat wil beperken middels die validatie. Dat in die betreffende cellen de formule dan weg is is dus geen probleem.
Hopelijk snap je nu de bedoeling? Alleen kan men nu in al die weken waarbij ik de validatie nog niet heb ingesteld nog wel alles invullen, vandaar dat ik hoopte dat ik voor alle weken tegelijk dat in kan stellen.
 
hmh...bij f5 krijg ik een "ga naar" schermpje maar er wordt geen macro uitgevoerd??
 
je moet eerst alt-f11 doen, id de macro klikken die verschijnt en dan F5.


Niels
 
Ik krijg het nog niet voor elkaar in mijn echte bestand dus dat wordt nog even puzzelen vrees ik :(

Bedankt in elk geval voor je hulp!
 
Kopieer de macrotekst.
In je bestand alt f11
Links in beeld Rmuisknop op een sheetnaam
Invoegen module
Daar de code plakken

Niels
 
Het echte bestand bestaat uit meer tabbladen die uitgezonderd moeten worden dus dat moet ik ook aanpassen....het echte bestand is helaas te groot om hier mee te sturen :(
 
Ik hoop dat je nu wel in de gaten krijgt dat dat je alle info moet geven die belangrijk is.

Vervang het stukje waar de blad namen worden gecontroleerd door:

Code:
if instr("vaste werktijden|lijsten|ander blad|nog een blad|enz.",sh.name) = 0 then

Niels
 
Hoi Niels,

Dat had ik ook wel in de gaten, ik heb hier al vaker vragen gepost en normaal gesproken kom ik er dan ook wel uit, ook al moet ik zelf nog dingen aanpassen maar met dit soort macro's ben ik wat minder bekend. Vandaar.
Ik zal het onderwerp op opgelost zetten en ik ga aan de slag met de macro.
Dank je wel!

Groetjes Mirjam
 
Toch nog niet...ik krijg een foutmelding: fout 1004 tijdens uitvoering. Controle geeft dan het volgende gearceerd:

.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=zelf"
 
bestaat het benoemde bereik zelf in je bestand?

probeer hem anders zo, misschien dat er een waarde in een cel staat die volgens de validatie niet mag.

Code:
Sub Macro1()

    For Each sh In ThisWorkbook.Worksheets
        If InStr("vaste werktijden|lijsten|ander blad|nog een blad|enz.", sh.Name) = 0 Then
            With sh.Range("I5:AT101").Validation
                .Delete
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=zelf"
                .IgnoreBlank = True
                .InCellDropdown = True
                .ShowInput = True
                .ShowError = False
            End With
        End If
        
    Next
    
End Sub


Niels
 
Laatst bewerkt:
Helaas weer een foutmelding in:

.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=zelf"

Gekke is dat hij in de testsheet die foutmelding niet geeft...kan het verschil niet ontdekken.
 
blad mrt 2012 is beveiligd, haal de beveiliging eraf en hij werkt.

Niels
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan