| | Post: 311 | Registrato il: 13/12/2015
| Città: MILANO | Età: 58 | Utente Senior | 2010 | | OFFLINE | |
|
23/01/2021 16:40 | |
Ciao a tutti.
Partendo dalla soluzione di Federico460 nel thread:
www.freeforumzone.com/d/11739900/Calcolo-matematico-in-una-tabella-excel/discussione.aspx
federico460, 12/01/2021 19:38:
=MATR.SOMMA.PRODOTTO(--(INDIRETTO("Tabella3[Flag]")="C")*(INDIRETTO("Tabella3[Data]")>=J$14)*(INDIRETTO("Tabella3[Data]")<=J$15)*((INDIRETTO("Tabella3[Entrata]"))-(INDIRETTO("Tabella3[Uscita]"))))
Vorrei:
1)riportare questa formula in una userform e precisamente nella textbox "conciliazione".
2)avere il dato aggiornato in tempo reale (ho impostato su False lo Showmodel).
E' fattibile?
Grazie per l'aiuto.
[Modificato da BG66 23/01/2021 16:46] BG66
Excel 2010 |
|
| | Post: 880 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Senior | Excel2019 | | OFFLINE |
|
24/01/2021 11:01 | |
Ciao Gene
Se non dai maggiori informazioni nessuno ti risponderà perchè la domanda risulta pressochè incomprensibile.
Penso di esserci arrivato perchè avevo seguito la tua richiesta precedente (a proposito, cliccando sul link non va da nessuna parte).
Completa il codice del pulsante Calcola così
Private Sub CommandButton1_Click()
If TextBox2 = "" Or ComboBox1 = "" Then
MsgBox "Devi completare l'immissione delle date"
Exit Sub
End If
'add giorno dell'anno: attenzione cambia l'ordine di dateadd
Dim X As Date
Dim Y As Long
X = Format(TextBox2, "dd/mm/yy")
Y = ComboBox1
Z = DateAdd("d", Y, X)
TextBox3 = Z
Set sh1 = Sheets("Mov_Bank")
ur = sh1.Cells(Rows.Count, 3).End(xlUp).Row
For i = 6 To ur
If sh1.Cells(i, 11) = "c" And sh1.Cells(i, 3) >= X And sh1.Cells(i, 3) <= Z Then
TextBox5 = sh1.Cells(i, 10) - sh1.Cells(i, 9)
End If
Next i
Set sh1 = Nothing
End Sub
Ovviamente provvederai tu a dichiarare correttamente le mie variabili e formattare adeguatamente la risposta in TextBox5.
Fai sapere. Ciao,
Mario |
| | Post: 311 | Registrato il: 13/12/2015
| Città: MILANO | Età: 58 | Utente Senior | 2010 | | OFFLINE | |
|
24/01/2021 11:33 | |
Ciao Mario,
immagino che questa richiesta di calcolo abbia smosso il Direttore di Banca che è in TE!!
Nel pomeriggio provo a verificare perchè i valori nella userform non corrispondono a quelli (giusti) che ricava la formula nel foglio "EC_bank".
PS Per aggiornare il dato devo sempre premere il pulsante Calcola ?
A presto
Gene
[Modificato da BG66 24/01/2021 11:34] BG66
Excel 2010 |
| | Post: 881 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Senior | Excel2019 | | OFFLINE |
|
24/01/2021 11:42 | |
Ciao
Nell'esempio precedente vi era una sola "c"
Correggi il ciclo in questo modo
...
For i = 6 To ur
If TextBox5 = "" Then TextBox5 = 0
If sh1.Cells(i, 11) = "c" And sh1.Cells(i, 3) >= X And sh1.Cells(i, 3) <= Z Then
TextBox5 = CDbl(TextBox5) + sh1.Cells(i, 10) - sh1.Cells(i, 9)
End If
Next i
...
Cioè ho aggiunto che deve sommare l'eventuale contenuto della TextBox5 e considerarlo 0 (zero) se è vuota.
Ciao,
Mario |
| | Post: 312 | Registrato il: 13/12/2015
| Città: MILANO | Età: 58 | Utente Senior | 2010 | | OFFLINE | |
|
24/01/2021 23:10 | |
Ciao Mario,
non ci sono ancora.
Il valore visualizzato nella textbox è 7 il dato atteso sarebbe -7
In più:
1) il valore non si aggiorna in tempo reale;
2) ho provato a inserire il simbolo Euro nella textbox;
Private Sub TextBox5_AfterUpdate()
With Me.TextBox5
.Value = Format(.Text, "€ #,##0.00")
End With
End Sub
3) ho provato a far aprire la userform quando è attivo il flag;
- > Risultato dell'intero pomeriggio: fiasco totale!!
Spero in tue buone nuove.
Gene
[Modificato da BG66 24/01/2021 23:12] BG66
Excel 2010 |
| | Post: 882 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Senior | Excel2019 | | OFFLINE |
|
25/01/2021 07:01 | |
Ciao
Non leggi i messaggi?
T'avevo detto di "aggiustare" il codice.
Modifica la parte dove c'è il ciclo così
....
For i = 6 To ur
If TextBox5 = "" Then TextBox5 = 0
If sh1.Cells(i, 11) = "c" And sh1.Cells(i, 3) >= X And sh1.Cells(i, 3) <= Z Then
TextBox5 = CDbl(TextBox5) + sh1.Cells(i, 10) - sh1.Cells(i, 9)
End If
Next i
TextBox5 = "€. " & TextBox5
Set sh1 = Nothing
End Sub
Attento che prima di un nuovo calcolo la TextBox5 deve essere vuota.
Ciao,
Mario |
| | Post: 313 | Registrato il: 13/12/2015
| Città: MILANO | Età: 58 | Utente Senior | 2010 | | OFFLINE | |
|
25/01/2021 18:36 | |
Ciao Mario,
Marius44, 25/01/2021 07:01:
Attento che prima di un nuovo calcolo la TextBox5 deve essere vuota.
1) Risolto con tasto AGGIORNA:
Private Sub CommandButton2_Click()
For i = 5 To 5
Me.Controls("TextBox" & i).Value = ""
Next
Call CommandButton1_Click
End Sub
2) il valore in € con i due zero dopo la virgola
NON L'HO RISOLTO COSI 🤬:
....
Next i
TextBox5 = "€ #,##0.00" & TextBox5
.......
3) L'apertura della userform con il campo flaggato:
Risolto con:
Sub ApriUFFlag()
Sheets("Mov_Bank").Activate
If Range("N4") <> FALSO Then
UserForm1.Show
End If
Gene
[Modificato da BG66 25/01/2021 18:38] BG66
Excel 2010 |
| | Post: 883 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Senior | Excel2019 | | OFFLINE |
|
25/01/2021 19:15 | |
Ciao
Per quanto attiene i punti 1) e 2) modifica la macro così (fermo l'inizio)
....
ur = sh1.Cells(Rows.Count, 3).End(xlUp).Row
TextBox5.Value = ""
For i = 6 To ur
If TextBox5 = "" Then TextBox5 = 0
If sh1.Cells(i, 11) = "c" And sh1.Cells(i, 3) >= X And sh1.Cells(i, 3) <= Z Then
TextBox5 = CDbl(TextBox5) + sh1.Cells(i, 10) - sh1.Cells(i, 9)
End If
Next i
TextBox5 = "€." & Format(TextBox5, "#,###.00")
Set sh1 = Nothing
End Sub
Ciao,
Mario |
| | Post: 314 | Registrato il: 13/12/2015
| Città: MILANO | Età: 58 | Utente Senior | 2010 | | OFFLINE | |
|
25/01/2021 20:41 | |
[RISOLTO]
Grazie Mario.
Alla prossima.
Gene
STAY SAFE BG66
Excel 2010 |
|
|