Validación de datos eliminando registro seleccionado
Buenas expertos.
Intento acoplar un código en excel 2007 en un modulo de pagina.
En la hoja1, A1 tengo una lista con su encabezado.
En la celda C2 la siguiente formula:
=CONTAR.SI(Hoja3!$A$6:$B$40; A2)=0
y en modulo de la hoja3:
Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False For Each Hoja In Worksheets Select Case Hoja.Name Case "Hoja3", "Hoja2", "Hoja1" Case Else Hoja.Unprotect Password:="xxx" Hoja.Visible = True End Select Next If Target.Address = "$N$3" Then Macro1 Macro2 Macro3 Macro4 End If Dim mLista If Intersect(Target, [a6:a40]) Is Nothing Then Exit Sub [a6:a40].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].Validation.Add 3, 1, 1, Join(mLista, ",") ElseIf .[g2] <> "" Then [a6:a40].Validation.Add 3, 1, 1, .[g2] End If .[g1].CurrentRegion.Delete ActiveCell.Offset(, 1).Activate: ActiveCell.Offset(, -1).Activate End With For Each Hoja In Worksheets Select Case Hoja.Name Case "Hoja3", "Hoja2", "Hoja1" Case Else Hoja.Protect Password:="xxx" Hoja.Visible = False End Select Next Application.ScreenUpdating = True End Sub
Cuando selecciono alguna celda de la hoja3 se me abre el desplegable, hasta ahi todo correcto, pero cuando selecciono algún valor de la lista, me da error en macro en la siguiente linea:
[a6:a40].Validation.Add 3, 1, 1, Join(mLista, ",")
como si no quisiera coger la validación otra vez al eliminar la celda G1.
El error que me sale es:
Se ha producido el error '1004' en tiempo de ejecución:
Error definido por la aplicación o el objeto.
Gracias.