VBA_Combox és Textbox mező lekérdezése

VBA_Combox és Textbox mező lekérdezése
2006-02-03T20:49:00+01:00
2006-02-04T16:41:09+01:00
2022-10-29T02:50:44+02:00
hungry_mind
Sziasztok!


Annyit szeretnék, hogyha beírom a keresztnévhez hogy viki, akkor kirjam hogy szia viki,
ha pedig a kedvenc színek közül kiválasztom a kék szint, akkor eccerűen kiirja, hogy kék szinű

404 - Az általad keresett oldal nem található!

Általában, a Textbox, ill. Combox, ill. Checkbox mezők eredményére hogyan tudok hivatkozni?

például a nem-nél kiválasztom a férfit, akkor kiirja, hogy férfit választottál, ill elrakja egy változóba, mondjuk nem=1

A vélasztógombokat egy csoportba raktam már.

Ennyi már megvan a kódból, ill. a grafikus része a linken.

A segítséget köszönöm szépen!!




Private Sub UserForm_Initialize()
ComboBox1.List = Array("piros", "fehér", "zöld", "lila", "kék")
End Sub
Private Sub munka()
If TextBox2.Text = "viki" Then
MsgBox "Szia Viki!"
Else
MsgBox "Köcsög"
End If
If ComboBox1.Text = "kék" Then
MsgBox "kék színű"
End Sub
Mutasd a teljes hozzászólást!
1. A kódod hibás:

Private Sub UserForm_Initialize()
ComboBox1.List = Array("piros", "fehér", "zöld", "lila", "kék")
End Sub

Private Sub munka()
If TextBox2.Text = "viki" Then
MsgBox "Szia Viki!"
Else
MsgBox "Köcsög"
End If
If ComboBox1.Text = "kék" Then
MsgBox "kék színű"
end if
End Sub

A Private Sub UserForm_Initialize() lefut az űrlap megnyitásakor, de a munka nevű eljárásodat szerinted ki indítja el?

Mert a felhasználó nem, ahhot le kelleen programozni az eseményét, ahogy az én mintámban van.
vagy legalább úgy, ahogy EzerMester leírta.

Egy eljárás akkor fut, ha valaki, vagy valami elindítja. Attól, hogy az űrlapon felsorolsz 200 sub..End sub-ot, azok sose fognak lefutni, ha azok nem eseményhez vannak kötve.

