Se tutto è andato bene e non abbiamo commesso errori di sintassi, all'uscita del ciclo interno (quello dei carichi) dovremme avere le sei componenti della risultante relativa alla combinazione in corso e siamo pertanto in grado di riportarne i valori nella tabella del foglio che abbiamo dedicato a contenere le risultanti.
Questa tabella la avevamo chiamata semplicemente TabCar senza nessun numero.
Per scrivere il valore di una variabili VBA in una cella del foglio dovremo fare riscorso alla istruzione inversa alla lettura. in questo caso trattandosi ancora di una cella di una tabella, serve ricorrere nuovamente alla proprietà .cells(rigo,colonna).
Per scrivere la componente Fx della risultante scriveremo l'istruzione:
Range("TabCar").Cells(Count_Comb, 1).Value = Fx
mentre per scrivere le restanti componenti cambieremo l'indice da 1 a 2 a 3 a 4 a 5 a 6.
ottenendo una cosa del genere
Sub Calcola_Risultanti()
Dim Fx As Double
Dim Fy As Double
Dim Fz As Double
Dim Mx As Double
Dim My As Double
Dim Mz As Double
Dim X_g As Double
Dim Y_g As Double
Dim H_p As Double
X_g = Range("XG").Value
Y_g = Range("YG").Value
H_p = Range("HP").Value
Dim N_combo As Integer
Dim N_carichi As Integer
N_combo = Range("NmaxCombo").Value
N_carichi = Range("NmaxCar").Value
Dim tabella As String
Dim Count_Comb As Integer
Dim Count_Car As Integer
For Count_Comb = 1 To N_combo
Fx = Range("TabCar0").Cells(Count_Comb, 1)
Fy = Range("TabCar0").Cells(Count_Comb, 2)
Fz = Range("TabCar0").Cells(Count_Comb, 3)
Mx = Range("TabCar0").Cells(Count_Comb, 4)
My = Range("TabCar0").Cells(Count_Comb, 5)
Mz = Range("TabCar0").Cells(Count_Comb, 6)
For Count_Car = 1 To N_carichi
tabella = "TabCar" & Count_Car
Fx = Fx + Range(tabella).Cells(Count_Comb, 1)
Fy = Fy + Range(tabella).Cells(Count_Comb, 2)
Fz = Fz + Range(tabella).Cells(Count_Comb, 3)
Mx = Mx + _
Range(tabella).Cells(Count_Comb, 4) + _
Range(tabella).Cells(Count_Comb, 3) * (Range("Tab_Coord_Car").Cells(Count_Car, 2) - Y_g) - _
Range(tabella).Cells(Count_Comb, 2) * H_p
My = My + _
Range(tabella).Cells(Count_Comb, 5) - _
Range(tabella).Cells(Count_Comb, 3) * (Range("Tab_Coord_Car").Cells(Count_Car, 1) - X_g) + _
Range(tabella).Cells(Count_Comb, 1) * H_p
Mz = Mz + _
Range(tabella).Cells(Count_Comb, 6) - _
Range(tabella).Cells(Count_Comb, 1) * (Range("Tab_Coord_Car").Cells(Count_Car, 2) - Y_g) + _
Range(tabella).Cells(Count_Comb, 2) * (Range("Tab_Coord_Car").Cells(Count_Car, 1) - X_g)
Next
Range("TabCar").Cells(Count_Comb, 1).Value = Fx
Range("TabCar").Cells(Count_Comb, 2).Value = Fy
Range("TabCar").Cells(Count_Comb, 3).Value = Fz
Range("TabCar").Cells(Count_Comb, 4).Value = Mx
Range("TabCar").Cells(Count_Comb, 5).Value = My
Range("TabCar").Cells(Count_Comb, 6).Value = Mz
Next
End Sub
e col codice avremmo finito per adesso.
Ora dobbiamo creare un pulsante sul foglio alla cui pressione si attiva questa Sub.