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

kan een userform zijn eigen stand bewaren?

Status
Niet open voor verdere reacties.

sylvester-ponte

Verenigingslid
Lid geworden
19 apr 2007
Berichten
6.551
is het mogelijk dat een userform van zelf in zijn laatste (aangepaste) situatie onthoudt?

dus in het voorbeeld als ik de vrijdag als werkdag weg klik,
en later de userform weer open moet die vrijdag nog steeds weg zijn.

en dat zonder ergens in een excel sheet de waarden van de userform te plaatsen.
 

Bijlagen

  • test userform1.xlsm
    21,9 KB · Weergaven: 54
Laatst bewerkt:
Nee. Je zal de gegevens ergens moeten opslaan om bij het opnieuw openen weer in te kunnen lezen.
 
Als je het userform uit het geheugen verwijdert ( unload ), wordt daarna met de opdracht 'show' een volledig 'schoon' userform getoond op grond van alle basiseigenschappen. De gebeurtenis Initialize wordt uitgevoerd.

Wil je niet 'maagdelijk' beginnen, dan kan dat alleen met Hide/show. Dan wordt de Initialize gebeurtenis niet uitgevoerd.
 
Als je de waarde niet wilt opslaan in een sheet, zou je er voor kunnen kiezen om de WerkdagenTekst als string op te slaan in een Named Range....
Ik heb in de bijlage een Named Range "rngWerkdagenTekst" aangemaakt waar elke handeling wordt weggeschreven. Bij het initialiseren van het formulier wordt elke Checkbox aan de hand van opgeslagen string ingesteld. Kijk maar of je hier soms iets mee kan. Uiteraard is het wel noodzakelijk dat je workbook uiteindelijk wordt opgeslagen met de juiste string in die Named Range.

P.s. Overigens wél nieuw voor mij dat je de MID functie kan gebruiken als een Replace functie. Nooit geweten maar wel ******* makkelijk!
 

Bijlagen

  • test userform1.xlsm
    23,5 KB · Weergaven: 78
Laatst bewerkt:
Ginger, bedankt voor het mee denken.
die form gaat nog veel meer "rommel" bevatten, gegevens over feestdagen en nog meer.

ik had gehoopt dat ieder onderdeel van de form ergens een tag zou hebben die bewaard blijft en dus bij opstarten uit te lezen is.

om dat er zo veel opgeslagen moet worden laat ik de form een eigen sheet aanmaken en verbergen.
daar op komen dan de gegevens van de form, om bij openen ingeladen te worden.

iedereen bedankt voor het meedenken.
 
Wat ik met dat soort dingen doe is er een Administratie blad voor aanmaken. Daar kan alles dan worden bijgehouden. Deze verberg ik tenslotte met xlVeryHidden. Zo komt hij ook niet tevoorschijn wanneer een gebruiker een verborgen blad zichtbaar wil maken.
 
edmoor, dat xlVeryHidden ga ik gebruiken.

weet je toevallig ook hoe het mogelijk wordt dat de gebruiker de userform kan vergroten ed?
 
Tip: Zet op dat verborgen blad een tabel, eerste kolom de naam van de control, tweede kolom de huidige waarde. Dan kan je met een simpel loopje lezen en schrijven:
Code:
Option Explicit

Public Sub init()
    Dim vData As Variant
    Dim lRow As Long
    vData = ThisWorkbook.Worksheets("Instellingen").ListObjects(1).DataBodyRange
    For lRow = 1 To UBound(vData, 1)
        Me.Controls(vData(lRow, 1)).Value = vData(lRow, 2)
    Next
End Sub

Public Sub save()
    Dim vData As Variant
    Dim lRow As Long
    Dim oCtl As Control
    vData = ThisWorkbook.Worksheets("Instellingen").ListObjects(1).DataBodyRange
    lRow = 0
    For Each oCtl In Me.Controls
        If InStr("ListBox,ComboBox,TextBox,CheckBox,OptionButton", TypeName(oCtl)) > 0 Then
            lRow = lRow + 1
            vData(lRow, 1) = oCtl.Name
            vData(lRow, 2) = oCtl.Value
        End If
    Next
    ThisWorkbook.Worksheets("Instellingen").ListObjects(1).DataBodyRange = vData
End Sub

Private Sub CommandButton1_Click()
    Me.Hide
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = 0 Then
        'CloseMode 1 betekent sluiten via kruisje
        Cancel = True
    End If
End Sub
 
edmoor, het is een mooi en duidelijk verhaal maar "clsAnchors" kent mijn excel 2010 niet.

Jan, mooie subjes, die ga ik gebruiken.
 
Op die pagina staat ook hoe je aan die Class kan komen.
 
edmoor, ik wil alleen een userfrom importeren.

daarna moet de userform na het commando show, die de init sub start, alles in orde maken.

dus de userform maakt zelf het administratie blad aan enz enz.

en misschien kan de userform ook wel een class importeren maar ik zou niet weten hoe. (lijkt me niet veilig als dat kan)
 
Nee, je zal de klasse zelf moeten toevoegen aan het project (waar het userform al in staat).
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan