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

Uerorm refreshen?

Status
Niet open voor verdere reacties.

ronald1986

Gebruiker
Lid geworden
2 apr 2010
Berichten
296
Goedemorgen,

Op een userform heb een aantal labels staan welke de tekst uit een bepaalde cel weergeeft. Door middel van knoppen op het userform kan ik tekst in deze cellen wijzigen. Nu wil ik graag dat deze nieuwe tekst ook direct in de labels op het userform zichbaar zijn. Ik ben dus op zoek naar een code voor iets dat het userform refreshed of update nadat ik de inhoud van eenvan de cellen heb veranderd via een knop op het zelfde userform..

Ik heb nu achter de knoppen ook regels staan die het userform afsluiten en opnieuw openenen, dit werkt ook maar is niet ideaal aangezien het scherm dan begint te flikkeren.

Weet iemand hoe ik dit kan doen?

Bvd!
 
Maak voor het vullen van die labels een subroutine. Die roep je dan aan bij het activeren van het formulier en als je vanuit VBA de inhoud van de betreffende cellen wijzigt.
 
Ok, euhm, dit gaat me iets boven de pet. Ik vul de labels nu via:

Code:
Private Sub UserForm_Initialize()
Label1.Caption = Sheets("Blad1").Range("B1").Value
Label2.Caption = Sheets("Blad1").Range("B2").Value
Label3.Caption = Sheets("Blad1").Range("B3").Value
Label4.Caption = Sheets("Blad1").Range("B4").Value
Label5.Caption = Sheets("Blad1").Range("B5").Value
End Sub

De cellen wijzig ik via onderstaande code waarna ik het userform unload en opnieuw laad zodat de labels worden bijgewerkt.

Code:
Private Sub CommandButton8_Click()
Sheets("Blad1").Range("C3").Value = Sheets("Blad1").Range("B4").Value
Sheets("Blad1").Range("C4").Value = Sheets("Blad1").Range("B3").Value
Sheets("Blad1").Range("B3").Value = Sheets("Blad1").Range("C3").Value
Sheets("Blad1").Range("B4").Value = Sheets("Blad1").Range("C4").Value
Unload Me
UserForm1.Show
End Sub

Hoe kan ik een subroutine aanmaken an waar moet ik die neerzetten?
 
Kijk eens naar dit:
Code:
Private Sub UserForm_Initialize()
    Call VulLabels
End Sub

Private Sub CommandButton8_Click()
    Sheets("Blad1").Range("C3").Value = Sheets("Blad1").Range("B4").Value
    Sheets("Blad1").Range("C4").Value = Sheets("Blad1").Range("B3").Value
    Sheets("Blad1").Range("B3").Value = Sheets("Blad1").Range("C3").Value
    Sheets("Blad1").Range("B4").Value = Sheets("Blad1").Range("C4").Value
    Call VulLabels
End Sub

Sub VulLabels()
    Label1.Caption = Sheets("Blad1").Range("B1").Value
    Label2.Caption = Sheets("Blad1").Range("B2").Value
    Label3.Caption = Sheets("Blad1").Range("B3").Value
    Label4.Caption = Sheets("Blad1").Range("B4").Value
    Label5.Caption = Sheets("Blad1").Range("B5").Value
End Sub

Dat kan overigens nog wat netter geschreven worden, maar dat staat los van je probleem.
 
Laatst bewerkt:
Ok, ziet er logisch uit.

Kan ik vullabels gewoon in een willekeurige Module zetten?
 
Dat kan, maar ze horen bij elkaar dus ik zou het gewoon zo in het formulier zetten.
 
Zo kan het ook:

Code:
Private Sub UserForm_Initialize()
    M_vul
End Sub

Private Sub CommandButton8_Click()
    with Sheets("Blad1")
        .Range("C3:C4") = Application.Transpose(Array(.[B4], .[B3]))
        .Range("B3:B4") =.Range("C3:C4") 
    end with
    M_vul
End Sub

Sub M_vul()
    sn=Sheets("Blad1").range("B1:B5")
    for j=1 to 5
      me("Label" & j).Caption = sn(j,1)
    next
End Sub
 
Laatst bewerkt:
Dat bedoeld ik dus met netter schrijven :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan