Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cost abonament clinica privata

Tremura toata, dar nu de la ro...

Renault Android

Recomandare bicicleta e-bike 20&#...
 Bing-Content removal tool

Nu pot accesa monitorulsv.ro de l...

Cum sa elimini urmele de acnee?

Wc Geberit
 Routere detinute in trecut si in ...

Teii din fața casei

E-Mail in serie prin Excel si Out...

Modul alimentare rulou/jaluzea ex...
 Recuperare fișiere dupa form...

Aplicatii stress test RAM

Asigurare auto hibrid

Asus B550M - PC-ul nu porneste di...
 

retine variabila dintr-o forma vba(excel)

- - - - -
  • Please log in to reply
7 replies to this topic

#1
credit

credit

    Member

  • Grup: Members
  • Posts: 621
  • Înscris: 04.05.2007
Am creat un userform in vba(excel) care contine un text box si un buton.


"Public Sub CommandButton1_Click()
Dim nrpol As integer
nrpol = UserForm1.TextBox3.Value
UserForm1.Hide
End Sub"

Am mai creeat un buton in sheet1 si vreau in momentul in care dau click pe el sa imi aduca valoarea variabilei nrpol din userformul creat.

ceva de genul


"Public Sub CommandButton1_Click()
msgbox nrpol
End Sub"


Vreau sa stiu cum pot citi valoarea variabilei nrpol din userform dintr-un alt eveniment.
Multumesc

#2
bgMiKe

bgMiKe

    Junior Member

  • Grup: Members
  • Posts: 149
  • Înscris: 28.01.2006
http://www.vb6.us/tu...-variable-scope

#3
credit

credit

    Member

  • Grup: Members
  • Posts: 621
  • Înscris: 04.05.2007

 bgMiKe, on 11th August 2011, 17:27, said:


In comandbutton1 din sheet1 daca scriu "msgbox userform1.textbox3.value" imi arata valoarea din textbox3 dar cum fac sa folosesc variabila "nrpol" in locul textbox-ului
Vreau ceva de genul  "msgbox nrpol"

Te rog daca poti sa ma ajuti ca sunt incepator cu VB-ul.

Multumesc

#4
bgMiKe

bgMiKe

    Junior Member

  • Grup: Members
  • Posts: 149
  • Înscris: 28.01.2006
Tu ai un modul (user_form-ul), 2 proceduri si o variabila si vrei ca in procedura_1 sa incarci o valoare in variabila, valoare pe care s-o folosesti (afisezi) apoi in procedura_2.

Pe baza continutului din link-ul pe care ti l-am dat:
- care este domeniul/acoperirea (en. scope) de care ai avea nevoie?
- care ar fi keyword-ul folosit la declaratie?
- unde ar trebui sa fie lcoalizata declaratia?

#5
credit

credit

    Member

  • Grup: Members
  • Posts: 621
  • Înscris: 04.05.2007

 bgMiKe, on 13th August 2011, 04:46, said:

Tu ai un modul (user_form-ul), 2 proceduri si o variabila si vrei ca in procedura_1 sa incarci o valoare in variabila, valoare pe care s-o folosesti (afisezi) apoi in procedura_2.

Pe baza continutului din link-ul pe care ti l-am dat:
- care este domeniul/acoperirea (en. scope) de care ai avea nevoie?
- care ar fi keyword-ul folosit la declaratie?
- unde ar trebui sa fie lcoalizata declaratia?


variabila nrpol vreau sa fie definita la nivel global.
dim nrpol as integer
nrpol = userform2.textbox3.value

keyword-ul sa fie Public

#6
credit

credit

    Member

  • Grup: Members
  • Posts: 621
  • Înscris: 04.05.2007
Gata am rezolvat. Am definit variabilele la nivel de modul si le cer ori de cate ori am nevoie.

Dim nrpolita, nasig, auto, marca, categ, culoare, inm, identif, cil, scemit As String
Dim an As Integer
Dim luni As Integer
Dim vlb1, vlb2 As String

Public Sub ant()
On Error Resume Next

nrpolita = UserForm1.TextBox1.Text
nasig = UserForm1.TextBox2.Text
auto = UserForm1.TextBox3.Text
marca = UserForm1.TextBox4.Text
categ = UserForm1.TextBox5.Text
culoare = UserForm1.TextBox6.Text
scemit = UserForm1.TextBox7.Text
inm = UserForm1.TextBox8.Text
identif = UserForm1.TextBox9.Text
cil = UserForm1.TextBospam.spam.Text
an = UserForm1.TextBox11.Value
luni = UserForm1.TextBox12.Value
vlb1 = UserForm1.TextBox13.Text
vlb2 = UserForm1.TextBox14.Text
End Sub


Public Sub ant1()
Call ant
MsgBox nrpolita
MsgBox luni
MsgBox nasig
MsgBox auto
MsgBox marca
End Sub


m-am si verificat cu msgbox'uri

Multumesc

#7
bgMiKe

bgMiKe

    Junior Member

  • Grup: Members
  • Posts: 149
  • Înscris: 28.01.2006

 credit, on 13th August 2011, 12:41, said:

Gata am rezolvat. Am definit variabilele la nivel de modul si le cer ori de cate ori am nevoie.

Dim nrpolita, nasig, auto, marca, categ, culoare, inm, identif, cil, scemit As String
Dim an As Integer
Dim luni As Integer
Dim vlb1, vlb2 As String


Eu zic ca nu ai rezolvat.
OK, merge ... dar nu ai inteles mai nimic. Mai uita-te o data pe tabel si pe Multiple Declarations on One Line, de data asta cu atentie.
Mai mult:
- nu faci un lucru doar pentru ca se poate sau pentru ca asa ti se pare mai frumos ci pentru ca logica de proiectare si/sau implementare o cere. (de ex. de ce declari toate variabilele la nivel de modul?)
- ce face/cum lucreaza/care este efectul metodei Hide?
- pentru ce motiv incarci, intr-o procedura, valoarea/starea unui control intr-o variabila, pentru ca apoi s-o folosesti (variabila) intr-o alta procedura, toate (procedurile, controlul si variabila) apartinand aceluiasi obiect (modul)?
In fine ... daca tot esti la inceput in ale programarii:
- stabileste-ti foarte clar ce ai de facut: ce se da (input), ce se cere(output), ce prelucrari se fac de la input la output;
- citeste (cu atentie) cum se pot executa operatiile de mai sus in limbajul pe care l-ai ales.
sau, daca nu reusesti ... orienteaza-te catre altceva.

#8
credit

credit

    Member

  • Grup: Members
  • Posts: 621
  • Înscris: 04.05.2007

 bgMiKe, on 13th August 2011, 20:05, said:

Eu zic ca nu ai rezolvat.
OK, merge ... dar nu ai inteles mai nimic. Mai uita-te o data pe tabel si pe Multiple Declarations on One Line, de data asta cu atentie.
Mai mult:
- nu faci un lucru doar pentru ca se poate sau pentru ca asa ti se pare mai frumos ci pentru ca logica de proiectare si/sau implementare o cere. (de ex. de ce declari toate variabilele la nivel de modul?)
- ce face/cum lucreaza/care este efectul metodei Hide?
- pentru ce motiv incarci, intr-o procedura, valoarea/starea unui control intr-o variabila, pentru ca apoi s-o folosesti (variabila) intr-o alta procedura, toate (procedurile, controlul si variabila) apartinand aceluiasi obiect (modul)?
In fine ... daca tot esti la inceput in ale programarii:
- stabileste-ti foarte clar ce ai de facut: ce se da (input), ce se cere(output), ce prelucrari se fac de la input la output;
- citeste (cu atentie) cum se pot executa operatiile de mai sus in limbajul pe care l-ai ales.
sau, daca nu reusesti ... orienteaza-te catre altceva.

Programul in excel este de fapt un calculator de polite casco iar unele calcule generate in excel sunt exportate in fisiere word (forms), mai exact polita si nota de calcul. Se importa/exporta inclusiv cursul BNR in format xml.
Variabilele declarate general la nivel de modul pot fi folosite pentru orice procedura din modulul respectiv(am inteles asta). Ulterior am definit variabilele la nivel de sheet1 pentru a putea fi folosite in orice procedura din Sheet1.
Efectul metodei hide imi ascunde forma, datele introduse ramanand incarcate in memorie, le chema oricand printr'o procedura.
A fost un test.
Asta cu stabilirea de la inceput... nu am stabilit deoarece fiind doar incepator cu VBA'ul nu am o vedere de ansamblu exacta a ceea ce trebuie facut de la inceput. O sa incerc pe viitor sa clarific mai bine datele. Tu cum faci inainte de a te apuca de un proiect? Faci o schita ceva(pe hartie) a viitorului proiect sau te apuci pur si simplu de programat cu schita in cap?
De orientat spre altceva sunt deja orientat. Partea asta cu VBA'ul este pentru a-mi usura munca, este o unealta nu un scop. Dar jucandu-ma asa prin VBA am observat ca imi si place. Ma relaxeaza.

Mersi de sfaturi.

Poti sa-mi recomanzi o carte sau un site cu VBA pentru incepatori? Nu vreau ceva complicat, vreau lucruri de baza bine scrise, scurte si la obiect si cu exemple de cod.

Edited by credit, 14 August 2011 - 08:34.


Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate