Ciao Deniel,
La risposta corta sarebbe di utilizzare il codice del pulsante per aggiornare non solo il foglio ma anche i controlli di interesse.
A titolo di esempio illustrativo (anche se alquanto banale), apri una nuova cartella di lavoro.
Nell'intervallo A1:F10 della sua Foglio1, incolla la seguente tabella:
| Nome |
Ore |
Euro/Ora |
Reddito Lordo |
Imposta |
Salario <br><br><br> Netto |
| Anne |
39,0 |
9,75 |
|
|
|
| Ben |
35,0 |
5,25 |
|
|
|
| Carol |
38,0 |
11,25 |
|
|
|
| David |
15,0 |
9,50 |
|
|
|
| Ewan |
20,0 |
6,99 |
|
|
|
| Freda |
38,0 |
12,50 |
|
|
|
| Gerald |
41,5 |
6,95 |
|
|
|
| Harry |
45,0 |
8,50 |
|
|
|
| Irma |
28,0 |
11,25 |
|
|
|
Nella prima riga delle tre colonne vuote, copia le seguente formule e trascinale in basso:
Ora, crea una UserForm con due TextBox, una ComboBox e un CommandButton (TextBox1, TextBox2, ComboBox1 e CommandButton1).
Nel modulo di codice della UserForm incolla il seguente codice:
'==========>>
Option Explicit
Dim WB As Workbook
Dim SH As Worksheet
Dim Rng As Range
'---------->>
Private Sub CommandButton1_Click()
Dim destRng As Range
Set destRng = Rng.Cells(Me.ComboBox1.ListIndex + 1, 2)
With Me
destRng.Value = CDbl(.TextBox1.Value)
destRng.Offset(0, 1).Value = CDbl(.TextBox2.Value)
.ComboBox1.List = Rng.Value
End With
End Sub
'---------->>
Private Sub UserForm_Initialize()
Set WB = ThisWorkbook
Set SH = WB.Sheets("Foglio1")
Set Rng = SH.Range("A1:E10")
With Me.ComboBox1
.ColumnCount = Rng.Columns.Count
.List = Rng.Value
.ListIndex = 1
End With
End Sub
'<<==========
In un modulo standard, incolla:
'==========>>
Option Explicit
'---------->>
Public Sub MostraUserform()
UserForm1.Show vbModal = False
End Sub
'<<==========
Finalmente, sul Foglio1, inserisci un pulsante e allega questa macro al pulsante.
Prova la Userform: seleziona qualsiasi riga della Combox e inserisci alcuni nuovi valori nelle due TextBox.
Vedrai che, quando si preme il CommandButton, i valori nelle colonne B:C saranno aggiornati con i valori inseriti nelle due TextBox e i dati della ComboBox rifletteranno i valori aggiornati in tutte le colonne della tabella.
Quod erat demonstrandum!
===
Regards,
Norman