Help!

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

Hulp bij posten

Recente topics

Auteur Topic: 4 comboboxen triggeren 4 textboxen  (gelezen 20109 keer)

0 leden en 1 gast bekijken dit topic.

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
4 comboboxen triggeren 4 textboxen
« Gepost op: 29 december 2018, 11:28:24 »
Hallo Helpers en oplossers,

Ik heb een userform gebouwd die uiteindelijk, het is nog maar in de beginfase, mijn werk weer een stukje makkelijker mag gaan maken. in dit formulier zitten 4 comboboxen met daarin een aantal opties waaruit ik kan kiezen, elke keuze heeft een bijpassende codering. nou lukt het mij om vanuit de combobox te kiezen en de bijbehorende code te laten verschijnen in de juiste textbox, dus dat is mijn probleem niet ;)

Ik vroeg mij af of het mogelijk was om de volgende 4 routines in te korten tot 1 die dan toch hetzelfde doet?

Private Sub C_001_Change()
Dim ritcode As Range

    With Blad2.Columns(1)
        Set ritcode = .Find(C_001.Value)
        If ritcode Is Nothing Then Exit Sub
            TxtCode_1.Value = ritcode.Offset(, 1)
    End With
End Sub
Private Sub C_002_Change()
Dim ritcode As Range

    With Blad2.Columns(1)
        Set ritcode = .Find(C_002.Value)
        If ritcode Is Nothing Then Exit Sub
            TxtCode_2.Value = ritcode.Offset(, 1)
    End With
End Sub

Private Sub C_003_Change()
Dim ritcode As Range

    With Blad2.Columns(1)
        Set ritcode = .Find(C_003.Value)
        If ritcode Is Nothing Then Exit Sub
            TxtCode_3.Value = ritcode.Offset(, 1)
    End With
End Sub

Private Sub C_004_Change()
Dim ritcode As Range

    With Blad2.Columns(1)
        Set ritcode = .Find(C_004.Value)
        If ritcode Is Nothing Then Exit Sub
            TxtCode_4.Value = ritcode.Offset(, 1)
    End With
End Sub


Alvast dank voor jullie aandacht en mogelijke feedback ;)

Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Offline emields

  • Ervaren lid
  • ***
  • Berichten: 257
  • Geslacht: Man
  • Oplossing.be
Re: 4 comboboxen triggeren 4 textboxen
« Reactie #1 Gepost op: 29 december 2018, 12:12:49 »
Een voorbeeldbestand is wenselijk.

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: 4 comboboxen triggeren 4 textboxen
« Reactie #2 Gepost op: 29 december 2018, 12:13:29 »
Hallo Josc1965

Ik ga het niet uitvogelen zonder voorbeeldbestand (je weet hoe graag we een voorbeeldbestand krijgen) maar je zou dus met een variabele in een For-Next loop kunnen werken.

zo iets als hieronder:

Private Sub C_001_Change()
Dim ritcode As Range
For x = 1 to 4
    With Blad2.Columns(1)
        Set ritcode = .Find(C_00 & x.Value)
        If ritcode Is Nothing Then Exit Sub
            TxtCode_ & x.Value = ritcode.Offset(, 1)
    End With
Next
End Sub

Wel weet ik niet zeker of die variabele x zo mag ingevoegd worden met "&"....;

Daarom ...... voorbeeldje met knoppen en tekstvakken.

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: 4 comboboxen triggeren 4 textboxen
« Reactie #3 Gepost op: 29 december 2018, 12:46:50 »
Hallo Emields en SoftAid,

Dank voor de reacties en, uiteraard jullie hebben gelijk dat er een bestandje bij moet... Die hang ik hier even onder. de userform doet vooralsnog niet veel maar dat is de issue momenteel ook nog niet ;) het gaat mij om de 4 combo's onder het label activiteit waarna vanzelf in het code textvak de bijbehorende code mag verschijnen. op tabblad "Rit" vinden jullie een knop "priveritten" die het userform opent.

Bedankt alvast..

Ps. SoftAid, jouw code geeft een syntaxfout op regel

TxtCode_ & x.Value = ritcode.Offset(, 1)
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Offline Ntr

  • Lid
  • *
  • Berichten: 20
  • Geslacht: Man
  • Oplossing.be
Re: 4 comboboxen triggeren 4 textboxen
« Reactie #4 Gepost op: 29 december 2018, 13:12:01 »
Dit is ook een mogelijkheid.
Private Sub C_001_Change()
  text 1
End Sub

Private Sub C_002_Change()
  text 2
End Sub

Private Sub C_003_Change()
  text 3
End Sub

Private Sub C_004_Change()
  text 4
End Sub

Sub text(y)
Dim ritcode As Range
   
    With Blad2.Columns(1)
        Set ritcode = .Find(Me("C_" & Format(y, "000")).Value)
        If ritcode Is Nothing Then Exit Sub
            Me("TxtCode_" & Format(y, "0")).Value = ritcode.Offset(, 1)
    End With
End Sub

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: 4 comboboxen triggeren 4 textboxen
« Reactie #5 Gepost op: 29 december 2018, 13:13:58 »
Hallo Johan,

ja, die foutmelding verwachtte ik al (alhoewel ...)

Set ritcode = .Find(C_00 & x.Value)
dan wel weer aanvaard wordt?

Maar je probeert met 4 comboboxen 4 tekstboxen te vullen, dan denk ik dat je ook 4 macro's moet gaan gebruiken.
Je macro "naam" slaat hier immers op het Change event van elke individuele Combobox.

Er zal heer zeker een mogelijkheid zijn om dit in 1 macro te verwerken, maar of die voor jou (en voor mij, als ammateurke) nog leesbaar (en bewerkbaar) blijft is een andere vraag...   0:-)

De "Experts" zullen nog wel iets vinden in hun sinterklaas-zak...  ;D

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline Ex-lid

  • Oplosser
  • ****
  • Berichten: 670
  • Geslacht: Man
  • dit lid is verbannen
Re: 4 comboboxen triggeren 4 textboxen
« Reactie #6 Gepost op: 29 december 2018, 13:18:47 »
Hoi,
Ik begrijp wat je wilt maar het is overbodig. je zou een extra knop nodig hebben om een macro te triggeren na het invullen van de 4 comboboxen.
Hoe zou ik het doen.
Zorg dat in de range categorien ook Kolom B is inbegrepen =Legenda!$A$26:$B$32In de code van je combo's (vb voor combo 1)
Private Sub C_001_Click()
    TxtCode_1.Value = C_001.Column(1)
End Sub
Extra tip:
Gebruik nooit RowSource maar list
C_001.List = [Catagorien].ValueEdit, nog een tip, maak van je lijstjes zoal categorien echte tabellen.

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: 4 comboboxen triggeren 4 textboxen
« Reactie #7 Gepost op: 29 december 2018, 13:40:32 »
Hoi SoftAid

ja, die foutmelding verwachtte ik al (alhoewel ...)

Set ritcode = .Find(C_00 & x.Value)
dan wel weer aanvaard wordt?

Geen idee, kreeg direct de foutmelding bij het uitvoeren van die routine....

Hoi Dotchiejack,

Dank voor je aangedragen oplossingen, ik heb ze even doorgevoerd en het blijkt ook nog allemaal te werken :D nu begrijp ik alleen niet waarom ik van dergelijke lijstjes een tabel moet maken, kun je dat eens voor mij nader duiden?

Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Offline Ex-lid

  • Oplosser
  • ****
  • Berichten: 670
  • Geslacht: Man
  • dit lid is verbannen
