shadi1978
00martedì 13 marzo 2018 16:00
Ciao a tutti,
ho allegato un'immagine per semplificare la spiegazione.
1.Con il pulsante "Genera Lista" importo i dati nella listbox (10colonne)
2.nella textbox SWIFT AMOUNT inserisco un importo arbitrario.
3.se seleziono una riga dalla lista con evento ListBox change() nella textbox UNPAID (quella cerchiata di rosso con lettera A) si aggiorna il valore: SWIFT - Valore(colonna importi)
Questo valore viene aggiornato ogni qualvolta selezioni una riga della listbox.
4.avrei bisogno di copiare il valore rimasto nella UNPAID (cerchio rosso A) nell colonna con cerchio rosso B
questo possibilmente con evento change. E' fattibile?
Spero di essere spiegato bene, grazie mille
GiuseppeMN
00martedì 13 marzo 2018 19:44
Buona sera, Shadi;
capisco la riservatezza del File, ma con una immagine non andiamo molto lontano.
È come se in un ristorante tu ordinassi un piatto di spaghetti al pomodoro e il Cameriere ti portasse ... la foto di un piatto di spaghetti al pomodoro fumante.
Per poterti proporre una possibile soluzione, dovrei ricostruire il tuo File; questo, per mè, è improponibile.
Con amicizia.
Buona serata.
Giuseppe
shadi1978
00mercoledì 14 marzo 2018 09:14
Ciao Giuseppe,
immaginavo ed hai ragione.... speravo il problema fosse più e magari risolvibile così.
Ti ho allegato il file, grazie mille
GiuseppeMN
00mercoledì 14 marzo 2018 12:12
Buona giornata, Shadi;
grazie della Tua Attenzione.
In questo momento sono fuori casa, appena rientro qurderò volentieri il tuo File.
A presto.
Giuseppe
alfrimpa
00mercoledì 14 marzo 2018 16:15
Ciao Shadi
In attesa della risposta di Giuseppe (che saluto) vedo che in userform_initialize c'è questo codice
vb
i = "List x Forum" 'per prova
Set wb2 = Workbooks(i)
puoi spiegare a cosa serve?
Se si tenta di eseguire la form si riceve un errore di run-time 9 (Indice non incluso nell'intervallo) perché non esiste nessun workbook denminato "List x Forum"
shadi1978
00mercoledì 14 marzo 2018 16:38
Ciao Giuseppe,
intanto infinitamente grazie per la disponibilità mostrata.
Dal momento che darai un'occhiata al file potresti verificare perchè da quando clikko REGISTRA, il dato importato nel foglio excel in colonna J, lo porta come testo e nonostante il numberformat non riesco a farlo cambiare in valuta (dovrebbe essere la stessa della cella attigua in colonna I)
Grazie mille ancora, spero tu riesca ad aiutarmi
GiuseppeMN
00mercoledì 14 marzo 2018 16:39
Buonpomeriggio, Shadi;
per riuscire a visualizzare un UserForm evitando:
- Errore di run-time '9': Indice non incluso nell'intervallo
, ho dovuto bypassare UserForm_Initialize.
Sicuramente nel tuo File originale ci sono dei:
- Worksheet
e/o
- Workbook
che non sono riportati nel File che gentilmente hai allegato in Risposta #3 e questo potrebbe generare l'Errore di cui sopra.
Ciò premesso, in queste condizioni, non credo di riuscire ad analizzare le funzioni di UserForm per poterti proporre una soluzione accettabile; credo che questa volta dovrò passare la mano a qualche Utente più qualificato.
Buon Lavoro
Buona serata.
Giuseppe
shadi1978
00mercoledì 14 marzo 2018 16:46
Ciao Alfrimpa,
ho visto adesso la tua risposta, quella riga di codice è impostata perchè questo è lo sto preparando su un file in particolare ma una volta completato verrò inserito nel file excel madre che mi gestirà 2 directory contenenti all'incirca 50 file clienti diversi.
i = "List x Forum"
era il nome del file che avevo dato quando lo ho allegato alla discussione. Ora ho provato a fare download ed in effetti il nome del file viene modificato....
dove c'è "i=" bisognerebbe scrivere il nome del file
ce ne sono alcune nel file (il file probabilmente risulterà ripetitivo in alcune sue parti, ma non so come fare diversamente):
1^ riga 21
2^ riga 100
3^ riga 182
4^ riga 287
5^ riga 374
grazie
GiuseppeMN
00mercoledì 14 marzo 2018 16:53
Leggo solo ora la Risosta #5 di Alfredo, che saluto, e la tua Risposta #6
Vorrei solo aggiungere che anche premendo il Pulsante "REGISTRA" o il Pulsante "Genera LISTA", viene riproposto:
- Errore di run-time '9': Indice non incluso nell'intervallo
Giuseppe
shadi1978
00mercoledì 14 marzo 2018 16:56
Ho risposto in merito all'errore di runtime in risposta #8
shadi1978
00giovedì 22 marzo 2018 15:53
Ciao,
non riuscite a darmi una mano anche qui...
sono bloccato
grazie
GiuseppeMN
00giovedì 22 marzo 2018 19:55
Buona sera, Shadi;
ti leggo solo ora:
Non so se può esserti utile, ho provato a sostituire l'istruzione:
con:
Sembra funzionare; altri nomi di File non sono riuscito a trovarli.
A disposizione
Buona serata.
Giuseppe
shadi1978
00martedì 27 marzo 2018 15:49
Grazie Giuseppe,
il suggerimento che mi hai dato serve per far girare il codice di esempio che ho caricato sul forum.
La mia domanda è quella posta all'apertura della discussione, adesso che il codice funziona riusciresti a darmi una mano a risolvere il mio problema di aggiornamento della lista (#1) del formato (risposta #6)?
grazie grazie mille
GiuseppeMN
00martedì 27 marzo 2018 19:05
Buona sera, Shadi.
Ho cercato di interpretare quello che desideri ottenere
(purtroppo, l'età è quella che è e, di certo, non aiuta!
)
Quello che posso dirti è che i Form rendono il Valore inserito come "Stringa"; credo sia necessario trasformare il Valore da "Stringa" a "Numero con decimali".
Per fare ciò ho utilizzato due Variabili; vedi se può esserti utile il seguente Codice VBA:
Private Sub LISTA_Change()
Dim Vlr As Double, Unp As Double
SWamount = Me.SWamount.Value
For i = 1 To Me.LISTA.ListCount
If Me.LISTA.Selected(i - 1) = True Then
If InStr(Me.LISTA.List(i - 1, 1), "CN") > 0 Then
SWamount = SWamount + Abs(Me.LISTA.List(i - 1, 7))
Else
If Tot = "" Then
Tot = Me.LISTA.List(i - 1, 7)
Else
Tot = Tot + Me.LISTA.List(i - 1, 7)
End If
End If
r = i - 1
End If
Next i
Vlr = SWamount
Unp = Tot - Vlr
Me.Unpaid.Value = Unp
If Me.Unpaid.Value < 0 Then
Me.Comment.Value = "Credito disponibile"
Else
Me.Comment.Value = "Importo rimanente da saldare su fatt. n° " & Me.LISTA.List(r, 6)
End If
End Sub
Buona serata.
Giuseppe
GiuseppeMN
00mercoledì 28 marzo 2018 11:36
Buona giornata, Shadi;
credo sia necessario trasformare il Valore da "Stinga" a "Numero con decimali" anche nel Codice VBA:
- Private Sub cmdREGISTRA_Click()
Anche in questo caso ho utilizzato una Variabile; vedi se può esserti utile il seguente Codice VBA:
Private Sub cmdREGISTRA_Click()
Dim sh, sh1, sh2, sh3 As Worksheet
Dim wb, wb1, wb2 As Workbook
Dim cl3, cl2, cl2a, cl2b, rng3, rng2, rng2a, rng2b As Range
Dim i
Dim Vlr As Double
Application.ScreenUpdating = False
Application.EnableEvents = False
i = ActiveWorkbook.Name
Set wb2 = Workbooks(i)
Set sh2 = wb2.Worksheets("STORICO")
Set sh3 = wb2.Worksheets("FATTURE APERTE")
For i = Me.LISTA.ListCount - 1 To 0 Step -1
If Me.LISTA.Selected(i) = True And InStr(Me.LISTA.List(i, 0), "CN") = 0 Then
esp = Me.ComboEXP.Value
tfa = Me.LISTA.List(i, 0)
Set rng3 = sh3.Range("A:A")
With rng3
Set cl3 = .Find(tfa, LookIn:=xlValues, lookat:=xlWhole)
If Not cl3 Is Nothing Then
r3 = cl3.Row
If c <> 1 Then
Vlr = Me.Unpaid.Value
sh3.Cells(r3, 9).Value = Vlr
c = 1
sh3.Cells(r3, 8).Font.Strikethrough = True
Else
sh3.Cells(r3, 8).Font.Strikethrough = True
End If
End If
End With
ElseIf Me.LISTA.Selected(i) = True And InStr(Me.LISTA.List(i, 0), "CN") > 0 Then
tfa = Me.LISTA.List(i, 0)
Set rng3 = sh3.Range("A:A")
With rng3
Set cl3 = .Find(tfa, LookIn:=xlValues, lookat:=xlWhole)
If Not cl3 Is Nothing Then
r3 = cl3.Row
sh3.Cells(r3, 8).Font.Strikethrough = True
End If
End With
End If
Next i
c = ""
Set wb2 = Nothing
Set sh2 = Nothing
Set sh3 = Nothing
Set rng3 = Nothing
Set cl3 = Nothing
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Buon Lavoro.
Giuseppe