Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Cerco di spiegarmi meglio:
<cut>
Non ho capito se i dati vanno di volta in volta accodati. Se sì, questa lo fa nel Foglio1(modifica nel caso con il nome del tuo foglio):
Private Sub CommandButton1_Click()
Dim sh As Worksheet
Dim lRiga As Long
Dim s As String
Set sh = ThisWorkbook.Worksheets("Foglio1")
lRiga = sh.Range("A" & sh.Rows.Count).End(xlUp).Row + 1
With Me
s = .TextBox1.Text & TextBox2.Text & TextBox3.Text
If s <> "" Then
sh.Range("A" & lRiga).Value = .TextBox1.Text
sh.Range("E" & lRiga).Value = .TextBox2.Text
sh.Range("F" & lRiga).Value = CDbl(.TextBox3.Text)
lRiga = lRiga + 1
s = ""
End If
s = .TextBox4.Text & TextBox5.Text & TextBox6.Text
If s <> "" Then
sh.Range("A" & lRiga).Value = .TextBox4.Text
sh.Range("E" & lRiga).Value = .TextBox5.Text
sh.Range("F" & lRiga).Value = CDbl(.TextBox6.Text)
lRiga = lRiga + 1
End If
s = .TextBox7.Text & TextBox8.Text & TextBox9.Text
If s <> "" Then
sh.Range("A" & lRiga).Value = .TextBox7.Text
sh.Range("E" & lRiga).Value = .TextBox8.Text
sh.Range("F" & lRiga).Value = CDbl(.TextBox9.Text)
lRiga = lRiga + 1
End If
s = .TextBox10.Text & TextBox11.Text & TextBox12.Text & TextBox13.Text
If s <> "" Then
sh.Range("A" & lRiga).Value = .TextBox10.Text
sh.Range("B" & lRiga).Value = .TextBox11.Text
sh.Range("E" & lRiga).Value = .TextBox12.Text
sh.Range("G" & lRiga).Value = CDbl(.TextBox13.Text)
lRiga = lRiga + 1
End If
s = .TextBox14.Text & TextBox15.Text & TextBox16.Text
If s <> "" Then
sh.Range("A" & lRiga).Value = .TextBox14.Text
sh.Range("E" & lRiga).Value = .TextBox15.Text
sh.Range("G" & lRiga).Value = CDbl(.TextBox16.Text)
End If
End With
Set sh = Nothing
End Sub
NOTA. Formatta le colonne F e G per avere valori numerici con 2 decimali. Inutile farlo da codice!
Se invece devi fare questa cosa ogni volta singolarmente sul foglio attivo:
Private Sub CommandButton1_Click()
Dim lRiga As Long
Dim s As String
lRiga = 2
With Me
s = .TextBox1.Text & TextBox2.Text & TextBox3.Text
If s <> "" Then
ActiveSheet.Range("A" & lRiga).Value = .TextBox1.Text
ActiveSheet.Range("E" & lRiga).Value = .TextBox2.Text
ActiveSheet.Range("F" & lRiga).Value = CDbl(.TextBox3.Text)
lRiga = lRiga + 1
s = ""
End If
s = .TextBox4.Text & TextBox5.Text & TextBox6.Text
If s <> "" Then
ActiveSheet.Range("A" & lRiga).Value = .TextBox4.Text
ActiveSheet.Range("E" & lRiga).Value = .TextBox5.Text
ActiveSheet.Range("F" & lRiga).Value = CDbl(.TextBox6.Text)
lRiga = lRiga + 1
End If
s = .TextBox7.Text & TextBox8.Text & TextBox9.Text
If s <> "" Then
ActiveSheet.Range("A" & lRiga).Value = .TextBox7.Text
ActiveSheet.Range("E" & lRiga).Value = .TextBox8.Text
ActiveSheet.Range("F" & lRiga).Value = CDbl(.TextBox9.Text)
lRiga = lRiga + 1
End If
s = .TextBox10.Text & TextBox11.Text & TextBox12.Text & TextBox13.Text
If s <> "" Then
ActiveSheet.Range("A" & lRiga).Value = .TextBox10.Text
ActiveSheet.Range("B" & lRiga).Value = .TextBox11.Text
ActiveSheet.Range("E" & lRiga).Value = .TextBox12.Text
ActiveSheet.Range("G" & lRiga).Value = CDbl(.TextBox13.Text)
lRiga = lRiga + 1
End If
s = .TextBox14.Text & TextBox15.Text & TextBox16.Text
If s <> "" Then
ActiveSheet.Range("A" & lRiga).Value = .TextBox14.Text
ActiveSheet.Range("E" & lRiga).Value = .TextBox15.Text
ActiveSheet.Range("G" & lRiga).Value = CDbl(.TextBox16.Text)
End If
End With
End Sub
Fai sapere partendo da qui cosa va e non va.
Grazie.