Validación de datos (lista) rango variable

Buenas expertos.

Intento hacer una lista desplegable en un rango de celdas variable, resultado de una extracción en otra hoja. Excel 2007. Este código esta en el modulo de la hoja3

Dim mLista
If Intersect(Target, [a6:a40,a73:a82,A84:A93]) Is Nothing Then Exit Sub
[a6:a40,a73:a82,A84:A93].Validation.Delete
With Hoja8
 .[a1].CurrentRegion.AdvancedFilter 2, .[c1:c2], .[g1], False
 If .[g3] <> "" Then
 mLista = WorksheetFunction.Transpose(.Range(.[g2], .[g1].End(xlDown)).Value)
 [a6:a40,A84:A93].Validation.Add 3, 1, 1, Join(mLista, ",")
 ElseIf .[g2] <> "" Then
 [a6:a40,A84:A93].Validation.Add 3, 1, 1, .[g2]
 End If
 .[g1].CurrentRegion.Delete
 End With

Las listas las intento poner en el rango A73:A82 y el rango variable proviene de la hoja8 desde la celda A2

Lo he intentado sin éxito agregando esto, sin mucho éxito:

Dim mLista
Dim nLista
If Intersect(Target, [a6:a40,a73:a82,A84:A93]) Is Nothing Then Exit Sub
[a6:a40,a73:a82,A84:A93].Validation.Delete
With Hoja8
 .[a1].CurrentRegion.AdvancedFilter 2, .[c1:c2], .[g1], False
 If .[g3] <> "" Then
 mLista = WorksheetFunction.Transpose(.Range(.[g2], .[g1].End(xlDown)).Value)
 [a6:a40,A84:A93].Validation.Add 3, 1, 1, Join(mLista, ",")
 ElseIf .[g2] <> "" Then
 [a6:a40,A84:A93].Validation.Add 3, 1, 1, .[g2]
 End If
 .[g1].CurrentRegion.Delete
 nLista = .Range(.[a2], .[a2].End(xlDown))
 [a73:a82].Validation.Add 3, 1, 1, Join(nLista, ",")
 End With

¿Como puedo validar datos en el rango a73:a82 de la hoja3 desde el rango a2 hasta la ultima celda no vacía de la hoja8?

Gracias expertos.

Añade tu respuesta

Haz clic para o