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

Fout 1004 + bij aanmaken nieuw blad

Status
Niet open voor verdere reacties.

Myrthe92

Gebruiker
Lid geworden
8 apr 2017
Berichten
94
Goedemiddag,

Ik loop tegen een aantal problemen aan.
In de bijlage heb ik een voorbeeld van mijn excel-sheet toegevoegd en deze bevat fictieve namen/gegevens.

Allereerst korte uitleg over hoe het document werkt.
In het tabblad 'Start' kunnen mijn collega's klikken op het gewenste trainingsschema 'Invulschema hartrevalidatie' of 'Invulschema hartfalen'.
Dan verschijnt er een 'Messagebox', die ingevuld moet worden. Zodra deze correct is ingevuld verschijnt het gekozen invulschema.
Deze invulschema's 'Invulschema hartrevalidatie' of 'Invulschema hartfalen' zijn verborgen en als ik iets wil veranderen, dan maak ik deze zichtbaar en bewerk ik deze, sla ze op en verberg ze weer. Dit vormt dus mijn basis.

In mijn Excel-sheet heb ik cellen beveiligd en geblokkeerd. Onlangs kregen mijn collega's als zij iets proberen te typen op een beveiligde cel de melding "U wilt een cel wijzigen die beveiligd is........'' (zie bijlage). Deze melding is als volgt opgelost door een tip van Conseclusie:
'Beveilig de cellen, zodanig dat ze uberhaubt niet geselecteerd kunnen worden. Via Blad beveiligen / Alle gebruikers van dit werkblad mogen: "Vergrendelde cellen selecteren" moet uitgevinkt worden.'

Echter, wilde ik een deel van een grafiek kunnen blijven afdrukken, dat heb ik kunnen oplossen middels een tip van mvdvlist: Beveiligen met een vinkje voor: Objecten bewerken.
Nu heb ik 'ontgrendelde cellen' en 'object' bewerken aangevinkt onder 'Blad beveiligen'. De cellen achter de grafiek/selectiegebied van de grafiek staan nu op ''geblokkeerd' en 'verborgen'.

De problemen, die ontstaan zijn:
- Als ik een nieuwe patiënt heb ingevoerd en daarna via het tabblad 'Start', een nieuw invulschema aanklik, maar deze annuleer krijg ik de foutmelding 'Fout 1004: Het wachtwoord is onjuist. Controleer of Caps Lock is uitgeschakeld...' (zie bijlage 2)
- Het blijkt dat als ik een invulschema heb geactiveerd, ik helemaal niet de grafiek kan selecteren om te af te drukken. Ondanks dat ik in het basisschema 'Invulschema hartrevalidatie' of 'Invulschema hartfalen' wel de wijzigingen van Conseclusie en mvdvlist heb doorgevoerd.

Kunnen jullie mij helpen?

Het tijdelijke wachtwoord om de bladbeveiliging van de tabbladen te halen is 'aorta'.

Alvast bedankt!

Met vriendelijke groeten,

Myrthe
 

Bijlagen

  • Test.xlsb
    Test.xlsb
    1.016,8 KB · Weergaven: 26
  • Fout 1004 tijdens uitvoering Het wachtwoord is onjuist.....png
    Fout 1004 tijdens uitvoering Het wachtwoord is onjuist.....png
    17,6 KB · Weergaven: 54
Laatst bewerkt:
Zonder dat ik je test bestand heb bekeken kan mij deze fout herinneren in mijn eigen Excel bestand.
Het bleek in mijn vba code te zitten. De volgorde van mijn code in een functie aangepast en de melding was verdwenen.
 
Bedankt voor je reactie. Weet ik in ieder geval dat ik in mijn VBA-code moet zoeken. Maar waar? Ik hoop dat één van jullie mij kan helpen.
 
Je zou eens kunnen kijken naar de optie UserinterfaceOnly van de Protect opdracht.
Tips: maak gebruik van Option Explicit in elke module; en maak gebruik van de compiler (onder Foutopsporing)
 
Bedankt voor jullie reactie. Ik ben maar een dummie. Dit gaat mijn kennis te boven.
 
Het lijkt erop dat ik de Foutcode 1004 heb opgelost. Echter, kan ik het probleem van de '- Het blijkt dat als ik een invulschema heb geactiveerd, ik helemaal niet de grafiek kan selecteren om te af te drukken. Ondanks dat ik in het basisschema 'Invulschema hartrevalidatie' of 'Invulschema hartfalen' wel de wijzigingen van Conseclusie en mvdvlist heb doorgevoerd.' Kunnen jullie mij hier nog mee helpen? Ik begrijp het antwoord van pixcel niet.

Hieronder de laatste versie van mijn testbestand.

Hartelijke groeten,

Myrthe
 

Bijlagen

Laatst bewerkt:
Probeer dit eens.

Commandbutton1 op je formulier frmgegevens beveiligd steeds opnieuw alle werkbladen, echter zonder "objecten bewerken toestaan"

pas het rode gedeelde in de code eens aan.

Code:
If CheckBox1.Value = True And ActiveSheet.Name = "Invulschema HR standaard" Or ActiveSheet.Name = "Invulschema hartfalen" Then
    ActiveSheet.Copy After:=Worksheets(Worksheets.Count)
    DoEvents
    For Each WS In Worksheets
        [COLOR="#FF0000"][B]WS.Protect pwd, 0  [/B][/COLOR]          [COLOR="#008000"] '0=objecten bewerken toestaan, -1=objecten bewerken niet toestaan[/COLOR]
    Next WS
    DoEvents
    NewPageName = [K10] & " (" & [K9] & ")"
    ActiveWindow.ActiveSheet.Name = NewPageName
    Unload Me