Mutasd a teljes hozzászólást!

  • Annyit szeretnék, hogyha beírom a keresztnévhez hogy viki, akkor kirjam hogy szia viki


    pl.

    Private Sub textBox2.Change() munka End Sub

    Ha szeretnél gyakrabban hasonló programokat készíteni, ajánlom Demeter M. Ibolya Visual Basic 6.0 /1 könyvét.
    Mutasd a teljes hozzászólást!
  • Bocsi, ebből nem sokat értettem..

    Tehát ha a textbox2-ben lévő változónak az értékét akarom megváltoztatni, akkor ezzel az eljárással meg tudom.
    Az rendben van, de mi az a munka.?
    Hogyan rakja be egy változóba?

    Lehet hogy neked egyértelmű, de nekem nem. Azért kérdeztem......

    mi az a munka, légyszíves teljes megoldást, írjál, vagy rendesen válaszolj.

    Köszönöm.

    Könyv az van elöttem jópár, de az éppen sajna nincsen meg..... De rákeresek...
    Mutasd a teljes hozzászólást!
  • Ha tervező nézetben rákattintasz valamelyik elemre kettőt, akkor bejutsz az űrlap esemény programozási lapjára.
    Ott írhatsz ilyen programokat:

    Dim nem As Byte Private Sub ComboBox1_Change() MsgBox "Választott érték: " & Me.ComboBox1.Value valtozo = Me.ComboBox1.Value MsgBox "Választott elem sorszáma: " & Me.ComboBox1.ListIndex ' Az első elem a 0. index End Sub Private Sub OptionButton1_Click() nem = 1 MsgBox "Férfi" End Sub Private Sub OptionButton2_Click() nem = 2 MsgBox "nő" End Sub Private Sub TextBox1_Change() ' na ezt nem javaslom, mert minden gomb megnyomása után írja ' MsgBox "Szia " & Me.TextBox1.Value End Sub Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) MsgBox "Szia " & Me.TextBox1.Value End Sub ' Ez az Ok gomb, most itt tárolok mindent Private Sub CommandButton1_Click() neve = Me.TextBox1.Value & " " & Me.TextBox2.Value If Me.OptionButton1 Then neme = 1 ElseIf Me.OptionButton2 Then neme = 2 Else neme = 0 End If szin = Me.ComboBox1.Value End Sub

    Egyébként ha már VBA, akkor én inkább Kovalcsik Géza: Az Excel Programozása (Computerbooks) könyvét ajánlom.
    Mutasd a teljes hozzászólást!
  • Oké, Micu..

    Éppen azt szeretném, hogy nem MSGBox-szal írja ki, hogy mit szeretnék, hanem a textboxba beírt szöveget, ill combox kiválasztott eredményét rakjam el változóba, és továbbiakban azzal dolgozzak.

    Létezik ilyen hogy

    if TextBox2.Text = "viki" then.....
    'TextBox2.Value = "viki"
    Tehát, hogy a textbox2-nek a szövege, vagy értéke?

    Akkor így írjam be?

    If Me.TextBox2.Value = "viki" then ....


    A Me az a saját Userformon lévő textbox-ra utal gondolom...

    Ha más Userformon lévő textboxra akarok utalni, akkor így?

    UserForm8.Textbox2.Value = "sarlatan" then...?

    Nézd meg a képet.

    404 - Az általad keresett oldal nem található!
    Mutasd a teljes hozzászólást!
  • A userformnál (majdnem) mindegy, hogy value, vagy text.
    Átírni egyikbál a másikba:

    me.textbox2.value=Me.textbox1.value
    A Me a saját űrlap, amin az esemény fut.

    Másik (nyitott) űrlapnál:
    me.textbox1.value=userform8.textBox1.value
    userform8.textBox1.value=me.textbox1.value

    A képet néztem, az alapján írtam
    Mutasd a teljes hozzászólást!
  • Igaz, hogy már Ti sokkal tovább jutottatok, de tartozom egy válasszal a kérdésedre.
    A munka annak a Sub procedúrának a neve amelyet Te írtál:

    Private Sub munka() If TextBox2.Text = "viki" Then MsgBox "Szia Viki!" Else MsgBox "Köcsög" End If If ComboBox1.Text = "kék" Then MsgBox "kék színű" End Sub

    Az általam példának felhozott programkód annyit tesz, hogy a TextBox2 Change eseményére lefuttatja az általad írt munka procedúrát. (Nem ez a legszebb megoldás.)

    A Change esemény annyiszor lép fel ahányszor a felhasználó megváltoztatja a TextBox2-be írt tartalmat.
    Teljes megoldást adni sajnos nem tudok mert kezdő vagyok, de remélem az írottak közelebb visznek a megoldáshoz.
    Mutasd a teljes hozzászólást!
  • ...
    If ComboBox1.Text = "kék" Then
    MsgBox "kék színű"
    End if
    Mutasd a teljes hozzászólást!
  • Igen, bár mentségemre legyen mondva én csak idéztem a témaindító kódot.
    Mutasd a teljes hozzászólást!
  • Na most akkor má nem tudom mi az igaz.....

    Egész eddig arról ment a rege, hogy így nem működik nem?
    If ComboBox1.Text = "kék" Then
    MsgBox "kék színű"
    End if

    Kell a me...

    If Me.ComboBox1.Text = "kék" Then
    MsgBox "kék színű"
    End if

    Még nem próbáltam ki, majd csak este leszek Word közelben.....

    Szóval akkor mi a frankó...?


    ........


    Mutasd a teljes hozzászólást!
  • Nem kell.

    Én szeretem kiírni, de nem szükséges, mert a szülő objektumot "feltételezi".

    Ugyan így a value-t se kell általában kiírni, mert az az alapértelmezett tulajdonsága az objektumok egy részének.
    ----

    EzerMester: Ott nem szúrtam ki. Most igen
    Mutasd a teljes hozzászólást!
  • Ha én így írtam, mert így, akkor amikor beírtam a keresztnévhez hogy viki, és lenyomtam az entert, miért nem történt semmi.................

    Sőt amikor kiválasztottam kéket, akkor sem......???
    Mutasd a teljes hozzászólást!
  • Ha nem látom a kódodat (és a környezetet,) akkor nem tudom.

    Mibe használod a VBA-t? Program és verzió?
    Mutasd a teljes hozzászólást!
  • OFFICE Xp, és láttad a kódomat.. azzal indítottam...

    Asszem VB 6.0 van benne......, mármint az office Xp-ben
    Mutasd a teljes hozzászólást!
  • Nálad azért nem ment, mert nem hívta meg senki a munka eljárást.

    Erre mutatott példát hungry_mind
    Mutasd a teljes hozzászólást!
  • Az én voltam vazze...

    De most megfenyegetem a házigazdát, ahol vagyok, és tetetek fel egy office-t...

    20 perc
    Mutasd a teljes hozzászólást!
  • Jó, akkor EzerMester
    Private Sub textBox2.Change() munka End Sub
    Mutasd a teljes hozzászólást!
  • Ez így nem csinál semmit..

    pirossal van jelölve....

    Minek hivogassam meg a munka eljárást, amikor egész végig abban dolgozok......

    Ennyi az összes kód, + a képen amit látsz....
    Mutasd a teljes hozzászólást!
  • 1. A kódod hibás:

    Private Sub UserForm_Initialize()
    ComboBox1.List = Array("piros", "fehér", "zöld", "lila", "kék")
    End Sub

    Private Sub munka()
    If TextBox2.Text = "viki" Then
    MsgBox "Szia Viki!"
    Else
    MsgBox "Köcsög"
    End If
    If ComboBox1.Text = "kék" Then
    MsgBox "kék színű"
    end if
    End Sub

    A Private Sub UserForm_Initialize() lefut az űrlap megnyitásakor, de a munka nevű eljárásodat szerinted ki indítja el?

    Mert a felhasználó nem, ahhot le kelleen programozni az eseményét, ahogy az én mintámban van.
    vagy legalább úgy, ahogy EzerMester leírta.

    Egy eljárás akkor fut, ha valaki, vagy valami elindítja. Attól, hogy az űrlapon felsorolsz 200 sub..End sub-ot, azok sose fognak lefutni, ha azok nem eseményhez vannak kötve.

    Mutasd a teljes hozzászólást!
  • az end if hiányzik ok...

    Tehát a textbox-hoz tegyek egy command buttont, ami kivált egy eseményt.

    tehát

    Private Sub CommandButton1_Click()
    munka
    End Sub

    Private Sub combobox1_Change()
    munka
    End Sub
    ekkor kiirja hogy kö**g. és azt hogy kék szinű

    ez rendben van a két feltételt majd külön elhárásba irom, és úgy hivom meg.


    ez így működik, de nem ez volt a kérdés....

    Az volt a kérdés, hogy ha beírom hogy viki, és Entert nyomok, akkor írja ki, hogy "szia viki"

    Tehát az enter leütése legyen egy esemény.......
    Azt hogyan kezelem le...?




    Mutasd a teljes hozzászólást!
  • Igazán indiszkrét vagyok, ha megkérdezem:
    A windows alapszokásait (pl. hogy egy párbeszédpanelon mit jelent az Enter) ismered?

    Az a párbeszédlap elfogadása.
    Tehát ha ilyet akarsz, akkor tegyél fel egy parancsgombot, annak a "default" tulajdonságát.
    És ehhez add meg a click tulajdonságban, hogy mit akarsz csinálni az Enterre.
    (De az én mintámban ott a kilépésre egy ugyan ilyen)
    Mutasd a teljes hozzászólást!
  • Nem vagy indiszkrét... Nincsenek programozási alapismereteim a Windowsról.

    De ez működik,, amit irtál..

    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    MsgBox "Szia " & Me.TextBox1.Value
    End Sub

    És nem kellett semmilyen parancsgombot adnom.

    Minden egyes eseményt külön eljárásban írtam meg, és úgy hivogatom......

    Ez így rendben van.

    És eről a Windows alapszokásairól hol tudok olvasni....? /google?/

    Mutasd a teljes hozzászólást!
  • Kezd el használni a windows-t, nyiss ki egy párbeszédpanelt, és nézd meg mit csinál a tab, az Enter, az Escape, az Alt+*
    Mutasd a teljes hozzászólást!
  • Nálad azért megy az Exit-re, mert nincs oké gombod. Ha a Windows-ban szokásos párbeszédpanelt készíted el, ott van ok, és akkor rögtön az Enterre az le is fut.
    Most csak átlép a másik elemre.
    Mutasd a teljes hozzászólást!
  • Az rendben van, hogy mit csinál az enter, tab, esc.

    A kérdés, az, hogy ezzel milyen fv- eket indít el....

    mint: TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

    Keresek doksit, a Windows alap programozásról.....

    Köszönöm a türelmedet....


    Mutasd a teljes hozzászólást!
  • Ne a Windows alapról keress.

    VB, vagy Excel programozás!

    AZ meg hogy mi mit indít el, azt megnézheted a súgóban.

    Kijelölöd valamelyik eseményt a jobb oldali lenyíló listából, majd a kódban kijelölöd az esemény nevét (pl Exit) F1-et nyomsz, és ott a leírás, hogy mikor következik be.
    Mutasd a teljes hozzászólást!
  • Megírtam úgyis, hogy Combat_button, és úgyis ahogyan Te írtad, a kilépéssel..

    De amikor volt combat_button, és nem volt kilépés fv, akkor a sima entert nem fogadta el..

    gondolom arra fondolsz, hogy általában igeb.

    Nos nekem így nem működött..

    Be kell írnom, hogy

    or?

    tehtá, hogy vagy a gombat button-ra való kattintás, vagy a kilpés fv-re írja ki..?

    erre gondolsz pontosan, vagy van egy 3. lehetőség, ami eccerre mindkettőt lekezeli......?
    Mutasd a teljes hozzászólást!
  • Most sejt derengeni hogy mit irtál....
    ARRGHHH!!!!

    Hiszen ott van a legördülő menü......

    El sem lehet téveszteni az eseményeket...

    Én meg manuálisan irogattam be...

    Akkor az enter lekezelésre ez jó fv?

    Private Sub TextBox2_AfterUpdate()
    munka
    End Sub

    Ez haj ól veszem ki, akkor hívja meg, ha megváltozott a mező tartalma......

    A VBA-ban csak pár tucat fv van..

    ezeknek utánna tudok nézni...


    Mutasd a teljes hozzászólást!
  • Igen. a színnél (lenyíló) az AfterUpdate jó.
    Mutasd a teljes hozzászólást!
  • ezek szerint a textbox-nál nem....

    Ott vagy az exit, vagy csinálok egy command buttont....

    Azt hiszem ebben a pár napban jó sok időt megspóroltál nekem.

    Jövő hétfőm pedig jön a Word programozás.....

    majd az excel..

    még van 2,5 hetem...
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd