Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Info Coronavirus/Vaccinare vs Fake News

La multi ani @marinel1976!

La multi ani de Sfanta Maria!

La multi ani @xcit!
 Chiuveta de baie (alba) ceramica ...

Sapa autonivelanta - uscare

Parere Audi/VW/Skoda

ROA (Rise Of Artificial) - FLOW D...
 Sfaturi dimensiuni elemente lemn

Se mai dau tichete de masa pentru...

Nu imi apare chat-ul pe YouTube

Modem Huawei E3372 vs E3372h / al...
 Indepartare pete infiltratii cu c...

Sfaturi pentru ingrasare

Relatie disfunctionala cu sotul d...

Decizia FINALA a boxelor de podea...
 

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

Bun venit pe Forumul Softpedia!

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