Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

calcola media prezzi tramite form in vb

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

calcola media prezzi tramite form in vb

Postdi piter123 » 05/01/08 18:01

Salve,
creo un form con 6 textbox.
La textbox1 contiene la qta 1 e la textbox2 contiene il prezzo 1, tramite il seguente codice all'apertura della form i ralativi valori vengono caricati.

Private Sub UserForm_Initialize()
CELL1ATT = ActiveCell.Address(False, False)
If Not Intersect(ActiveCell, Range("AL20", "AL25")) Is Nothing Then
TextBox1.Text = Range(CELL1ATT)
CELL2ATT = "AK" & Right$(CELL1ATT, 2)
TextBox2.Text = Range(CELL2ATT)
End If
End Sub

La textbox3 che contiene la qta 2 e la textbox4 che contiene il prezzo 2 vengono scritte manualmante.

Nella textbox5 comparirà la somma della textbox1 (qta 1) e della textbox3 (qta 2),
nella textbox6 comparirà la media in base alle quatità e ai prezzi 1 e prezzi 2 (rispettivamente textbox 3 e 4).

per fare questo nel codice della textbox3 ho scritto :
Private Sub TextBox3_Change()
TextBox5.Text = Val(TextBox1.Text) + Val(TextBox3.Text) 'fà la somma delle quantità e la scrive nella textbox5
End Sub


nella codice della textbox4 invece ho scritto :
Private Sub TextBox4_Change()
'calcola la media e la scrive nella textbox6
TextBox6.Text = ((TextBox1.Text * TextBox2.Text) + (TextBox3.Text * TextBox4.Text)) / TextBox5.Text
End Sub


e fino a quì mi funziona tutto, ora però se dovessi cambiare la qtà nella textbox3 (qtà 2) il valore della textbox6 (prezzo medio)rimarrebbe sempre lo stesso invece di essere ricalcolato allora ho scritto nel codice della textbox5 il seguente codice in modo che ogni volta che cambiasse il suo valore ricalcolasse la media :
Private Sub TextBox5_Change()
TextBox6.Text = ((TextBox1.Text * TextBox2.Text) + (TextBox3.Text * TextBox4.Text)) / TextBox5.Text
End Sub

Ora però mi succede che ogni volta che avvio la form nel momento in cui vado a mettere manualmente il dato della qtà 2 nella textbox3 mi dà il seguente errore :

Errore di RunTime 13
Tipo non corrispondente

Come posso risolvere ?

Grazie
piter123
Utente Senior
 
Post: 190
Iscritto il: 07/11/07 18:31

Sponsor
 

Re: calcola media prezzi tramite form in vb

Postdi Anthony47 » 06/01/08 00:27

Non sono un grande appassionato delle form, quindi non ho maturato grandi abilita'; comunque vedi se con questa va bene:
Codice: Seleziona tutto
Private Sub TextBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox6.Text = ((TextBox1.Text * TextBox2.Text) + (TextBox3.Text * TextBox4.Text)) / TextBox5.Text
End Sub


Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: calcola media prezzi tramite form in vb

Postdi piter123 » 06/01/08 10:51

Grazie, ma purtroppo il codice che mi hai dato non era quello che serviva a me.
Ho comunque risolto, in sostanza nella formula

TextBox6.Text = ((TextBox1.Text * TextBox2.Text) + (TextBox3.Text * TextBox4.Text)) / TextBox5.Text

quando nella textbox3 si va a cambiare la qtà cancellando la vecchia il suo valore diventa nullo e quindi nella formula si moltiplica per un valore nullo e quindi dà errore.

Ho risolto con il sequente codice nella textbox5, se manca il valore o della textbox3 o 4 in sostanza non calcola la media ma riporta i valori della qta1 e prezzo 1

Private Sub TextBox5_Change()
If TextBox4.Text = "" Or TextBox3.Text = "" Then
TextBox6.Text = ((TextBox1.Text * TextBox2.Text)) / TextBox5.Text
Else
TextBox6.Text = ((TextBox1.Text * TextBox2.Text) + (TextBox3.Text * TextBox4.Text)) / TextBox5.Text
End If

End Sub
piter123
Utente Senior
 
Post: 190
Iscritto il: 07/11/07 18:31


Torna a Applicazioni Office Windows


Topic correlati a "calcola media prezzi tramite form in vb":


Chi c’è in linea

Visitano il forum: patel e 15 ospiti