Else
 
Laatst bewerkt:
Loop wel je hele code nog even na, en pas .Protect aan.
Hoop dat het werkt. En anders even wachten op de VBA profs.
 
De 1 in het stukje groene tekst moet -1 zijn; True = -1

Standaard is het True, dus kan ook weggelaten worden.
 
Dank voor jullie reacties! @AD1957: u geeft aan dat ik mijn .Protect moet aanpassen. Dat is toch de code zoals u beschrijft in uw tweede reactie?
 
Harry,

Ik heb het aangepast.
Vraagje: Waar kan ik informatie vinden over het toepassen van die numerieke codes.?
 
@Myrthe92,

In de code van commandbutton2 op Frmgegevens staat die .Protect ook.
Verder zelf even alles nalopen.
 
Wauw!!! Het lijkt erop dat het met uw tips is gelukt! Super bedankt!

Echter is het nu wel weer zo dat mijn foutcode 1004 (probleem 1) terug is.
Middels foutsporing, geeft hij het volgende aan:

Code:
Private Sub CommandButton2_Click()
pwd = "aorta" 'verander hier uw paswoord
If MsgBox("U heeft op [Sluiten] gedrukt, indien u op [Ja] drukt wordt het nieuwe invulschema volledig afgesloten." & vbCrLf & vbCrLf & _
"Indien u op [Nee] drukt kunt u verder werken, maar bent u verplicht het formulier volledig in te vullen en nadien op [Gegevens invullen] te drukken. De gegevens worden dan opgeslagen." & vbCrLf & vbCrLf & _
"Sluiten?", _
vbYesNo + vbQuestion, "Sluiten?") = vbNo Then Exit Sub
Sheets("Start").Activate
Unload Me
Sheets("Invulschema HR standaard").Unprotect Password:=pwd
Sheets("Invulschema HR standaard").Visible = False
[B][COLOR="#FFFF00"]Sheets("Invulschema hartfalen").Unprotect Password:=pwd[/COLOR][/B]
Sheets("Invulschema hartfalen").Visible = False
Application.DisplayAlerts = False
DoEvents
'Application.Quit
End Sub

Hoe kan ik dit oplossen?

En het blijkt dat ik nu in het tabblad 'Start' wel in de cellen kan typen? Kan ik dit nog blokkeren?

Ik ben er bijna...
 

Bijlagen

Laatst bewerkt:
Vermijd iedere vorm van 'beveiliging' in Excel. Het levert alleen maar sores op (zoals ook hier blijkt).
Vermijd 'select' en 'activate' in VBA.
DoEvents is zelden nodig.
Hoe beter gestructureerd je applicatie is hoe minder gebruikers gaan experimenteren.
 
Laatst bewerkt:
@snb: dank voor u reactie.

De beveiliging is noodzaak, omdat anders de Excel-sheets meer fouten ontstaan door de werkwijze van collega's.
'Select' en 'Activate' worden nu gebruikt om tabbladen te activeren, hetgeen noodzakelijk is om het overzichtelijk houden voor mijn collega's.

De 'DoEvents' kan ik die verwijderen?

En heeft u de gouden tip hoe ik wel de genoemde problemen (Fout 1004 + beveiligen cellen tabblad 'Start') in 'Test2' bestand kan oplossen?
 
Als je het zelf allemaal beter weet ben ik snel klaar.
 
Ik bedoel het niet zo. Ik ben zelf ook een dummie. Ik probeer de situatie te verhelderen en mijn keuzes te verduidelijken.
 
probeer het maar eens zo.
Code:
Private Sub CommandButton2_Click()
'[COLOR="#008000"]pwd = "aorta" 'verander hier uw paswoord[/COLOR]
If MsgBox("U heeft op [Sluiten] gedrukt, indien u op [Ja] drukt wordt het nieuwe invulschema volledig afgesloten." & vbCrLf & vbCrLf & _
"Indien u op [Nee] drukt kunt u verder werken, maar bent u verplicht het formulier volledig in te vullen en nadien op [Gegevens invullen] te drukken. De gegevens worden dan opgeslagen." & vbCrLf & vbCrLf & _
"Sluiten?", _
vbYesNo + vbQuestion, "Sluiten?") = vbNo Then Exit Sub
Sheets("Start").Activate
Unload Me

[COLOR="#FF0000"]pwd = "aorta"[/COLOR]
Sheets("Invulschema HR standaard").Unprotect pwd
Sheets("Invulschema HR standaard").Visible = False
Sheets("Invulschema hartfalen").Unprotect pwd
Sheets("Invulschema hartfalen").Visible = False
Application.DisplayAlerts = False
DoEvents
'Application.Quit
End Sub
 
Bedankt Albert! Het werkt! Ik ben blij. Nogmaals dank voor de moeite en uw tijd.
 
Nu kan ik alleen niet mijn verborgen bladen zichtbaar maken om bv. nog aanpassingen te verrichten in de 'Invulschema hartrevalidatie standaard' en 'Invulschema hartfalen'. Kan ik dit via een omweg omzeilen? Heb al geprobeerd om via VBA het 'object weer te geven', maar dan opent deze niet.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan