Discussione:
CONTROLLA IL RANGE SE Eè IN GRASSETTO CALCOLA
(troppo vecchio per rispondere)
Drago_dj
2006-07-30 11:32:22 UTC
Permalink
Ho l'esigenza di controllare il range che va da P8 a P19, e di sommare nella
cella L24 solo quei valori scritti in grassetto.
Come devo fare?
Grazie
Norman Jones
2006-07-30 13:17:44 UTC
Permalink
Ciao Drago,

'-------------------
Ho l'esigenza di controllare il range che va da P8 a P19, e di
sommare nella cella L24 solo quei valori scritti in grassetto.
Come devo fare?

'-------------------

Prova:

'=============>>
Public Function SommaGrassetto(rng) As Double
Dim rCell As Range
Dim iSum As Double

Application.Volatile

For Each rCell In rng.Cells
With rCell
If .Font.Bold = True Then
iSum = iSum + .Value
End If
End With
Next rCell

SommaGrassetto = iSum

End Function
'<<=============

Potresti utilizzare questa funzione da VBA come:

'=============>>
Public Sub myTest()
Dim mySum As Double

mySum = SommaGrassetto(Range("P8:P19"))
Range("L24") = mySum
End Sub
'<<=============

Oppure, potresti utilizzare la funzione come UDF da Excel:

L24: =SommaGrassetto(P1:P19)

Nota, comunque, se la funzione fosse usata come funzione utente in XL, il
valore restituito dalla funzione si aggiornerebbe soltanto in risposta ad
un cambiamento nei valori dell'intervallo di interesse, o in risposta ad un
calcolo del foglio; pertanto, per verificare che il valore sia corretto, si
dovesse premare il tasto F9.


---
Regards,
Norman (SCSPIMI)
Drago_dj
2006-07-30 19:49:23 UTC
Permalink
SommaGrassetto non mi funziona, mi da #NOME?
Probabilmente perchè i valori che ci sono nel range, sono pescati da altri
fogli.
Adesso l'unica alternativa è quella del codice in VB.
P.S. Oltre che quel range, dovrei sommarne anche altri 3:
Q8:Q19 la cui somma deve essere nella cella L25
R8:R19 la cui somma deve essere nella cella R24
S8:S19 la cui somma deve essere nella cella R25.
Ovviamente deve sommare soltanto i valori in grassetto.
Come cambia il codice in VB ?
Grazie ancora Norman
Post by Norman Jones
Ciao Drago,
'-------------------
Ho l'esigenza di controllare il range che va da P8 a P19, e di
sommare nella cella L24 solo quei valori scritti in grassetto.
Come devo fare?
'-------------------
'=============>>
Public Function SommaGrassetto(rng) As Double
Dim rCell As Range
Dim iSum As Double
Application.Volatile
For Each rCell In rng.Cells
With rCell
If .Font.Bold = True Then
iSum = iSum + .Value
End If
End With
Next rCell
SommaGrassetto = iSum
End Function
'<<=============
'=============>>
Public Sub myTest()
Dim mySum As Double
mySum = SommaGrassetto(Range("P8:P19"))
Range("L24") = mySum
End Sub
'<<=============
L24: =SommaGrassetto(P1:P19)
Nota, comunque, se la funzione fosse usata come funzione utente in XL, il
valore restituito dalla funzione si aggiornerebbe soltanto in risposta ad
un cambiamento nei valori dell'intervallo di interesse, o in risposta ad
un calcolo del foglio; pertanto, per verificare che il valore sia
corretto, si dovesse premare il tasto F9.
---
Regards,
Norman (SCSPIMI)
Norman Jones
2006-07-30 20:01:42 UTC
Permalink
Ciao Drago,

'----------------
SommaGrassetto non mi funziona, mi da #NOME?
Probabilmente perchè i valori che ci sono nel range, sono pescati
da altri fogli.
Adesso l'unica alternativa è quella del codice in VB.
P.S. Oltre che quel range, dovrei sommarne anche altri 3:
Q8:Q19 la cui somma deve essere nella cella L25
R8:R19 la cui somma deve essere nella cella R24
S8:S19 la cui somma deve essere nella cella R25.
Ovviamente deve sommare soltanto i valori in grassetto.
Come cambia il codice in VB ?
Grazie ancora Norman

'----------------

Potresti mandarmi il tuo file?


---
Regards,
Norman
Drago_dj
2006-07-30 20:15:02 UTC
Permalink
OK Norman ci sono riuscito
Grazie
Post by Drago_dj
SommaGrassetto non mi funziona, mi da #NOME?
Probabilmente perchè i valori che ci sono nel range, sono pescati da altri
fogli.
Adesso l'unica alternativa è quella del codice in VB.
Q8:Q19 la cui somma deve essere nella cella L25
R8:R19 la cui somma deve essere nella cella R24
S8:S19 la cui somma deve essere nella cella R25.
Ovviamente deve sommare soltanto i valori in grassetto.
Come cambia il codice in VB ?
Grazie ancora Norman
Post by Norman Jones
Ciao Drago,
'-------------------
Ho l'esigenza di controllare il range che va da P8 a P19, e di
sommare nella cella L24 solo quei valori scritti in grassetto.
Come devo fare?
'-------------------
'=============>>
Public Function SommaGrassetto(rng) As Double
Dim rCell As Range
Dim iSum As Double
Application.Volatile
For Each rCell In rng.Cells
With rCell
If .Font.Bold = True Then
iSum = iSum + .Value
End If
End With
Next rCell
SommaGrassetto = iSum
End Function
'<<=============
'=============>>
Public Sub myTest()
Dim mySum As Double
mySum = SommaGrassetto(Range("P8:P19"))
Range("L24") = mySum
End Sub
'<<=============
L24: =SommaGrassetto(P1:P19)
Nota, comunque, se la funzione fosse usata come funzione utente in XL, il
valore restituito dalla funzione si aggiornerebbe soltanto in risposta
ad un cambiamento nei valori dell'intervallo di interesse, o in risposta
ad un calcolo del foglio; pertanto, per verificare che il valore sia
corretto, si dovesse premare il tasto F9.
---
Regards,
Norman (SCSPIMI)
Norman Jones
2006-07-30 20:22:16 UTC
Permalink
Ciao Drago,
Post by Drago_dj
OK Norman ci sono riuscito
Allora, dato che la funzione funziona per me, potresti spiegare perche' non
funzionava per te?


---
Regards,
Norman
eliano
2006-07-30 23:33:02 UTC
Permalink
Post by Norman Jones
Ciao Drago,
Post by Drago_dj
OK Norman ci sono riuscito
Allora, dato che la funzione funziona per me, potresti spiegare perche' non
funzionava per te?
Se ritorna #NOME, dieci a uno che ha scritto male il nome della Function.
Eliano
(idem per la Function di Shadow)
Norman Jones
2006-07-30 23:58:00 UTC
Permalink
Ciao Eliano,
Post by eliano
Se ritorna #NOME, dieci a uno che ha scritto male il nome della Function.
Verissimo, ma più genericamente, suggerirebbe che la funzione non sia
trovato; come, per esempio, sarebbe il caso se la funzione fosse inserita in
un modulo del foglio, oppure in modulo di un altro workbook.
Post by eliano
(idem per la Function di Shadow)
Anche qui, sono d'accordo.


---
Regards,
Norman
Drago_dj
2006-07-31 10:44:04 UTC
Permalink
Non funzionava e non funziona tutt'ora facendo =SommaGrassetto(P8:P19)


Ma inserendo il codice in VB, funziona benissimo
Post by Norman Jones
Ciao Eliano,
Post by eliano
Se ritorna #NOME, dieci a uno che ha scritto male il nome della Function.
Verissimo, ma più genericamente, suggerirebbe che la funzione non sia
trovato; come, per esempio, sarebbe il caso se la funzione fosse inserita
in un modulo del foglio, oppure in modulo di un altro workbook.
Post by eliano
(idem per la Function di Shadow)
Anche qui, sono d'accordo.
---
Regards,
Norman
Norman Jones
2006-07-31 10:54:33 UTC
Permalink
Ciao Drago,
Post by Drago_dj
Non funzionava e non funziona tutt'ora facendo =SommaGrassetto(P8:P19)
Ma inserendo il codice in VB, funziona benissimo
Forse c'è un fraintendimento!
Per utilizzare li formula =SommaGrassetto(P8:P19), si deve
incollare la funzione suggerita in un modulo standard del WB.


---
Regards,
Norman
Drago_dj
2006-08-01 17:31:58 UTC
Permalink
ah ok
grazie
Post by Norman Jones
Ciao Drago,
Post by Drago_dj
Non funzionava e non funziona tutt'ora facendo =SommaGrassetto(P8:P19)
Ma inserendo il codice in VB, funziona benissimo
Forse c'è un fraintendimento!
Per utilizzare li formula =SommaGrassetto(P8:P19), si deve
incollare la funzione suggerita in un modulo standard del WB.
---
Regards,
Norman
Loading...