Si puo' fare con formule, ma la cosa piu' semplice e' farla con una funzione personalizzata.
In un modulo standard del vba inserisci questo codice:
- Codice: Seleziona tutto
Function SoloValues(ByVal myNam As String, ByRef nRan As Range, ByRef myRan As Range) As Variant
'Vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=109687&p=643545#p643545
Dim oArr() As Variant, myMatch, rRan As Range, myC As Range, I As Long
'
ReDim oArr(1 To myRan.Columns.Count)
'
myMatch = Application.Match(myNam, nRan, 0)
If Not IsError(myMatch) Then
Set rRan = Application.WorksheetFunction.Index(myRan, myMatch, 0)
For Each myC In rRan
If myC.Value <> "" Then
I = I + 1
oArr(I) = myC.Value
End If
Next myC
End If
Do Until I >= UBound(oArr)
I = I + 1
oArr(I) = ""
Loop
SoloValues = oArr
End Function
Poi sul foglio di lavoro:
-selezioni l'area AH3:AQ3
-nella barra della formula scrivi la formula
- Codice: Seleziona tutto
=SoloValues(AG3;R4:R7;U4:AD7)
Confermi la formula con Contr-Maiusc-Enter, non il solo Enter
Piu' in generale la formula deve avere questa sintassi:
=SoloValues(IlNome;l'AreaDeiNomi;l'AreaDeiPunteggi)IlNome puo' essere una stringa o un riferimento a una cella o una formula che restituisce la stringa del nome
AreaDeiNomi e
AreaDeiPunteggi devono avere lo stesso numero di righe
La formula deve essere scritta in forma di matrice in un numero di celle contigue pari massimo al numero di colonne contenute in AreaDeiPunteggi
Prova e fai sapere...