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

Bepaalde pagina openen bij eerste x bestand open.

Status
Niet open voor verdere reacties.

glda19

Terugkerende gebruiker
Lid geworden
14 jan 2008
Berichten
1.064
Hi
Ik zou willen dat er een bepaald tabblad word geopend de eerste x de gebruiker het bestand opend.
ik weet hoe ik gegevens in het register kan wegschrijven.

Wat ik zou doen
is na ga aan of er een bepaalde waarde in het register staat. Is die er niet dan het bewuste tabblad direkt openen.
Is die variabele waar dan niet meer als eerst openen dat tablad.
En dan zo het juiste tabblad al dan niet als eerste laten openen.

Of is er een andere methode.
Of wel op een bepaald tabblad een waarde bij houden en dan zo openen kan ook.
 
Laatst bewerkt:
Dat kan met een stukje VBA in de Workbook_Open.
Ik zou met een gedefinieerde naam bijhouden of die gebruiker dat document voor de eerste keer opent.

Zoiets:
Code:
Private Sub Workbook_Open()
    Dim EersteKeer As Name
    On Local Error Resume Next
    Set EersteKeer = ThisWorkbook.Names(Environ("username") & "_firsttime")
    If Err.Number = 1004 Then
        ThisWorkbook.Names.Add Environ("username") & "_firsttime", "firsttime"
        Sheets("EersteKeerBlad").Activate
    End If
End Sub
 
Laatst bewerkt:
Wat bedoeld je met username ?
Een gedefinieerde naam ?
 
Nee, de naam waarmee de gebruiker in Windows is aangelogd.
 
kwa oplossing en denkwijze vind ik ze fantastisch.
Maar voor iets (maar ook niet al te ver) gevorderde gebruikers is die zo gemakkelijk te omzeilen.
Dus ja, implementeren en kijken hoe rap je gebruikers het door hebben.
 
Tuurlijk, maar ik ga er ook niet vanuit dat het voor beveiliging is.
Meer om een gebruiker de eerste keer naar een welkomsblad of zo te sturen.

Daarnaast kan je de Name ook Hidden maken en het VBA project beveiligen.
Wat voor een meer gevorderde gebruiker dan ook weer geen probleem is ;)
 
Laatst bewerkt:
en zo pak je me toch op een maandagmorgen.
Ik wist niet dat een naam hidden kon zijn ... .
Ik, gevorderd gebruiker ??? :o
 
Ik schaar je in ieder geval wel onder die categorie :)
 
Bedankt.
Kun je eens beschrijven wat de code juist doet. Want begrijp ze niet zo goed.
In post #2 staar dit
Ik zou met een gedefinieerde naam bijhouden of die gebruiker dat document voor de eerste keer opent.
Wat bedoel je daarmee en hoe bij houden ?

In post #6 staat er
Daarnaast kan je de Name ook Hidden maken en het VBA project beveiligen
Ten eerste welke naam hidden maken en hoe ?
 
Heb je de code eerst al getest in je eigen document?
Het doet precies wat je in #1 vraagt.

Als je niet weet wat een Name object is en wat Environ("username") doet moet er nogal wat uitgelegd worden.
 
getest in een eigen bestandje
en ne weet het niet wat er in post 10 staat
 
denk het wel in de test file
Snap dat van die environ dat je daar verschillende zaken zolas username computrernaam enz. Hoe weet je dat je daar achter evenviorn & firsttime kunt zetten
Maar waar word dan firsttime bij gehouden zodat het de 2de x niet opstart
 
Bij je gedefinieerde namen, maar zoals ik het zo op het eerste zicht vermoed met als inhoud enkel "firsttime", geen echt het tijdstip van de "firsttime".
Dat is ook niet nodig, er moet enkel een vlaggetje omhoog gehouden worden vanaf de 2e keer, dat iets op een bepaalde computer loopt.

En dan keren we terug naar mijn reactie #5, verwijder die gedefinieerde naam daar uit die lijst en je kan opnieuw maagdelijk wit herstarten.
Dus moet die naam nog eventjes verborgen worden, zodat je dit laatste niet kan doen, tenzij met VBA.
 
Uitwelke lijst die gedefinieerde naam verwijderen. En wazr word firsttime bewaard of bij gehouden zodat om te zien dat het al is geopend
 
Zie voor antwoord op beide vragen in het lintmenu Formules > Namen beheren.
Daar kan je ook komen met de sneltoets Ctrl-F3.
 
Laatst bewerkt:
Misschien dat dit het wat duidelijker maakt.
Anders moet je echt die link naar het Name object die ik plaatste beter bestuderen en mee spelen.

Code:
Private Sub Workbook_Open()
    Dim EersteKeer As Name
    Dim Naam As String
    
    Naam = Environ("username") & "_FirstTime"       [COLOR="#008000"]'Definieer een naam voor een Name object[/COLOR]
    
    On Error Resume Next
    Set EersteKeer = ThisWorkbook.Names(Naam)       [COLOR="#008000"]'Haal de gegevens van dat object op[/COLOR]
    On Error GoTo 0
    
    If EersteKeer Is Nothing Then
        ThisWorkbook.Names.Add Naam, "Passed"       [COLOR="#008000"]'Bedoeld object bestaat niet, dus maken[/COLOR]
        ThisWorkbook.Names(Naam).Visible = False    [COLOR="#008000"]'Maak deze onzichtbaar[/COLOR]
        Sheets("EersteKeerBlad").Activate           [COLOR="#008000"]'Maak het gewenste blad actief[/COLOR]
    Else
        [COLOR="#008000"]'Bedoeld object bestaat al[/COLOR]
        [COLOR="#008000"]'Gebruiker heeft dit document al eerder eens geopend[/COLOR]
        [COLOR="#008000"]'Dus het actieve blad actief laten[/COLOR]
    End If
End Sub
 
thx
Ik ben geen profesionele programmeur maar een hobby programmeur dus programmeer ook niet alle dagen soms maanden niet en dan weer even wel
 
thx
Maar denk dat je het niet goed begrepen hebt. Ik snapte wel wat ze doen.
Maar één ding kan nik niet vatten en dat is je maakt bij de eerste x op starten een ThisWorkbook.Names(Naam).add naam aan. Dit snap ik
Maar wat ik niet zie of niet versta. Zo zie ik het nomraal als je een vb of excel programma afsluiten en heb alles bewaard dan verlies ik toch alle gegevens die op dit ogenblik in het geheugen zitten.
Maar waar halen ze dan bij een 2 of meerdere x opstarten van de excel file de gegevens van het object naam.
Waar zijn die opgeslagen ? Of zie ik dat totaal verkeerd .

Ik ben geen profesionele programmeur maar een hobby programmeur dus programmeer ook niet alle dagen soms maanden niet en dan weer even wel
 
Name objecten blijven bewaard in het document.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan