Select case cu 4 conditii

Închis
valymyky
Mesaje: 104
Membru din: Mie Feb 09, 2011 9:24 pm

Select case cu 4 conditii

Mesaj de valymyky » Mar Oct 03, 2017 1:48 pm

Buna ziua,
Am un userform cu multipage. In prima pagina am un combobox (combobox1) - varsta din care selectez o cifra. In pagina 2 am un alt combobox (combobox2) - situatie din care selectez o cifra (este si trebuie sa ramana setata ca text), aici mai am o exceptie: la cifra 14 imi apare un alt userform in care am 2 checkbox-uri (si acestea trebuie sa ramana deoarece situatia 14 are 2 semnificatii). Valorile 01, 02, 03, 05, 16 inseamna situatia "x", iar restul situatia "y"
Ce as vrea sa faca, exemplu: in momentul cand selectez o cifra la varsta mai mica decat 17 (15) si o cifra la situatie (02) sa-mi apara valoarea 1 in textboxul "situatia x" din categoria varsta 0-16, altfel daca varsta este mai mare de 16 sa-mi apara valoarea 1 in textboxul "situatia x" din categoria varsta 17+. La fel si pentru cele din situatia y.
La o singura inregistratre va exista o singura varsta si o singura situatie.
Am incercat cu select case, merge dar situatia fiind impartita in doua nu mai mi-a iesit, poate nu am aplicat cum trebuie.Am incercat si cu if si elseif, la fel ca la case m-am blocat.
Cum as putea sa rezolv?

Mai jos este un cod cu case cum incercasem, nu mai se regaseste in excel acum

Cod: Selectaţi tot

Select Case ComboBox2.Value
Case "01"
If ComboBox1.Value < 17 Then TextBox6.Value = 1
Case "02"
If ComboBox1.Value < 17 Then TextBox6.Value = 1
Case "03"
If ComboBox1.Value < 17 Then TextBox6.Value = 1
Case Else
TextBox10.Value = 1
End Select
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Nills
Mesaje: 211
Membru din: Sâm Ian 23, 2016 11:24 am

Re: Select case cu 4 conditii

Mesaj de Nills » Mar Oct 03, 2017 4:21 pm

Ce as vrea sa faca, exemplu: in momentul cand selectez o cifra la varsta mai mica decat 17 (15) si o cifra la situatie (02) sa-mi apara valoarea 1 in textboxul "situatia x" din categoria varsta 0-16, altfel daca varsta este mai mare de 16 sa-mi apara valoarea 1 in textboxul "situatia x" din categoria varsta 17+. La fel si pentru cele din situatia y.
Nu inteleg situatia cu Case sau If-urile incercate.
Asa cum ai descris, indiferent de numerele aparute in ComboBox-uri, in TextBox6 va fi MEREU cifra (text) 1 ?!?!?!
idem pentru situatia y
I don't care what you think of me! Unless you think I'm awesome – in which case, you're right! Carry on :D

valymyky
Mesaje: 104
Membru din: Mie Feb 09, 2011 9:24 pm

Re: Select case cu 4 conditii

Mesaj de valymyky » Mar Oct 03, 2017 5:54 pm

Prima data am varsta de la 0 la 16 inclusiv si varsta de la 17 in sus. Apoi am "situatia" cu valorile 01, 02, 03, 05, 16 ce inseamna situatia "x" si restul adica 06 pana la 15 situatia "y".
La o inregistrare daca am varsta 7 si situatia 01 atunci trebuie sa-mi apara valoarea 1 in textbox-ul situatia x din partea de sus unde am varsta 0-16. Daca varsta este mai mare de 16 si situatia 01 atunci trebuie sa-mi apara valoarea 1 in textbox-ul situatia x din partea de jos unde varsta este 17+.
La fel pot avea varsta sub 16 ani si situatia 07 in cazul acesta trebuie sa-mi apara valoarea 1 in textbox-ul situatia y din partea de sus unde am varsta 0-16. Daca varsta este peste 16 ani si situatia 07 atunci trebuie sa-mi apara valoarea 1 in textbox-ul din situatia y din partea de jos unde varsta este 17+

Stiu, este mai complicat si putin mai greu de explicat, sper ca acum se intelege cum ar trebui sa mearga.
Deci varsta o am impartita in doua si situatia la fel tot in doua

Nills
Mesaje: 211
Membru din: Sâm Ian 23, 2016 11:24 am

Re: Select case cu 4 conditii

Mesaj de Nills » Mar Oct 03, 2017 9:35 pm

Din cate inteleg, in pagina 3, in TextBox6 (cea cu situatia X) ar trebui sa apara, conform acelor conditii expuse, cifra 1, atunci ce sens are codul acesta:
Private Sub TextBox6_Change()
strCtrlName = "TextBox6"
If Me.Controls(strCtrlName) = vbNullString Then Exit Sub
OnlyNumbers
End Sub
Sunt anumite coduri care nu cred ca isi au rostul si mi-ar fi mai usor sa creez alte coduri, decat sa corectez codurile altuia.
Asa ca am sa las pe altcineva sa te ajute.
I don't care what you think of me! Unless you think I'm awesome – in which case, you're right! Carry on :D

valymyky
Mesaje: 104
Membru din: Mie Feb 09, 2011 9:24 pm

Re: Select case cu 4 conditii

Mesaj de valymyky » Mie Oct 04, 2017 10:20 am

Codul despre care spui este sa conditioneze utilizatorul sa poata introduce doar cifre in textbox-urile unde sunt aceste coduri. In fisierul incarcat nu functioneaza aceasta restrictie pentru ca am sters din greseala
Dim strCtrlName As String
prima linie de cod din formular. Aceasta restrictie nu cred ca incurca cu nimic ceea ce vreau eu sa faca.
Da, in pagina trei trebuie sa apara rezultatele in urma selectiei varstei si situatiei.

Nills
Mesaje: 211
Membru din: Sâm Ian 23, 2016 11:24 am

Re: Select case cu 4 conditii

Mesaj de Nills » Mie Oct 04, 2017 1:20 pm

Codul despre care spui este sa conditioneze utilizatorul sa poata introduce doar cifre in textbox-urile unde sunt aceste coduri. In fisierul incarcat nu functioneaza aceasta restrictie pentru ca am sters din greseala

Dim strCtrlName As String
Acel "Dim str.... " nu influenteaza cu nimic functionarea codului. Daca folosesti "Optional Explicit" atunci trebuie sa definesti toate variabilele, altfel nu este necesar...
Da, in pagina trei trebuie sa apara rezultatele in urma selectiei varstei si situatiei.
Inca odata, daca in acel TextBox trebuie sa fie gol sau sa apara 1, atunci de ce este nevoie acel cod de interdictie. Sa inteleg ca indiferent de cod userul poate modifica acel 1 in sa zicem 25?

Iar daca vrem ca userii, sa nu modifice acel 1 atunci foloseste o eticheta (label) sau nu da acces la acel TextBox (in Proprietati seteaza fals la Locked)

Imi e foarte greu sa inteleg...
I don't care what you think of me! Unless you think I'm awesome – in which case, you're right! Carry on :D

Închis

Înapoi la “Visual Basic for Application (VBA) cu Excel - Intrebari tehnice”