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

Aanpassing bestaande macro

Status
Niet open voor verdere reacties.

s0me0neelse

Gebruiker
Lid geworden
1 okt 2017
Berichten
218
Hoi,

Is het mogelijk onderstaande macro dusdanig aan te passen dat alle cellen die
een formule bevatten worden beveiligd zoals met "Zie bijlage"

Code:
Sub Protectsheets()
'
' Protectsheets Makro
' Alle sheets beveiligen met objekt bearbeitung mogelijk
'
' Tastenkombination: Strg+Umschalt+P
'
    Sheets("18").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("20").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("21").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("22").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
End Sub
 

Bijlagen

  • validatie.jpg
    validatie.jpg
    36,3 KB · Weergaven: 56
Het plaatje toont geen formule maar Gegevensvalidatie.
Niet duidelijk wat je nu precies wil.
 
deze oplossing "plaatje" om formules te beveligen tegen per ongeluk verwijderen, terwijl verder geen beveiligingen zijn toegepast, heb ik in dit forum gekregen.
Nu haal ik de "sheet" beveiligingen weg met ctrl-u (unprotect) om de opmaak te kunnen wijzigen.
Cellen met een formule, die ik handmatig tegen wissen "plaatje" heb beveiligd, (kunnen na ctrl-u) nog steeds niet per ongeluk worden gewist.

Nu moet ik na ctrl-u de cellen waarvan ik de formule wil wijzigen handmatig selecteren en dan "Gegevensvalidatie/alles wissen" toepassen, voordat ik
aan de gang kan en na bewerken hetzelfde weer in omgekeerde richting!

Wat natuurlijk een stuk minder bewerkelijk zou zijn, is om 2 macro's te gebruiken :
1) de macro zoals in bovenstaande code voor kleine optische veranderingen
2) dezelfde macro maar zo aangepast dat de met bovenstaande methode "plaatje" beveiligde cellen ook bewerkbaar worden.

en ditzelfde ook in omgekeerde richting, alleen dan ctrl-p waarmee gewoon alles wordt beveiligd

Ik hoop dat ik duidelijk heb kunnen maken wat ik bedoel?
Ik gebruik 10 sheets die helaas bij wijzigingen in 1 ervan, in de overige 9 ook veranderd moeten worden.
90% van m'n tijd ben ik bezig met beveiligingen weghalen en weer terug erop zetten.
 
Laatst bewerkt:
Ik gebruik excel mbv simpele + - / * berekeningen en heb alle
macro's dankzij de hulp in dit forum. Met andere woorden : Ik
wil er wel naar kijken maar heb helaas geen flauw idee hoe
ik deze code zou moeten toepassen.

Kan ik die gewoon in de bestaande macro kopieeren ?
 
Wat heeft deze bijlage met de vraag te maken? Ik zie maar 1 werkblad en geen formules en een boel modules waar niet veel zinnigs in staat. Het plaatje uit #1 staat er ook in maar is zoals eerder opgemerkt geen formule.
 
Sorry, ik kan niet m'n volledige financiele bestanden hier openbaar maken, is waarschijnlijk te begrijpen.

Het bestandje wat ik heb bijgevoegd daar heb ik in de desbetreffende cel aangegeven dat ik deze
"beveiligd" heb met de ="" validatie, deze doet verder hetzelfde wat ook in m'n orginele sheets gebeurd :
formules en teksten beschermen tegen wissen/veranderen in een onbeveiligd werkblad..

De validatie ="" die bewerken onmogelijk maakt tot deze validatie weer wordt opgeheven maakt
het niet uit of het tekst of formules zijn.

Ik denk dat de door mij in het bestandje geschreven teksten voor zich zouden moeten spreken.
Dat het geen formule is maar een validatie daar kan ik verder niets aan veranderen, het doet echter
precies wat het moet doen, te weten : de gekozen cellen beveiligen tegen bewerking!

Ik begrijp niet wat er aan mijn vraag zo moeilijk is, volgens mij is het best wel zinnig wat er
geschreven staat...
Deze validatie opnemen in de macro ctrl-shift-p om cellen met een "formule" in alle sheets in een
keer te beveiligen tegen bewerking.
Deze validatie "Alles wissen" opnemen in de macro ctrl-shift-u om cellen met een "formule" in alle
sheets in een keer vrij te geven voor bewerking.

