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

Vernieuwen en beveiligen

Status
Niet open voor verdere reacties.

lam201

Gebruiker
Lid geworden
23 aug 2007
Berichten
514
Hoi,


ik heb een VBA procedure om gegevens in mijn Excel blad te vernieuwen.
Deze gegevens staan op een beveiligd blad.
ik gebruik daarvoor de volgende code:

Code:
Sheets("blad1").Unprotect
Sheets("blad2").Unprotect

ActiveWorkbook.RefreshAll 'reloades all tables from SQL Server to Excel

Sheets("blad1").protect
Sheets("blad2").protect

Probleem is dat de werkbladen al beveiligd worden voordat alle gegevens zijn vernieuwd.
Hoe krijg ik het voor elkaar dat de werkbladen pas beveiligd worden, zodra het vernieuwen van de gegevns voltooid is?


Lambert
 
Als je het zo doet heb je geen problemen :

Code:
Sheets("blad1").Protect UserInterFaceOnly:=True
Sheets("blad2").Protect UserInterFaceOnly:=True

Zo werken je modules, maar manueel kan er niets in gedaan worden.

Joske
 
Of maak er eens dit van:

Code:
Sheets("blad1").Unprotect
Sheets("blad2").Unprotect

ActiveWorkbook.RefreshAll 'reloades all tables from SQL Server to Excel
DoEvents

Sheets("blad1").protect
Sheets("blad2").protect
 
Joske,


ik heb de code als volgt aangepast:
Code:
Sheets("blad1").Unprotect
Sheets("blad2").Unprotect

ActiveWorkbook.RefreshAll 'reloades all tables from SQL Server to Excel

Sheets("blad1").Protect UserInterFaceOnly:=True
Sheets("blad2").Protect UserInterFaceOnly:=True

maar ik krijg dezelfde foutmeldig als eerst: The cell or chart that you are trying to change is protected and therefor read-only.
Heb ik je code verkeerd geinterpreteerd?

Lambert
 
Volgens mij kan je met Application.Wait een time-out inbouwen.
 
Als je weet hoe lang het verversen duurt dan kun je dat inderdaad gebruiken om die lengte van tijd te wachten. Bijvoorbeeld:
Application.Wait (Now()+TimeValue("00:00:10"))

Die opdracht zorgt ervoor dat VBA 10 seconden wacht voordat met de volgende opdracht wordt doorgegaan.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan