Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Whisky for Mac

Xiaomi 14 Gpay

Izolare zid exterior de scandura

Dezinstalare drivere W11 23H3
 Recomandare masina de spalat fiab...

BSOD din cauza Intel Audio DSP dr...

De ce sunt oamenii nostalgici

Cum vand casa fara factura Hidroe...
 Scor FICO minim

Tonometru compensat CAS?

polita RCA ONLINE

Va rog recomandati echipa serioa...
 Termostat frigider - verificare

Mai au PC-urile vreun viitor?

Centrala termica immergas

Amenda in Lipsa ?
 

Visual Basic for Applications

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

#1
Ludw1kk

Ludw1kk

    New Member

  • Grup: Junior Members
  • Posts: 8
  • Înscris: 12.12.2017
Am format un meniu al unui restaurant doar evidentiind produsele dorite intr-un listbox, cum as putea adauga pentru fiecare un pret anume si cu ajutorul unui CommandButton sa le sumeze?


Private Sub CheckBox1_Change()
If CheckBox1.Value = True Then
   ListBox1.AddItem CheckBox1.Caption
   CheckBox1.Enabled = False
   End If
End Sub
Private Sub CheckBox10_Change()
If CheckBox10.Value = True Then
   ListBox1.AddItem CheckBox10.Caption
   CheckBox10.Enabled = False
   End If
End Sub
Private Sub CheckBox11_Change()
If CheckBox11.Value = True Then
   ListBox1.AddItem CheckBox11.Caption
   CheckBox11.Enabled = False
   End If
End Sub
Private Sub CheckBox12_Change()
If CheckBox12.Value = True Then
   ListBox1.AddItem CheckBox12.Caption
   CheckBox12.Enabled = False
   End If
End Sub
Private Sub CheckBox2_Change()
If CheckBox2.Value = True Then
   ListBox1.AddItem CheckBox2.Caption
   CheckBox2.Enabled = False
   End If
End Sub
Private Sub CheckBox3_Change()
If CheckBox3.Value = True Then
   ListBox1.AddItem CheckBox3.Caption
   CheckBox3.Enabled = False
   End If
End Sub
Private Sub CheckBox4_Change()
If CheckBox4.Value = True Then
   ListBox1.AddItem CheckBox4.Caption
   CheckBox4.Enabled = False
   End If
End Sub
Private Sub CheckBox5_Change()
If CheckBox5.Value = True Then
   ListBox1.AddItem CheckBox5.Caption
   CheckBox5.Enabled = False
   End If
End Sub
Private Sub CheckBox6_Change()
If CheckBox6.Value = True Then
   ListBox1.AddItem CheckBox6.Caption
   CheckBox6.Enabled = False
   End If
End Sub

Private Sub CheckBox7_Change()
If CheckBox7.Value = True Then
   ListBox1.AddItem CheckBox7.Caption
   CheckBox7.Enabled = False
   End If
End Sub
Private Sub CheckBox8_Change()
If CheckBox8.Value = True Then
   ListBox1.AddItem CheckBox8.Caption
   CheckBox8.Enabled = False
   End If
End Sub
Private Sub CheckBox9_Change()
If CheckBox9.Value = True Then
   ListBox1.AddItem CheckBox9.Caption
   CheckBox9.Enabled = False
   End If
End Sub
Private Sub CommandButton1_Click()
CheckBox1.Enabled = True
CheckBox2.Enabled = True
CheckBox3.Enabled = True
CheckBox4.Enabled = True
CheckBox5.Enabled = True
CheckBox6.Enabled = True
CheckBox7.Enabled = True
CheckBox8.Enabled = True
CheckBox9.Enabled = True
CheckBox10.Enabled = True
CheckBox11.Enabled = True
CheckBox12.Enabled = True
ListBox1.Clear
End Sub
Private Sub CommandButton2_Click()
MsgBox ("Comanda efectuata cu succes!")
End Sub
Private Sub Label1_Click()
End Sub
Private Sub Label2_Click()
End Sub
Private Sub Label3_Click()
End Sub
Private Sub Label4_Click()
End Sub
Private Sub ListBox1_Click()
End Sub
Private Sub UserForm_Click()
End Sub



#2
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018
Hello, ai mai multe  metode:
1.atunci cand faci click stanga in listbox pt un item selectat sa-ti apare o casuta de dialog, pui pretul si apoi se salveaza pretul intr-un alt listbox si in acel listbox faci suma.
2. iti faci o structura proprie de stocare a doua variabile asfel: <ReferintaControlCheckbox, double> cu metodele: selecteazaValoareProdusByCheckbox(....) in care
daca controlul de checkbox este activ(are focus) si valoarea sa este true atunci valoarea produsului aferenta se adauga intr-un array si pe masura ce adauga in acel array faci suma
elementelor din array si il afisezi intr-un control text

3.creezi un array de valori double ,  si apoi in interiorul fiecarei metode  CheckBox_Change ,  daca checkbox-ul are valoarea true pui sa adauge la acel array valoarea produsului respectiv.
si apoi apasand un buton de total va afisa intr-un control de tip text suma acelui array.

#3
claz

claz

    Active Member

  • Grup: Members
  • Posts: 1,861
  • Înscris: 10.06.2005
In ce dezvolti cu VBA? MS Access?

#4
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018

View Postclaz, on 24 martie 2018 - 21:39, said:

In ce dezvolti cu VBA? MS Access?
Nu conteaza,n-are importanta, VB-ul ramane VB

Quote

....
Tinand cont ce am zis mai sus in postul anterior , ti-am facut o secventa de cod care face ce vrei tu:
Public Class Pereche
Public referintaCasuta As CheckBox
Public valoareNumerica As Double
'constructorul clasei in VB
Public Sub New(referintaImplicitaCasuta As CheckBox, valoareNumericaImplicita As Double)
	 referintaCasuta = referintaImplicitaCasuta
	 valoareNumerica = valoareNumericaImplicita
End Sub
End Class
Public Class Form1
'declaram aici toate campurile clasei Form1
Dim ciclare As Integer = 0
Dim perechi As Array
Dim suma As Double = 0.0
Public Sub New()
	 ' This call is required by the designer.
	 InitializeComponent()
	 ' Add any initialization after the InitializeComponent() call.
	 'adica scriem aici tot ce vrem sa initializam
	 perechi = {
			 New Pereche(CheckBox1, 2500.0),
			 New Pereche(CheckBox2, 50.53),
			 New Pereche(CheckBox3, 7200.91)
	 }
	 TextBox1.Text = "0"
	 'setam inteval de verificare la 500 milisecunde(adica o 0.5 secunde)
	 'practic la fiecare secunda se va executa metoda Timer1_Tick
	 Timer1.Interval = 500
	 'activam timer-ul
	 Timer1.Enabled = True
End Sub
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
End Sub
Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
	 'verificam care checkboxuri au fost apasate, iar pentru cele apasate le punem in listbox
	 'adica mapam evenimentul de selectie checkboxuri catre evenimentul de populare a listboxului
	 Dim intrareCasutaInLista As Boolean = False
	 Dim iesireCasutaDinLista As Boolean = False

	 For Each pereche As Pereche In perechi
		 intrareCasutaInLista = pereche.referintaCasuta.Checked And
								 ListBox1.Items.IndexOf(pereche.referintaCasuta.Text) = -1
		 iesireCasutaDinLista = (pereche.referintaCasuta.Checked = False) And
								 Not (ListBox1.Items.IndexOf(pereche.referintaCasuta.Text) = -1)
		 If (intrareCasutaInLista) Then
			 ListBox1.Items.Add(pereche.referintaCasuta.Text)
			 suma += pereche.valoareNumerica
		 ElseIf (iesireCasutaDinLista) Then
			 ListBox1.Items.Remove(pereche.referintaCasuta.Text)
			 suma -= pereche.valoareNumerica
		 End If
		 If (suma < 0.0) Then
			 TextBox1.Text = "0"
		 Else
			 TextBox1.Text = suma.ToString
		 End If
	 Next
End Sub
End Class

iti atasez si solutia din Visual Basic 2017 cu codul de mai sus:
https://files.fm/u/epsvxwun
iar mai jos ai un  video care arata cum se comporta codul de mai sus redactat de mine, care face ce-ti trebuie tie:
https://files.fm/u/qsar6nsu

Edited by WinstonMontana, 25 March 2018 - 14:53.


Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

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