Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao
dovrei trasformare una funzione SE() nidificata con più di 7 liverlli vba per una versione di office 2003.
Come mi consigliate di procedere?
SAluti
Non ho capito se vuoi portare una funzione SE() di Excel a più livelli in vba o se vuoi fare il contrario. Nel primo caso hai sue possibilità: If o Select. Due esempi il primo per If:
Public Function f(ByVal v As Variant) As Variant
If v = "abc" Then
f = "Valore 1"
ElseIf v = "def" Then
f = "Valore 2"
ElseIf v = "ghi" Then
f = "Valore 3"
'......
'ecc
'ecc
'......
ElseIf v = "xyz" Then
f = "Valore n"
Else
f = "Valore diverso"
End If
End Function
Oppure per Select:
Public Function f(ByVal v As Variant) As Variant
Select Case f
Case "abc"
f = "Valore 1"
Case "def"
f = "Valore 2"
Case "ghi"
f = "Valore 3"
'........
'ecc
'ecc
'........
Case "xyz"
f = "Valore n"
Case Else
f = ""
End Select
End Function
Sono entrambe UDF, User Defined Function, e puoi utilizzarle in una cella così:
B1: =f(A1)
dove ad esempio controllo il contenuto di cella A1. Vedi, nella guida del vb di Excel: If e Select. Se le tue necessità sono diverse, spiegati meglio. Grazie.
--
La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.
--
Mauro Gamberini - Microsoft© MVP(Excel)