tiratardi12
30-11-2017, 11:58
Salva a tutti,
sto lavorando ad un progetto su Excel, che attraverso un form di input e una macro, mi permetta di trasferire i dati in un altro foglio e successivamente fare dei calcoli basilari.
Questa la macro:
Sub copia()
Dim Risposta As String
Dim Domanda As String
Dim i As Byte
Dim lastRow As Long
Domanda = "Eseguire la macro?"
Risposta = MsgBox(Domanda, vbYesNo, "Conferma")
If Risposta = vbYes Then
lastRow = Sheets("Pippo").Cells(1, 1).CurrentRegion.Rows.Count + 1
For i = 2 To 14
If Sheets("Pippo").Cells(3, 3) <> "" Then
lastRow = Sheets("Pippo").Cells(1, 1).CurrentRegion.Rows.Count + 1
Else
lastRow = Sheets("Pippo").Cells(1, 1).CurrentRegion.Rows.Count
End If
Next i
Sheets("Sheet2").Range("B3:P3").Copy Sheets("Pippo").Range("B" & lastRow)
Range("B3:P3").ClearContents
Range("B3").Select
Else
Exit Sub
End If
End Sub
La macro fa il suo lavoro, ovvero trasferisce i dati in modo corretto. Ora una volta che i dati vengono trasferiti nel foglio Pippo, ho due necessità: (1) dei calcoli per ogni riga e (2) alcune somme dei risultati derivanti dai calcoli precedentemente fatti.
(1) ogni riga ha dei calcoli basilari, uguali per tutti. Il problema che ho riscontrato è che se trascino la formula per una serie di righe (per esempio fino alla 10), la macro non funziona più a dovere perché inserisce i dati nella 11 (ovvero nella prima riga totalmente libera). La soluzione ottimale sarebbe quella di creare una macro che ad ogni riga occupata crei le celle di calcolo oppure che sorpassi il fatto che ci siano le colonne Q,R,S,T,U occupate e vada a riempire solo le restanti (ovvero quello indicate dal form di input)
(2) oltre ai risultati per ogni riga, mi interessano anche i dati aggregati di tutti i risultati per ogni singola riga (somma). La posizione delle somme non mi interessa molto, nel senso che possono stare a lato oppure in alto, la cosa che realmente mi interessa è che siano aggiornate ad ogni riga inserita. Naturalmente sarebbe grandioso farle scalare man mano che i dati vengano inseriti, ma non vorrei chiedere troppo.
Qua il file Excel: (non me lo faceva caricare come allegato)
https://goo.gl/TJu3Jo
Grazie per il supporto
sto lavorando ad un progetto su Excel, che attraverso un form di input e una macro, mi permetta di trasferire i dati in un altro foglio e successivamente fare dei calcoli basilari.
Questa la macro:
Sub copia()
Dim Risposta As String
Dim Domanda As String
Dim i As Byte
Dim lastRow As Long
Domanda = "Eseguire la macro?"
Risposta = MsgBox(Domanda, vbYesNo, "Conferma")
If Risposta = vbYes Then
lastRow = Sheets("Pippo").Cells(1, 1).CurrentRegion.Rows.Count + 1
For i = 2 To 14
If Sheets("Pippo").Cells(3, 3) <> "" Then
lastRow = Sheets("Pippo").Cells(1, 1).CurrentRegion.Rows.Count + 1
Else
lastRow = Sheets("Pippo").Cells(1, 1).CurrentRegion.Rows.Count
End If
Next i
Sheets("Sheet2").Range("B3:P3").Copy Sheets("Pippo").Range("B" & lastRow)
Range("B3:P3").ClearContents
Range("B3").Select
Else
Exit Sub
End If
End Sub
La macro fa il suo lavoro, ovvero trasferisce i dati in modo corretto. Ora una volta che i dati vengono trasferiti nel foglio Pippo, ho due necessità: (1) dei calcoli per ogni riga e (2) alcune somme dei risultati derivanti dai calcoli precedentemente fatti.
(1) ogni riga ha dei calcoli basilari, uguali per tutti. Il problema che ho riscontrato è che se trascino la formula per una serie di righe (per esempio fino alla 10), la macro non funziona più a dovere perché inserisce i dati nella 11 (ovvero nella prima riga totalmente libera). La soluzione ottimale sarebbe quella di creare una macro che ad ogni riga occupata crei le celle di calcolo oppure che sorpassi il fatto che ci siano le colonne Q,R,S,T,U occupate e vada a riempire solo le restanti (ovvero quello indicate dal form di input)
(2) oltre ai risultati per ogni riga, mi interessano anche i dati aggregati di tutti i risultati per ogni singola riga (somma). La posizione delle somme non mi interessa molto, nel senso che possono stare a lato oppure in alto, la cosa che realmente mi interessa è che siano aggiornate ad ogni riga inserita. Naturalmente sarebbe grandioso farle scalare man mano che i dati vengano inseriti, ma non vorrei chiedere troppo.
Qua il file Excel: (non me lo faceva caricare come allegato)
https://goo.gl/TJu3Jo
Grazie per il supporto