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

Rijen verwijderen in beveiligd werkblad

Status
Niet open voor verdere reacties.

Roughneck

Gebruiker
Lid geworden
29 mei 2007
Berichten
83
Ik heb een formule geplaatst in het bereik A3 tm A15. Deze cellen vult excel automatisch adhv de inhoud van andere cellen. Om de formule in kolom A te beschermen heb ik het werkblad moeten beveiligen.
Het moet de gebruikers (en dit zijn er een aantal!) wel worden toegestaan om lege rijen te verwijderen. Echter dan zul je óf de beveiliging moeten opheffen, óf gebruikers toewijzen (letterlijk benoemen) om dit bereik te bewerken.

Is er een methode om deze cellen te beschermen, en tóch de gebruikers zonder meldingen toestaan rijen in te voegen of te verwijderen?
 

Bijlagen

  • opslagknop.rar
    17,3 KB · Weergaven: 54
Laatst bewerkt:
Als je het werkblad beveiligt, krijg je een schermpje waarin je een aantal opties kunt aan- of uitvinken. Daar staat ook rijen invoegen en verwijderen bij.

Chiara
 
Ja, die heb ik ook aangevinkt, maar evengoed komt excel met een schermpje, die cellen zijn beschermd kun je niet zomaar weghalen, beveiliging opheffen enz. probeer dat anders maar even met bijgevoegd bestand.
 
Laatst bewerkt:
Doe het dan met 2 kleine buttons

Cobbe
 

Bijlagen

  • opslagknop.xls
    52 KB · Weergaven: 242
Bedankt Cobbe, was er al achter dat het via een macro moet. Het weghalen van de lege rijen heb ik in onder de opslagknop verstopt. Vond daarvoor deze code:


Code:
ActiveWorkbook.Sheets(1).Range("C3:C15"). _
    SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Voor het invoegen van rijen zal ik inderdaad een extra knopje moeten neerleggen, misschien met inputboxje, van hoeveel rijen er toegevoegd moeten worden, maar dan moet de macro wél ook de formule in Kolom A mee-toevoegen, als je begrijpt wat ik bedoel. Misschien met EntireRow.Insert, bestaat dat?
 
Laatst bewerkt:
Cobbe en anderen natuurlijk ook,

heb sinds vandaag op het werk (office 2003) dat de macro crasht (fout 1004?) Macro werkte niet in beveiligd werkblad, daarna heb ik de code:

Code:
Sheets("overzicht OPB").Protect userinterfaceonly:=True

in thisworkbook gezet

Maar nu loopt de macro vast op de regel:


Code:
ActiveSheet.Shapes(1).Delete                             'voordat bestand word opgeslagen word de macroknop verwijderd

Wat moet ik doen om dit te voorkomen? Als ik de beveliging eraf haal, loopt het als een zonnetje.
 
Laatst bewerkt:
Met Unprotect voor de gewraakte code en vervolgens Protect is het opgelost.
 
Code:
Range("C65536").End(x1Up).Cells .SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Hoe krijg ik het voor elkaar, deze code delete namelijk élke lege regel, dat ie nog twee lege regels laat staan? Voor het visuele aspect vraag ik dit. Het werkt wel:thumb:, maar het resultaat kan er wat mij betreft ietsje beter uitzien.;) Meteen na de delete een insert kán wel, maar is niet bepaald fraai programmeerwerk.

Oja, by the way, het boek "Programmeren in Excel 2000 in 24 jaar:p" komt eraan, hoor.
 
Laatst bewerkt:
Deze laat nog 2 rijen staan als de tussencellen tenminste leeg zijn.
Zet deze code achter de KNIP-button:

Code:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
    Drij = Range("B2").End(xlDown).Row + 3
    Urij = Range("A65500").End(xlUp).Row - 1
  ActiveSheet.Unprotect
        For verwijder = Urij To Drij Step -1
             Rows(verwijder).EntireRow.Delete
        Next
  ActiveSheet.Protect
Application.ScreenUpdating = True
End Sub

Succes, Cobbe
 
Hoe zit dat nou, Cobbe? Ik test in de code Kolom C af, maar jij haalt nu Kolom B en Kolom A erbij?
 
Ik moet testen op kolom B omdat in kolom A formules staan en cellen met formules zijn niet leeg, dus...
Van beneden naar boven kan ik simpel zoeken naar de eerst gevulde cel in kolom A, dat is de cel met "opgemaakt" , dus....

Ik hoop dat ik het begrijpelijk uitgelegd kreeg.

Cobbe
 
Ja, das wel begrijpelijk, maar ik wou dat ik wist wat die xlDown en xlUp precies betekenen. Maar daar zal het boek wel een oplossing voor bieden. Kan ik plaats van kolom B ook kolom C aftesten?
 
Code:
Drij = Range("B2").End(xlDown).Row

Vanaf cel B2 naar beneden zoeken naar de eerste lege(of laatst gevulde) cel in dezelfde kolom

Code:
Urij = Range("A65500").End(xlUp).Row - 1

Vanaf cel A65500 naar boven zoeken naar de eerste gevulde cel in dezelfde kolom.

En ja je kan ook op kolom C zoeken mits die voldoen aan de voorwaarde.

Cobbe
 
Laatst bewerkt:
Sorry Cobbe, je klinkt ongeduldig, het is niet mijn bedoeling je op stang te jagen, hoor. Ik apprecieer je hulp echt. Ik heb voor mezelf alleen het gevoel dat ik gemankeerd ben, alsof ik een marathon probeer te lopen op 1 been of zo, of een speer probeer te werpen zonder armen, haha. Ik heb voldoende computer kennis om zaken zoals deze in te passen, maar tekort kennis van VBA.
 
Maar neen ik ben niet ongeduldig, waar heb je dat uit opgemaakt?
Maar ik probeer zo kort mogelijk te antwoorden omdat de verdere plichtplegingen geen zin hebben om tot een oplossing te komen.
Deze kunnen gedaan worden als je tot en redelijke oplossing van je probleem bent gekomen.

Waarom zou ik ongeduldig zijn? Ik ben toch tot niets verplicht hé :)

Ik ben, zoals al de helpers, enorm blij om iemand verder te kunnen helpen.

Dus vraag gerust verder, als ik het niet weet staan er meerdere anderen klaar om verder te doen.

Mvgr. Cobbe
 
Voor wat het waard is, Cobbe, duizend maal dank weer voor deze laatste oplossing. Werkt als een speer!!! Zo word het bestandje steeds mooier. Ik ga de status weer op opgelost zetten. Nogmaals bedankt.:thumb::love:
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan