Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: UserForm (deels) leegmaken  (gelezen 1102 keer)

0 leden en 1 gast bekijken dit topic.

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
UserForm (deels) leegmaken
« Gepost op: 07 november 2021, 09:01:18 »
Hallokes allemaal,

Niet echt een probleem ditmaal, eerder een informatieve vraag.

Voor het volledig leegmaken van een UF gebruik ik altijd onderstaande code-structuur
For Each ctrl In Me.Controls
    Select Case TypeName(ctrl)
        Case "TextBox"
            ctrl.Value = ""
        Case "CheckBox"
            ctrl.Value = False
        Case "ComboBox"
            ctrl.ListIndex = -1
    End Select
Next ctrl

nu vroeg ik mij af hoe ik deze code eventueel zou kunnen aanpassen indien ik alle 'controls' wil leegmaken BEHALVE 'TextBox1'.
momenteel los ik het op door elke textbox apart op "" te zetten maar vroeg me dus af of het niet makkelijker kon.

Alvast dank voor tips/suggesties/mogelijkheden.

groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline Warme bakkertje

  • Volledig lid
  • **
  • Berichten: 215
  • Geslacht: Man
Re: UserForm (deels) leegmaken
« Reactie #1 Gepost op: 07 november 2021, 09:39:25 »
For Each ctrl In Me.Controls
    Select Case TypeName(ctrl)
        Case "TextBox"
            If ctrl.Name <> "TextBox1" Then ctrl.Value = ""
        Case "CheckBox"
            ctrl.Value = False
        Case "ComboBox"
            ctrl.ListIndex = -1
    End Select
Next ctrl
Windows 10 Home   NLD 64bit

Microsoft Office Professional Plus 2016 US

Offline AD1957

  • Ervaren lid
  • ***
  • Berichten: 250
  • Oplossing.be
Re: UserForm (deels) leegmaken
« Reactie #2 Gepost op: 07 november 2021, 09:40:51 »
Als de textboxen genummerd zijn bijvoorbeeld van 1 tot 10
for i = 2 to 10
Me("TextBox" & i)=""
next i

andere mogelijke oplossing:
waarde=textbox1
'jouw code
textbox1=waarde
zie dat Warme bakkertje ook al een oplossing had.
Groet,

Albert

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: UserForm (deels) leegmaken
« Reactie #3 Gepost op: 07 november 2021, 09:48:30 »
For Each ctrl In Me.Controls
    Select Case TypeName(ctrl)
        Case "TextBox"
            If ctrl.Name <> "TextBox1" Then ctrl.Value = ""
        Case "CheckBox"
            ctrl.Value = False
        Case "ComboBox"
            ctrl.ListIndex = -1
    End Select
Next ctrl

Hartelijk dank voor deze oplossing warme bakkertje, mijn poging was deels juist... _/-\o_ :thumbsup:
Ik had in mijn poging ook de IF-statement geprobeerd maar had enkel ctrl gebruikt ipv ctrl.Name  :-[

@Albert
Ook dank aan jou uiteraard voor jouw mogelijke oplossingen ;)

groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

Offline MollyVH

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 847
Re: UserForm (deels) leegmaken
« Reactie #4 Gepost op: 07 november 2021, 11:24:10 »
Hallo BlackDevil,

Mag het ook een tip over iets anders zijn? (want voor je eigenlijke vraag valt er niets meer te verbeteren)

Citaat
Voor het volledig leegmaken van een UF
Wat comboboxen betreft: met "ctrl.ListIndex = -1" maak je enkel het invoervak leeg, maar niet de List.
Daarvoor heb je  "ctrl.Clear" nodig.
Het mag duidelijk zijn dat de waarde van mijn tip enkel te maken heeft met wat je precies wil bereiken!

Mvg,
Molly
Windows 11 Home NLD 64bit
11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2496
Aspire TC-1660
Intel(R) UHD Graphics 750 1024MB
476 GB SSD KINGSTON OM8PCP3512F-AA
1863 GB HD Seagate ST2000DM008-2FR102
Office 2021 Professional Plus NLD 64bit

Offline BlackDevil

  • Ambassadeur
  • *****
  • Berichten: 1.029
  • Geslacht: Vrouw
  • veni vidi vici
Re: UserForm (deels) leegmaken
« Reactie #5 Gepost op: 07 november 2021, 12:12:22 »
@MollyVH,

Hartelijk dank voor je tip, deze zal ik zeker in het achterhoofd houden  :thumbsup:.

Voor mijn huidige vraag (en huidig nieuw project) is het niet de bedoeling dat de lijst zelf wordt leeg gemaakt maar dus
enkel de waarde om dan de volgende invoer te kunnen uitvoeren.

Maar er zullen zeker andere situaties komen waarbij ik die .Clear zal nodig hebben dus  _/-\o_ ;).


groetjes,
BlackDevil
1) HP ProDesk (Windows 10 Pro Edu / Intel(R) Core(TM) i5-7500 CPU@ 3.40Ghz 3.41Ghz)
2) Laptop ASUS (Windows 10 Home / Intel(R) Core(TM) i3-3110M CPU@ 2.40GHz 2.40GHz)
Beide (RAM : 8,00 GB / 64-bits besturingssysteem, x64-processor)
Extern (Seagate Backup+ Hub 6TB / Seagate BUP Slim 2TB / Seagate Expansion Desk 5TB / HP ENVY 6030e)
Bullguard Premium Protection / Office Pro Plus 2016 NL

 


www.combell.com