Dat de oplossing moeilijk en misschien zelfs onmogelijk is, dat kan, daar moet ik dan mee leven. Dat
blijkbaar m'n vraag onduidelijk is of niet wordt begrepen daar is iets aan te doen.

P.S.
Ik zal de "protect" macro hier plaatsen, al deze werkbladen worden met de macro
beveiligd, hier zou volgens mij de aanpassing "indien mogelijk" op z'n plaats zijn.

Code:
Sub Protectsheets()
'
' Protectsheets Makro
' Alle sheets beveiligen met objekt bearbeitung mogelijk
'
' Tastenkombination: Strg+Umschalt+P
'
    Sheets("18").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("20").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("21").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("22").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("23").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("24").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("25").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("26").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("27").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("28").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("29").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("30").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("Ei").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("Ink").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("Be").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("Le").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("Fe").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("Vak").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("Tu").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("div").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("Go").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("glw").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("Winkel").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("aow").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("adressen").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("auto").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("Verbruik").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("tilgung").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("bsn").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("Help").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("Polis").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
    Sheets("19").Select
    ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
        True
End Sub

Unprotect
Code:
Sub Unprotect()
'
' Unprotect Makro
' Sheets beveiliging wegnemen
'
' Tastenkombination: Strg+Umschalt+U
'
    Sheets("18").Select
    ActiveSheet.Unprotect
    Sheets("20").Select
    ActiveSheet.Unprotect
    Sheets("21").Select
    ActiveSheet.Unprotect
    Sheets("22").Select
    ActiveSheet.Unprotect
    Sheets("23").Select
    ActiveSheet.Unprotect
    Sheets("24").Select
    ActiveSheet.Unprotect
    Sheets("25").Select
    ActiveSheet.Unprotect
    Sheets("26").Select
    ActiveSheet.Unprotect
    Sheets("27").Select
    ActiveSheet.Unprotect
    Sheets("28").Select
    ActiveSheet.Unprotect
    Sheets("29").Select
    ActiveSheet.Unprotect
    Sheets("30").Select
    ActiveSheet.Unprotect
    Sheets("Ei").Select
    ActiveSheet.Unprotect
    Sheets("Ink").Select
    ActiveSheet.Unprotect
    Sheets("Be").Select
    ActiveSheet.Unprotect
    Sheets("Le").Select
    ActiveSheet.Unprotect
    Sheets("Fe").Select
    ActiveSheet.Unprotect
    Sheets("Vak").Select
    ActiveSheet.Unprotect
    Sheets("Tu").Select
    ActiveSheet.Unprotect
    Sheets("div").Select
    ActiveSheet.Unprotect
    Sheets("Go").Select
    ActiveSheet.Unprotect
    Sheets("glw").Select
    ActiveSheet.Unprotect
    Sheets("Winkel").Select
    ActiveSheet.Unprotect
    Sheets("aow").Select
    ActiveSheet.Unprotect
    Sheets("adressen").Select
    ActiveSheet.Unprotect
    Sheets("auto").Select
    ActiveSheet.Unprotect
    Sheets("Verbruik").Select
    ActiveSheet.Unprotect
    Sheets("tilgung").Select
    ActiveSheet.Unprotect
    Sheets("bsn").Select
    ActiveSheet.Unprotect
    Sheets("Help").Select
    ActiveSheet.Unprotect
    Sheets("Polis").Select
    ActiveSheet.Unprotect
    Sheets("19").Select
    ActiveSheet.Unprotect
End Sub
 
Laatst bewerkt:
Ik snap nog niet wat je wilt, maar ik zou het schrijven zoals dit voorbeeld:
Code:
Sub Protectsheets()
[COLOR="#008000"]'
' Protectsheets Makro
' Alle sheets beveiligen met objekt bearbeitung mogelijk
'
' Tastenkombination: Strg+Umschalt+P[/COLOR]
    
    Dim Bladen As String
    Bladen = "18,20,21,22,23,24,25,26,27,28,29,30,Ei,Ink,Be,Le,Fe,Vak,Tu,Div,Go,glw,Winkel,aow,adessen,auto,Verbruik,tilgung,bsn,Help,polis,19"

    bld = Split(bladen, ",")
    For i = 0 To UBound(bld)
        Sheets(bld(i)).Protect DrawingObjects:=False, Contents:=True, Scenarios:=True
    Next i
