• 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.
Code:
Sub RegelVerwijderen2()
'ActiveSheet.Unprotect Password:=""
If ActiveCell.Row = 18 Or ActiveCell.Row = Range("Einde").Row Then
    MsgBox "De rij is beveiligd!"
Else
    ActiveCell.EntireRow.Delete
End If
ActiveSheet.Protect Password:="", UserInterfaceOnly:=True
End Sub
Begrijp niet zo goed waarom je de beveiliging er steeds af wilt halen.
Als je in de code de beveiliging instelt op UserInterfaceOnly = True dan kan je nog wel met VBA regels verwijderen maar niet meer handmatig.

Met vriendelijke groet,


Roncancio
 
De reden daarvoor is dat mijn werkbladen beveiligd moeten blijven.

Ik weet niks van de toepassing UserInterfaceOnly = True . Hoe werkt dat dan. Hoe zou de macro eruit zijn als ik gebruik zou maken van UserInterfaceOnly = True.

Erwin
 
Laatst bewerkt:
De reden daarvoor is dat mijn werkbladen beveiligd moeten blijven.

Ik weet niks van de toepassing UserInterfaceOnly = True . Hoe werkt dat dan. Hoe zou de macro eruit zijn als ik gebruik zou maken van UserInterfaceOnly = True.

Erwin

De werkbladen blijven beveiligd. De beveiliging wordt er niet afgehaald.
In mijn vorige reactie heb ik UserInterfaceOnly al in de code gezet.

Met vriendelijke groet,


Roncancio
 
Maar in jou macro staat alsnog ''ActiveSheet.Unprotect Password:="" en 'ActiveSheet.Protect Password:="". Dan heeft het toch weinig zin?


Maar verder had ik ook een andere optie geprobeerd die hiervoor al een keer aangegeven was, namelijk:
Code:
If ActiveCell.Row > 18 Or ActiveCell.Row < Range("Einde").Row Then

Dus alleen de rijen die tussen rij 18 en rij 'Einde' staan kunnen dan verwijderd worden.

Maar dit werkt niet. Waarom?

Groet,
Erwin
 
Laatst bewerkt:
Worksheets.Unprotect is in mijn code als tekst weergegeven. VBA zal er dus niets mee doen.
Code:
If ActiveCell.Row > 18 And ActiveCell.Row < Range("Einde").Row Then
Je moet And gebruiken omdat anders elke cel kleiner dan Einde er voor zorgt dat aan de voorwaarde van de IF wordt voldaan.

Met vriendelijke groet,


Roncancio
 
Ja, dat klopt, jij hebt het als teks geschreven. Maar als ik de code zo schrijf doet hij het niet bij mij. Maar heb de nu de juiste macro. Kan nu alleen de rijen tussen rij 18 en de laatse rij 'Einde' verwijderen.

Code:
Sub RegelVerwijderen()
ActiveSheet.Unprotect Password:=""
Application.ScreenUpdating = False
If ActiveCell.Row < 19 Or ActiveCell.Row > Range("Einde").Row Then
    MsgBox "De rij is beveiligd!"
Else
    ActiveCell.EntireRow.Delete
End If
ActiveSheet.Protect Password:="", UserInterfaceOnly:=True
Application.ScreenUpdating = True
End Sub
 
Code:
Sub RegelVerwijderen()
ActiveSheet.Unprotect Password:=""
Application.ScreenUpdating = False
If ActiveCell.Row [B][COLOR="red"]>[/COLOR][/B] 19 Or ActiveCell.Row [B][COLOR="red"]<[/COLOR][/B] Range("Einde").Row Then
    MsgBox "De rij is beveiligd!"
Else
    ActiveCell.EntireRow.Delete
End If
ActiveSheet.Protect Password:="", UserInterfaceOnly:=True
Application.ScreenUpdating = True
End Sub

Volgens mij was het de bedoeling dat de regels tussen 18 en 100 niet aangepast mogen worden.
In dat geval zou de groter dan en kleiner dan tekens aangepast moeten worden.

Met vriendelijke groet,


Roncancio
 
surfingmaster
Ja, dat klopt, jij hebt het als teks geschreven. Maar als ik de code zo schrijf doet hij het niet bij mij. Maar heb de nu de juiste macro. Kan nu alleen de rijen tussen rij 18 en de laatse rij 'Einde' verwijderen.

Code:
Sub RegelVerwijderen()
ActiveSheet.Unprotect Password:=""
Application.ScreenUpdating = False
If ActiveCell.Row < 19 Or ActiveCell.Row > Range("Einde").Row Then
MsgBox "De rij is beveiligd!"
Else
ActiveCell.EntireRow.Delete
End If
ActiveSheet.Protect Password:="", UserInterfaceOnly:=True
Application.ScreenUpdating = True
End Sub

Bovenstaande macro werkte goed totdat ik Range 'Einde" verwijderde, want dat kan me deze macro. Heb hem nu voor de laatste keer aangepast:

Code:
Sub RegelVerwijderen()
'ActiveSheet.Unprotect Password:=""
If ActiveCell.Row > 18 And ActiveCell.Row < Range("Einde1").Row Then
ActiveCell.EntireRow.Delete
Else
   MsgBox "De rij is beveiligd!"
End If
ActiveSheet.Protect Password:="", UserInterfaceOnly:=True
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan