Error 70 : permiso denegado, en formulario

14/04/2006 - 03:23 por klomkbock | Informe spam
Hola a todos

Estoy intentando rellenar un ListBox de un formulario con varios campos
que pueden variar en funcion de unos OptionButton, y que en determinados
casos pueden no estar seguidos. Para ello he creado unas variables a las
que les asigno el rango del campo correspondiente y un array con tres de
ellas que varian segun el boton de opcion elegido. Luego estoy intentando
asignarle esta variable (el array) al ListBox. He probado con las
propiedades List, Value, addittem, ..., con y sin redim, en fin de un
monton de maneras, pero no lo consigo. Puede ser que lo que estoy
intentando, o como lo estoy intentando sea una burrada, pero con la ayuda
no acabo de aclararme. En unos casos me aparece el "Error 70 : permiso
denegado" que no me deja ejecutar el inventario, en otros "Error 381 en
tiempo de ejecucion. No se puede configurar la propiedad List. Indice de
matriz no valido", (este creo que era por que se me habia pasado poner la
instruccion "Set" a las variables range). Y por ultimo ahora me da el
"error 13: no coinciden los tipos" y me marca el respectivo array (segun
el optionbutton marcado), pero esta declarado como variant. No se si
podreis ayudarme, o en su defecto darme la direccion de las listas de
preguntas y respuestas del foro sobre listbox o combobox. De todas formas
adjunto los trozos de codigo a los que me refiero por si aclaran algo.

Muchas gracias de antemano
Un saludo y hasta pronto
Ivan

AVISO: me temo que los siguientes codigos pueden herir la sensibilidad de
cualquier programador.

Option Explicit
Dim CampoF As Single, CamposVer As String, CamposLista
Dim Titulo As Range, Autor As Range, Genero As Range
Dim Tema As Range, Pais As Range, Hermano As Range
Dim ApellidoAutor As Range
Private Sub cmdCancelar_Click()
ThisWorkbook.Close
End Sub
Private Sub cmdIr_Click()
If optIrListado = True Then
Hoja1.Range("a1").Activate
Unload frmLibreriaManolo
Else
frmFichasLibro.Show
End If
End Sub
Private Sub lstSeleccionar_Click()
lstSeleccionar.List = CamposLista()
End Sub

''(la variable CampoF en teoria no deberia intervenir, es para aplicarla
al field de un autofilter posteriormente)

Private Sub optHermano_Click()
CampoF = 7
ReDim CamposLista(Titulo, Autor, Hermano)
End Sub
Private Sub optTitulo_Click()
CampoF = 3
ReDim CamposLista(Titulo, Autor, Genero)
End Sub
Private Sub optAutor_Click()
CampoF = 1
CamposLista = Array(Titulo, Autor, Genero)
End Sub
Private Sub optGenero_Click()
CampoF = 4
ReDim CamposLista(Titulo, Autor, Genero)
End Sub
Private Sub optTema_Click()
CampoF = 6
ReDim CamposLista(Titulo, Autor, Tema)
End Sub
Private Sub optPais_Click()
CampoF = 5
ReDim CamposLista(Titulo, Autor, Pais)
End Sub
Private Sub UserForm_Initialize()
With Worksheets("Listado")
Set ApellidoAutor = .Range(.Range("a1"), .Range("a65536").End(xlUp))
Set Autor = .Range(.Range("b1"), .Range("b65536").End(xlUp))
Set Titulo = .Range(.Range("c1"), .Range("c65536").End(xlUp))
Set Genero = .Range(.Range("d1"), .Range("d65536").End(xlUp))
Set Tema = .Range(.Range("e1"), .Range("e65536").End(xlUp))
Set Pais = .Range(.Range("f1"), .Range("f65536").End(xlUp))
Set Hermano = .Range(.Range("g1"), .Range("g65536").End(xlUp))
End With
CamposLista = Array() 'Titulo, Autor, Genero, Tema, Pais, Hermano)
End Sub

Estos son algunos de los intentos previos:


'Private Sub UserForm_Initialize()
'' If optTitulo = True Then
'' CampoF = 3
'' CamposLista = Array(Titulo, Autor, Genero)
'' ElseIf optAutor = True Then
'' CampoF = 1
'' CamposLista = Array(Autor, Titulo, Genero)
'' ElseIf optGenero = True Then
'' CampoF = 4
'' CamposLista = Array(Genero, Titulo, Autor)
'' ElseIf optTema = True Then
'' CampoF = 6
'' CamposLista = Array(Tema, Titulo, Autor)
'' ElseIf optPais = True Then
'' CampoF = 5
'' CamposLista = Array(Pais, Titulo, Autor)
'' ElseIf optHermano = True Then
'' CampoF = 7
'' CamposLista = Array(Titulo, Autor, Hermano)
'' End If
'' CamposVer = txtIntroCriterio
' lstSeleccionar.AddItem CamposLista
'' lstSeleccionar.List = CamposLista
'End Sub
'Sub AsignarCampos()
' With Worksheets("Listado")
' Set ApellidoAutor = .Range(.Range("a1"), .Range("a65536").End(xlUp))
' Set Autor = .Range(.Range("b1"), .Range("b65536").End(xlUp))
' Set Titulo = .Range(.Range("c1"), .Range("c65536").End(xlUp))
' Set Genero = .Range(.Range("d1"), .Range("d65536").End(xlUp))
' Set Tema = .Range(.Range("e1"), .Range("e65536").End(xlUp))
' Set Pais = .Range(.Range("f1"), .Range("f65536").End(xlUp))
' Set Hermano = .Range(.Range("g1"), .Range("g65536").End(xlUp))
' End With
' CamposLista = Array(Titulo, Autor, Genero, Tema, Pais, Hermano)
'End Sub
 

Leer las respuestas

#1 Francisco Mty
15/04/2006 - 23:29 | Informe spam
Podrias enviarme el archivo ( excel ) al personal
para ver si es posible plantearte otra opcion.

saludos

Preguntas similares