End Sub

En dan ook zo voor de Unprotect.
 
Laatst bewerkt:
@ed.

Code:
bld = Split(bladen, ",")
    For i = 0 To UBound(bld)
 
Helemaal goed.
Ik dacht dat ik dat al had gewijzigd.
 
Ik snap nog niet wat je wilt

Edmoor, jammer dat ik niet instaat ben m'n bedoeling duidelijk te maken ;-(
Vandaag helaas geen tijd meer, morgen ga ik met de aangepaste makro aan de gang.

Alvast bedankt voor het zoeken naar een oplossing !
 
en welke cel(len)is/zijn op deze wijze beveiligd in je voorbeelsbestand?
 
en welke cel(len)is/zijn op deze wijze beveiligd in je voorbeelsbestand?

in ieder geval cel B7

Ik maak hieronder een nieuwe post, hier komt de echte (ingekorte) file zonder relevante data als bijlage.
 
Heren,

ben toch vanavond nog aan de gang gegaan.
De aangeboden code heb ik als makro aan het bestand toegevoegd, helaas werkt
hij niet... Of heb ik hem niet op de juiste wijze gebruikt ?

Code:
Sub Protectsheets()
'
' Protectsheets Makro
' Alle sheets beveiligen met objekt bearbeitung mogelijk
'
' Tastenkombination: Strg+Umschalt+P
    
    Dim Bladen As String
    Bladen = "18,20,21,22,23,24,25,26,27,28,29,30,Ei,Ink,Be,Le,Fe,Vak,Tu,Div,Go,glw,Winkel,aow,adessen,auto,Verbruik,tilgung,bsn,Help,polis,19"

    bld = Split(bladen, ",")
    For i = 0 To UBound(bld)
        Sheets(bld(i)).Protect DrawingObjects:=False, Contents:=True, Scenarios:=True
    Next i
End Sub

Ik heb nu een ingekorte versie van m'n originele bestand bijgevoegd, het moet natuurlijk
wel werken, daarom zitten er nog wat extra sheets aan vast :-)

In sheet "20" zijn b.v. alle geel gekleurde velden van validatie ="" voorzien, dit om
fouten te voorkomen. Deze velden zijn ook na opheffen van de sheet beveiliging niet
te bewerken.

Deze beveiliging wil ik er dus met ctrl-shift-u vanaf zien te krijgen, in alle sheets.
Wanneer ik met bewerken (veranderen/aanpassen) klaar ben wil ik de sheets weer met
ctrl-shift-p beschermen op zo een manier dat de beveiliging validatie ="" er ook weer op
komt. Hierbij zijn de teksten niet belangrijk, alleen de cellen die een formule bevatten.
 

Bijlagen

Aan die code mankeert niets.
Het document gaat bij openen al fout omdat je bladnamen gebruikt die niet bestaan.
Zo ook in de voorbeeld code die ik plaatste.
In je Unprotect Sub gebruik je EXACT dezelfde code terwijl je daar uiteraard Unprotect moet gebruiken in plaats van Protect.
Wat je bedoelt met validatie ="" is mij een volkomen raadsel.
De toetscombinatie ctrl-shift-p en ctrl-shift-u starten geen macro's.
 
Laatst bewerkt:
range.HasFormula

s0me0neelse,

kijk eens of dit je verder brengt
 

Bijlagen

@Haije,

100%
Dit is precies wat ik bedoel.
Ik begrijp ook niet waarom de voorbeelden de ik aan m'n berichten toevoeg, niet dat doen,
wat ze wel op mijn pc in de volledige versie doen.... Gelukkig heb je het begrepen :thumb:

Maakt het nog uit of ik deze makro gewoon overzet naar mijn workbook, of moet ik hem
aanpassen zodat deze op alle sheets wordt toegepast?

Ik vraag maar, voordat ik alle (zijn er bijna 6) dan overbodig geworden makro's ga verwijderen :rolleyes:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan