› Excel e gli applicativi Microsoft Office › sub_totali da Listbox
-
AutoreArticoli
-
Buon giorno a tutti
mi ritrovo a riscrivere e chiedere il vostro prezioso aiuto,
alla presente discussione ho allegato un file.
il presente file mi occorre per fare le contabilità ai vari Sub_appaltatori, che ho in cantiere.
nel file ho un foglio denominato "Computo"; in pratica in questo foglio faccio un computo metrico, e registro dati tutti i mesi, per emettere la contabilità a ogni singolo sub_appaltatore.
I lavori li classifico per 3 tipologie, (vedere la colonna M) "Economie, Misura , a corpo".
e fin qui bene.
ora se si clicca sul tasto "AvviaUser" compare una userform con list box e text box,
la listbox si popola attingendo i dati registrati nel foglio Computo.
Questa userform la uso come filtro, per filtrare i dati che mi occorrono.
facciamo un esempio,
se nella textbox "fine mese" scrivo 30/09/2018 la list box si popola solo con i dati filtrati di quel periodo.
In basso ci sono 3 tasti
Lav. a Misura
Lav. Economia
Lav. a Corpo
quello che mi occorre in pratica e che al cliccare sui tasti appena citati, nelle text box di riferimento mi escono i sub_totali per tipologia, sempre attingendo i dati dalla listbox filtrata,
i risultati per il mese preso come esempio (30/09/2018) li ho scritti manualmente al lato di ogni text box.
quindi dovrà essere quello il risultato.
spero di essermi spiegato bene,
qualche buona anima di voi super esperti può essermi di aiuto?
grazie mille
Allegati:
You must be logged in to view attached files.Ciao
Devi filtrare per tipologia. Nella ricerca dei lavori a "Misura" ho implementato nella macro le seguenti righe
For scorri2 = 0 To indice - 1 Stop Dim cpt As String cpt = "Misura" If Me.ListBox1.List(scorri2, 12) = cpt Then Tot2 = Tot2 + CDbl(Me.ListBox1.List(scorri2, 20)) '<<<=======AGGIUNGI sotto End If NextCome vedi c'è uno Stop per darti modo di verificarlo. Eliminalo e schiaccia il pulsante. Vedrai il totale esatto.
Per gli altri pulsanti provvedi tu.
Fai sapere. Ciao,
Mario
Allegati:
You must be logged in to view attached files.Marius
grazie mille per aver preso in considerazione la mia richiesta di aiuto,
il sub_totale funziona,
ma quello che stavo cercando, era, avere i sub_totali delle 3 categorie senza filtrare ogni volta la categoria,
ma avere i sub_totali delle categorie cliccando su ogni tasto di riferimento,
lav. misura
lav in economia
lav. corpo
mi occorre questa cosa perchè una volta selezionato il mese, l'impresa, devo poter cliccare sui 3 tasti e avere i sub_totali di riferimento, per tipologia perchè poi importo quei valori in un'altra userform ed emetto il certificato di pagamento,
ho la necessità di avere quei 3 valori contemporaneamente.
e non filtrare la tipologia ogni volta,
perchè in quel caso sapevo impostare la funzione di calcolo.
spero id essermi spiegato,
grazie mille davvero.
per eventuali chiarimenti sono qui.
saluti
Guarda che il codice postato da Mario(che saluto), fa quello che chiedi, se fai la selezione della dato e fai click sul pulsante "misura" ti esce il valore giusto, lo stesso codice lo devi associare a gli altir pulsanti cambiando la ricerca e la textbox.
Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
Sempre il mare, uomo libero, amerai!
( Charles Baudelaire )Albatros
grazie per l'aiuto
ho testato il tuo codice, funzione tutto bene, grazie mille.
Si ho provato anche quello di Marius. Attribuendo ad ogni tasto il suo codice e funziona anche la sua soluzione e lo ringrazio di cuore.
Siete di grande aiuto
Buon giorno riprendo la discussione.
Mi son accorto che devo cliccare su tutti e tre i tasti per avere i sub totali x categoria. Ma mi son reso conto che avvolte dimentico di cliccare su qualche tasto. Vi chiedo se è possibile avere i sub totali delle categorie cliccando solo sul tasto
Esempio sul tasto
Lav misura.
E avere anche i sub totali della categoria
Lav economie
Lav a corpo.
In pratica mi serve raggruppare le funzioni degl altri tasti in un unico tasto. Spero di essermi spiegato
Ringrazio per il prezioso aiuto che dimostrare sempre di dare a noi comuni mortali.
Ciao
Il problema è facilmente risolvibile "contraendo" le formule!!!!
Mi spiego (scusa la battuta). Prendendo ad esempio il codice da me suggerito (e che andava - come ho detto e come hai fatto - implementato nei tre pulsanti) potrebbe cambiare così.
` If Me.ListBox1.List(scorri2, 12) = "Misura" Then Tot1 = Tot + CDbl(Me.ListBox1.List(scorri2, 20)) ElseIf Me.ListBox1.List(scorri2, 12) = "Economia" Then Tot2 = Tot2 + CDbl(Me.ListBox1.List(scorri2, 20)) ElseIf Me.ListBox1.List(scorri2, 12) = "a Corpo" Then Tot3 = Tot3 + CDbl(Me.ListBox1.List(scorri2, 20)) End If `aggiungendo poi in quale posto (Label, TextBox o altro) vuoi inserire i risultati Tot1, To2 e To3.
Ovvio che a questo punto basta un solo pulsante
Prova e fai sapere. Ciao,
Mario
PS - Tieni presente che sopra in Tot1 manca l'1 nel secondo Tot
ciao Marius grazie mille per la risposta,
ho seguito le tue istruzioni ma forse sbaglio qualcosa;
il sub_totale nella categoria
Lav. Misura non torna,
ho creaato un nuovo tasto
e ho inserito il codice cosi come mi hai suggerito.
ho fatto la prova utilizzando il file allegato,
nella textbox
Lav economie
e Lav a corpo
i sub_totali tornano
ho filtrato i dati al 30/09/2018
ma come puoi ben vedere se clicchi sul nuovo tasto che ho creato nella textbox
Lav. misura
il risultato non torna, puoi essere cosi gentile da dirmi dove sbaglio?
grazie
Allegati:
You must be logged in to view attached files.Penso di aver risolto, il codice corretto e il seguente,:
Private Sub CommandButton47_Click()
Dim indice
Dim scorri2Dim Tot1
Dim Tot2
Dim Tot3 '<<<=======AGGIUNGI sotto aumentando i totindice = Me.ListBox1.ListCount
For scorri2 = 0 To indice - 1If Me.ListBox1.List(scorri2, 12) = "Misura" Then
Tot1 = Tot1 + CDbl(Me.ListBox1.List(scorri2, 20))ElseIf Me.ListBox1.List(scorri2, 12) = "Economia" Then
Tot2 = Tot2 + CDbl(Me.ListBox1.List(scorri2, 20))
ElseIf Me.ListBox1.List(scorri2, 12) = "a Corpo" Then
Tot3 = Tot3 + CDbl(Me.ListBox1.List(scorri2, 20))
End IfNext
Me.TextBox50.Value = Tot1 '<<<=======AGGIUNGI sotto
TextBox50 = Format(TextBox50, "€ #,##0.00")Me.TextBox51.Value = Tot2 '<<<=======AGGIUNGI sotto
TextBox51 = Format(TextBox51, "€ #,##0.00")Me.TextBox52.Value = Tot3 '<<<=======AGGIUNGI sotto
TextBox52 = Format(TextBox52, "€ #,##0.00")End Sub
giusto?
-
AutoreArticoli
