Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

[Excel 2007]- Sub per ricalcolo Val.ang. al 1° quadrante Opzioni
aetio
Inviato: Saturday, December 21, 2013 11:45:06 AM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
devo risolvere questo problema di calcolo, che ora eseguo di volta in volta manualmente (vedere QUESTO file di esempio):
in Foglio1
Dati
-celle C3:G3, 5 valori angolari ridotti al 1° quadrante [57, 45, 29, 12, 59]
-celle H3:AG3, altri 26 valori angolari ridotti al 1° quadrante
-cella P3 con bordi (non importa il colore), valore angolare oggetto di questo problema [24]
In questo esempio la cella bordata è la P3, che permane per tutto il ciclo (ma comunque è sempre tra H3:AG3).

Mediante la calcolatrice AI6:AI11, appositamente istruita, ricavo dei valori angolari ridotti al 1° quadrante (sono il risultato della soluzione di questo problema) che andrò a scrivere nelle celle AP3:AT3 [33, 21, 5, 78, 35]
Istruzioni impostate nella calcolatrice:
-(A) cella AI6: Val.Ang. (da inserire manualmente di volta in volta) di cella C3, D3, E3, F3, G3 [57, 45, 29, 12, 59]
-(B) cella AI7: Val.Ang. di cella P3 (da inserire manualmente solo la 1^ volta) [24]
-cella AI8: calcola la differenza tra AI6 e AI7
-cella AI9: Val.Ang. 90 preimpostato per i calcoli
-cella AI10: Val.Ang di cella AI8 che viene copiato in automatico da excel
-cella AI11: calcola la somma tra AI9 e AI10
Se A>B nelle celle AP3:AT3 scriverò maualmente il Val.Ang di cella AI8
Se A<B nelle celle AP3:AT3 scriverò maualmente il Val.Ang di cella AI11

Per risolvere il mio problema bisognerebbe creare una macro che, rilevato il valore della cella bordata, esegua di volta in volta le operazioni che ora svolge la semplice calcolatrice previa immissione manuale dei Val.Ang. (A) e (B)
In villano volgare, la macro dovrebbe lavorare così:
1) sottrai il val. di cella bordata (B) dal val. di cella C3 (A)
se Se A>B scrivi risultato X in cella AP3 [33]
altrimenti (se A<B)
aggiungi a 90 il risultato X
e scrivi la somma Y in cella AP3

2) sottrai il val. di cella bordata (B) dal val. di cella D3 (A)
se Se A>B scrivi risultato X in cella AQ3 [21]
altrimenti (se A<B)
aggiungi a 90 il risultato X
e scrivi la somma Y in cella AQ3

3) sottrai il val. di cella bordata (B) dal val. di cella E3 (A)
se Se A>B scrivi risultato X in cella AR3 [5]
altrimenti (se A<B)
aggiungi a 90 il risultato X
e scrivi la somma Y in cella AR3

4) sottrai il val. di cella bordata (B) dal val. di cella F3 (A)
se Se A>B scrivi risultato X in cella AS3
altrimenti (se A<B)
aggiungi a 90 il risultato X
e scrivi la somma Y in cella AS3 [78]

5) sottrai il val. di cella bordata (B) dal val. di cella G3 (A)
se Se A>B scrivi risultato X in cella AT3 [35]
altrimenti (se A<B)
aggiungi a 90 il risultato X
e scrivi la somma Y in cella AT3

In Foglio2, per aiutare la comprensione del problema, vi sono le 5 calcolatrici con indicati i relativi calcoli svolti.

Grazie assai, buona giornata
eZio
Sponsor
Inviato: Saturday, December 21, 2013 11:45:06 AM

 
a10n11
Inviato: Monday, December 23, 2013 7:40:52 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
prova con questa:


Sub test()
Set area = Range("h3:aG3")
For Each cl In area
If Not cl.Borders.LineStyle = xlNone Then
x = cl.Value
Exit For
End If
Next
Set area = Nothing
Set area1 = Range("C3:G3")
col = 3
colx = 42
riga = 10
For Each itn In area1
Cells(riga, col).Value = itn.Value
Cells(riga + 1, col).Value = x
Cells(riga + 3, col).Value = 90
a = itn.Value - x
b = 90 + a
If itn.Value > x Then
Cells(riga + 2, col).Value = a
Cells(riga + 4, col).Value = a
Cells(riga + 5, col).Value = b
Cells(10, colx).Value = a
Else
Cells(riga + 2, col).Value = a
Cells(riga + 4, col).Value = a
Cells(riga + 5, col).Value = b
Cells(10, colx).Value = b
End If
col = col + 3
colx = colx + 1
Next itn
Set area1 = Nothing
End Sub

saluti
Giap

aetio
Inviato: Monday, December 23, 2013 9:03:09 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
come sempre è divinamente PERFETTA...
Grazie assai, buona serata
eZio
Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.