Calcolo dimensioni con Macro
Hai un problema con Excel? 
Calcolo dimensioni con Macro
di Guybrush (utente non iscritto) data: 28/12/2015 16:39:22
Salve a tutti,
ho un dilemma che mi attanaglia. Per farla breve, se la cella corrispondente in colonna G è uguale a "19" deve fare determinati calcoli, trai quali quello dei metri quadrati.
Nello specifico ho una sola riga con "19", e long e lato corrispondono entrambi a 300mm.
Di conseguenza questa operazione:
totmqint = (lung / 1000 * lato / 1000)
Se la matematica non ci inganna deve venire 0,09 mq
Potete ora spiegarmi, essendoci solamente una riga da calcolare, perchè questa operazione:
totmq = totmq + totmqint
Mi da come risultato totmq = 0,18?
Grazie a tutti in anticipo.
Saluti
totmq = 0
totmqint = 0
For I = 1 To URO
Range("G" & 1 + I).Select
spess = ActiveCell.Text
If spess <> "19" Then
Range("G" & 1 + I).Select
Else
ActiveCell.Offset(0, -2).Select
lung = ActiveCell.Value
ActiveCell.Offset(0, 4).Select
nr = ActiveCell.Value
ActiveCell.Offset(0, -3).Select
lato = ActiveCell.Value
calcint = ((1.5 + lung / 1000) / tempomin) * nr
totmqint = (lung / 1000 * lato / 1000)
End If
calclungunoint = calclungunoint + calcint
totmq = totmq + totmqint
Next I |
di Marius44 data: 28/12/2015 19:22:34
Ciao Guybrush
ti suggerisco di allegare il file. Nello spezzone di codice che hai allegato mancano alcuni valori; URO, nr, tempomin
Ciao,
Mario
di Guybrush (utente non iscritto) data: 30/12/2015 08:47:35
Grazie della risposta Mario. Mi dispiace ma non posso perchè è materiale aziendale. Comunque:
URO: ultima riga occupata
nr: numero colli
tempomin: velocità al minuto
di patel data: 30/12/2015 09:15:13
puoi sempre allegare un file di esempio costruito da te che non sia quello aziendale in modo da poter testare la macro.
di Mister_x (utente non iscritto) data: 30/12/2015 10:17:37
ciao
a quardare dalla sub proposta non mi sembra un file cosi' importante
comunque partiamo da quel accendere e spegnere Celle inutilmente
usa cells() e non Range() per selezionare i dati
altra cosa il calcolo lo devi esequire tutto nel ciclo di controllo IF end
quindi se la sub lavessi scritta io l'avrei tagliata tutta buttando il superfluo
ciao
Dopo i vari tagli
For I = 2 To URO ''perche' 1 ?? quando parti da due
''Range("G" & 1 + I).Select '' I+1 = 2
''spess = ActiveCell.Text
spess = Cells(I, 7).Text
If spess = "19" Then '' esgui solamente se il valore e' 19 tutto il resto salta
'''Range("G" & 1 + I).Select
''Else
''ActiveCell.Offset(0, -2).Select
''lung = ActiveCell.Value
''ActiveCell.Offset(0, 4).Select
''nr = ActiveCell.Value
''ActiveCell.Offset(0, -3).Select
''lato = ActiveCell.Value
lung = Cells(I, 5)
nr = Cells(I, 11)
lato = Cells(I, 4)
calcint = ((1.5 + lung / 1000) / tempomin) * nr
totmqint = (lung / 1000 * lato / 1000)
calclungunoint = calclungunoint + calcint
totmq = totmq + totmqint
End If
''calclungunoint = calclungunoint + calcint
''totmq = totmq + totmqint
Next I
|
di Guybrush (utente non iscritto) data: 31/12/2015 11:15:45
Perfetto, grazie a tutti per l'aiuto e per i consigli
Vuoi Approfondire?