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

Met Macro beveiliging omzeilen behalve van rij 18 en 100

Status
Niet open voor verdere reacties.

surfingmaster

Gebruiker
Lid geworden
5 mei 2010
Berichten
88
Beste dames en heren,

momenteel gebruik ik de onderstaande commando's om de beveiliging van mjn werkblad te omzeilen tijdens het uitvoeren van een macro. Nu wil ik dat de rijen 18 en 100 altijd beveiligd blijven, zodat tijdens het uitvoeren van een macro die regels niet bewerkt kunnen worden.

Code:
Sheets("Blad1").Unprotect
Macro
Sheets("Blad1").Protect

Weet iemand hoe ik tijdens het uitvoeren van de macro regels 18 & 100 beveiligd kan houden.

Alvast bedankt,
Erwin
 
Laatst bewerkt:
Beste dames en heren,

momenteel gebruik ik de onderstaande commando's om de beveiliging van mjn werkblad te omzeilen tijdens het uitvoeren van een macro. Nu wil ik dat de rijen 18 en 100 altijd beveiligd blijven, zodat tijdens het uitvoeren van een macro die regels niet bewerkt kunnen worden.

Code:
Sheets("Blad1").Unprotect
Macro
Sheets("Blad1").Protect

Weet iemand hoe ik tijdens het uitvoeren van de macro regels 18 & 100 beveiligd kan houden.

Alvast bedankt,
Erwin

Ik zou dan IN de macro zelf een controle houden dat rijen 18 t/m 100 niet bijgewerkt worden.
Bijvoorbeeld:
Code:
IF SchrijfRij < 18 or SchrijfRij > 100 Then
Eventueel met een While... Wend

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Beste Roncancio,

alleen rij 18 en 100 moeten beveiligd worden. Wat denk je dan achter
Code:
IF SchrijfRij < 18 or SchrijfRij > 100 Then
te zetten.

Erwin
 
Als jij je macro post die je nu gebruikt kunnen wij je waarschijnlijk wel verderhelpen.
 
Het gaat erom dat de rijen 18 en 100 altijd beveiligd blijven, zodat tijdens het uitvoeren van een macro die regels niet bewerkt kunnen worden.
In het geval van onderstaande macro mogen de regels 18 en 100 niet verwijderd worden..

Hierbij de macro waar het om gaat. Deze macro verwijderd de rij waar hij op staat.

Code:
Sub RegelVerwijderen()
    ActiveSheet.Unprotect Password:=""
    Application.ScreenUpdating = False
    With ActiveCell
    .EntireRow.Select
    .EntireRow.Delete
    End With
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    ActiveSheet.Protect Password:=""
    End Sub

Groeten,
Erwin
 
Laatst bewerkt:
Code:
Sub RegelVerwijderen()
If ActiveCell.Row < 18 Or ActiveCell.Row > 100 Then
    ActiveSheet.Unprotect Password:=""
    Rows(ActiveCell.Row).Delete
    ActiveSheet.Protect Password:=""
End If
End Sub

Zo zou het kunnen.
Doordat je echter de gehele regel verwijdert, zal de rijen naar boven worden versleept.
Ik weet niet of dit de bedoeling is.

Met vriendelijke groet,


Roncancio
 
In het geval van onderstaande macro mogen de regels 18 en 100 niet verwijderd worden..

Dan denk ik ook direct aan de vraag van Roncancio de rijen schuiven op .
Kopieer rij 18 en rij 100 even naar een hulptabblad en na het uitvoeren van je delete macro vis je deze terug op en plaats ze terug op rij 18 en rij 100 .( mijn denkpiste :rolleyes: )
 
Dan denk ik ook direct aan de vraag van Roncancio de rijen schuiven op .
Kopieer rij 18 en rij 100 even naar een hulptabblad en na het uitvoeren van je delete macro vis je deze terug op en plaats ze terug op rij 18 en rij 100 .( mijn denkpiste :rolleyes: )

Dat kan, maar wellicht is het voldoende om de regel leeg te maken.
Of misschien denk ik te simpel.

Code:
Sub RegelVerwijderen()
If ActiveCell.Row < 18 Or ActiveCell.Row > 100 Then
    ActiveSheet.Unprotect Password:=""
    Rows(ActiveCell.Row).ClearContents
    ActiveSheet.Protect Password:=""
End If
End Sub
Bovenstaand is een kleine aanpassing van mijn vorige reactie.

Met vriendelijke groet,


Roncancio
 
Roncancio ;), ik ga de TS zijn reactie afwachten
ik zit vast met deze
alleen rij 18 en 100 moeten beveiligd worden.
post #3
 
Laatst bewerkt:
Roncancio ;), ik ga de TS zijn reactie afwachten
ik zit vast met deze
post #3

Dat doe ik ook maar.
Eigenlijk kan het nog simpeler door de beveiliging alleen in te stellen voor de rijen 18 t/m 100.
Dan hoeft de beveiliging er ook niet af te worden gehaald.