Re: 4 comboboxen triggeren 4 textboxen
« Reactie #8 Gepost op: 29 december 2018, 13:47:12 »
Citaat
nu begrijp ik alleen niet waarom ik van dergelijke lijstjes een tabel moet maken
Heel simpel gebruiksgemak, bij veranderingen wordt alles automatisch aangepast, en gezien het feit dat ik nogal lui ben :D ;).....

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: 4 comboboxen triggeren 4 textboxen
« Reactie #9 Gepost op: 29 december 2018, 13:50:29 »
Hoi Ntr
Dit is ook een mogelijkheid.

Dit werkt inderdaad ook, maar voor een gemiddelde VBA gebruiker zoals ik mijzelf kwalificeer, vind ik de door Dotchiejack aangedragen oplossing voor mij iets hanteerbaarder. In elk geval dank voor je input ;)
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: 4 comboboxen triggeren 4 textboxen
« Reactie #10 Gepost op: 29 december 2018, 13:55:17 »
Heel simpel gebruiksgemak, bij veranderingen wordt alles automatisch aangepast, en gezien het feit dat ik nogal lui ben :D ;).....

Ik ben ook lui, maar je kunt ook gewoon zorgen dat de naamrange zich aanpast door een regel in te voegen lager dan de eerste cel... en in dit geval veranderd er niets... Maar ik zal dit zeker in toekomstige gevallen meenemen in mijn 'wat heb ik ook al weer geleerd op "Oplossing.be" '

Allen bedankt voor jullie input en inzet, ik ben tevreden met de oplossingen en suggesties en zet dit item als opgelost.
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Offline Ntr

  • Lid
  • *
  • Berichten: 20
  • Geslacht: Man
  • Oplossing.be
Re: 4 comboboxen triggeren 4 textboxen
« Reactie #11 Gepost op: 29 december 2018, 13:57:26 »
Dit is wat Dotchie bedoelt...waarschijnlijk

Offline Ex-lid

  • Oplosser
  • ****
  • Berichten: 670
  • Geslacht: Man
  • dit lid is verbannen
Re: 4 comboboxen triggeren 4 textboxen
« Reactie #12 Gepost op: 29 december 2018, 14:05:33 »
Omdat het feestdagen zijn nog een tip.
Gebruik namen zoals T_00,T_01....., net zoals bij je comboboxen.
Waarom, dan kan je makkelijk loopjes maken en zal je op den duur een paar km code sparen.
voorbeeldje (LB_00 is een listbox)
For i = 0 To 8
    Me("T_0" & i) = LB_00.Column(i)
Next

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: 4 comboboxen triggeren 4 textboxen
« Reactie #13 Gepost op: 29 december 2018, 14:42:37 »
Dit is wat Dotchie bedoelt...waarschijnlijk

Dat ziet er goed uit, echter ik snap dat "ListObject(1)" niet zo heel goed, wat nu als ik op een blad meerdere tabellen heb staan?

Wat er ook gebeurd: als ik bijvoorbeeld C_002 foutief invul en blijkt dat er niets moet staan en ik met Backspace de invoer verwijder, dan krijg ik:

--
Fout 381 tijdens uitvoering

Kan de eigenschap Column niet verkrijgen, ongeldige index voor eigenschappenmatrix.
--

Ik kan dit opvangen met een lege tabel regel, maar of dat nu een elegante oplossing is.

Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: 4 comboboxen triggeren 4 textboxen
« Reactie #14 Gepost op: 29 december 2018, 14:51:55 »
Omdat het feestdagen zijn nog een tip.
Gebruik namen zoals T_00,T_01....., net zoals bij je comboboxen.

Euh, dat doe ik toch, tenminste in dit specifieke geval ben ik daar mee begonnen, al noem ik het dan geen T_00 maar TxtCode_1 zo is het voor mij nog begrijp- en grijpbaar ;)

Daarnaast heb ik het dikke boek van Wim de Groot opengeslagen liggen waarvan ik mijn basiskennis combineer met zijn, naar het schijnt, gevorderde kennis te gebruiken. Wanneer ik er dan echt niet uit kom dan roep ik hier weer :D
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

 


www.combell.com