dopo mesi di assenza ritorno a disturbarvi;
il mio excel è ormai ossidato dopo tanto tempo di inattività.
sto creando un piccolo progettino ma ho difficoltà nel creare una macro più concisa.
cerco di aiutarmi con delle immagini per spiegarvi il problema.
in un form ho inserito un pulsante per attivare la macro ed un textbox, il cui valore indica il numero di riga scelto.
i dati sono inseriti nel foglio 2 a partire dalla riga 3, le prime due servono per l'intestazione, e dalla colonna G alla N con la sola colonna M vuota, come in fig.
inserendo un valore nel textbox, che deve ovviamente essere maggiore od uguale a 3, seleziono la riga del foglio 2;
eseguo dei semplici calcoli attivando la macro qui di seguito:
- Codice: Seleziona tutto
Sub CALCOLA()
Dim wk As Workbook
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set wk = ThisWorkbook
With wk
Set sh1 = .Worksheets("Foglio1")
Set sh2 = .Worksheets("Foglio2")
End With
sh1.Select
With sh1
.Range("J3").Value = sh2.Range("H3").Value - sh2.Range("G3").Value
.Range("J5").Value = sh2.Range("I3").Value - sh2.Range("H3").Value
.Range("J7").Value = sh2.Range("J3").Value - sh2.Range("I3").Value
.Range("J9").Value = sh2.Range("K3").Value - sh2.Range("J3").Value
.Range("J11").Value = sh2.Range("L3").Value - sh2.Range("K3").Value
.Range("J13").Value = sh2.Range("N3").Value + sh2.Range("G3").Value
.Range("J15").Value = sh2.Range("N3").Value + sh2.Range("H3").Value
.Range("J17").Value = sh2.Range("N3").Value + sh2.Range("I3").Value
.Range("J19").Value = sh2.Range("N3").Value + sh2.Range("J3").Value
.Range("J21").Value = sh2.Range("N3").Value + sh2.Range("K3").Value
.Range("J23").Value = sh2.Range("N3").Value + sh2.Range("L3").Value
End With
End Sub
come si può notare sono somme e differenze tra valori disposti sulla stessa riga;
per un diverso calcolo cambia solo la riga ma le colonne rimangono sempre le stesse, nel senso che se considero la riga 4 cambia solo il secondo indice della cella, 4 invece di 3.
vorrei modificare la macro in modo che inserendo il numero nella textbox venga riconosciuto il numero di riga del foglio 2,
e, conseguentemente, eseguito il calcolo il risultato venga riportato sempre nelle stesse celle del foglio 1 nella colonna J a partire dalla J3 fino alla J23 in modo alternato.
le righe del foglio 2 vengono aggiornate settimanalmente quindi non conosco l'ultima riga.
e' inutile sottolineare che i cicli che ho provato sono un completo disastro.
grazie anticipatamente dei vostri contributi e suggerimenti.
saluti miko