Dus:
- Alle cellen selecteren
- Beveiliging eraf halen.
- Rijen 18 t/m 100 selecteren.
- Deze rijen beveiligen.
- Blad beveiligen.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
De regels en 18 en 100 moeten beveiligd worden. Rij 18 blijft rij18, want daarboven worden er nooit regels verwijderd en toegevoegd. Rij 100 kan wel verschuiven, want tussen rij 18 en 100 worden wel regels toegevoegd of verwijderd.

Groet,
Erwin
 
Regel 100 mag verschuiven, maar mag niet verwijderd worden. Alle andere regels moet wel beveiligd blijven, want de formules die daar in staan mogen niet bewerkt worden.
Erwin
 
Regel 100 mag verschuiven, maar mag niet verwijderd worden. Alle andere regels moet wel beveiligd blijven, want de formules die daar in staan mogen niet bewerkt worden.
Erwin

Het lijkt mij het handigste om gewoon de beveiliging in te stellen voor de rijen t/m rij 100.
Zo hoef je de beveiliging er niet af te halen bij het runnen van de macro.

Dus:
- Alle cellen selecteren
- Beveiliging eraf halen.
- Rijen 1 t/m 100 selecteren.
- Deze rijen beveiligen.
- Blad beveiligen.

Met vriendelijke groet,


Roncancio
 
Regel 100 mag verschuiven, maar mag niet verwijderd worden. Alle andere regels moet wel beveiligd blijven, want de formules die daar in staan mogen niet bewerkt worden.
Erwin
Als regel 82 en regel 99 verwijderd worden dan staat regel 100 op rij 98 ( als ik nog mee ben ) dan mag in principe deze regel niet verwijderd worden > zijnde regel 98 die voorheen regel 100 was .
Zoals ik al had voorgetseld safe de regels op een andere tabblad wis wat je wil wissen en plaats ze terug op de sheet waar je ze nodig acht .
 
Daniel, wat jij voorstelt is denk ik geen optie. Want ook anderen moeten met het bestand werken. Het is de bedoeling dat ze het model in takt houden. Ik weet niet of ze jou optie altijd goed uitvoeren.

Erwin
 
Daniel, wat jij voorstelt is denk ik geen optie. Want ook anderen moeten met het bestand werken. Het is de bedoeling dat ze het model in takt houden. Ik weet niet of ze jou optie altijd goed uitvoeren.

Erwin

Staat de vraag eigenlijk nog open?
Zo niet dan de vraag op opgelost zetten.

Met vriendelijke groet,


Roncancio
 
De vraag staat nog open. Ik heb de onderstaande macro gemaakt.

In het eerste gedeelte haalt hij de beveiliging van het werkblad en beveiligd hij regel 18 en onderste regel die ik een range naam heb gegeven, 'einde'. Daarna voert hoort hij de maco uit te voeren. Als ik alleen invoer
Code:
With ActiveCell
    .EntireRow.Select
    End With
dan selecteerd hij de hele regel waar die opstond. Maar als ik dit invul
Code:
With ActiveCell
    .EntireRow.Select
    .EntireRow.Delete
    End With
dan verwijderd hij de regel niet. Hij geeft dan een foutmelding. De regel EntireRow.delete wordt geel.

Het laatste deel beveiligd weer alle cellen zoals het was.

De complete macro:
Code:
Sub Macro1()
    ActiveSheet.Unprotect
    Cells.Locked = False
    Cells.FormulaHidden = False
    Range("18:18,Einde").Locked = True
    Range("18:18,Einde").FormulaHidden = False
    ActiveSheet.Protect
    
    With ActiveCell
    .EntireRow.Select
    .EntireRow.Delete
    End With
    Application.CutCopyMode = False
    
    ActiveSheet.Unprotect
    Cells.Locked = True
    Cells.FormulaHidden = False
    Range("E2:K6,D7:D10,F7,L14:L16,A18:Einde").Locked = False
    Range("E2:K6,D7:D10,F7,L14:L16,A18:Einde").FormulaHidden = False
    ActiveSheet.Protect
    
End Sub

Weet iemand wat er fout aan is?

Groet,
Erwin
 
Je gaat het werkblad weer beveiligen en vervolgens probeer je een regel te verwijderen.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Roncancio, had ik net ontdekt ja.

Denk nu een oplossing te hebben, maar hij werkt nog niet;

Code:
Sub RegelVerwijderen2()
    ActiveSheet.Unprotect Password:=""
    Application.ScreenUpdating = False
With ActiveCell
    .EntireRow.Select
    End With
If Selection = Rows("18:18") Then
MsgBox "De rij is beveiligd!"
End If
If Selection = Rows("Einde") Then
MsgBox "De rij is beveiligd!"
 Else
With Selection
 .EntireRow.Delete
 End With
End If
 Application.CutCopyMode = False
 Application.ScreenUpdating = True
 ActiveSheet.Protect Password:=""
End Sub

Het is de bedoeling dat hij alleen onder een voorwaarde de regel verwijderd. Dus als het regel 18 is of regel 'Einde' dan mag de regel niet verwijderd worden. Dan komt er te staan dat de regel beveiligd is.

Bij de regel 'If Selection = Rows("18:18") Then'. Geeft hij al een foutmelding. Hoe moet ik dit formuleren zodat het wel werkt?

Groet,
Erwin
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan