Error 1004: Error en el método select de la clase Range

Hola a todos, tengo un problemilla, resulta que tengo un un combobox en un userform y dos optionbutton, los optionbutton condicionan la lista del combobox, es decir, que si selecciono uno de ellos me saldrá una lista y se selecciono el otro me saldrá otra....mi problema viene a la hora de hacer seleccionar el rango(al que le he dado un nombre y ambos rangos están en la misma hoja), ya que necesito que el código me obliga a activar primero esa hoja y luego hacer la selección, me gustaría no tener que hacerlo así, ya que quisiera que esa hoja estuviera oculta...os dejo el código.

'Sheets("Desplegables_SR").Activate
Sheets("Desplegables_SR").Range("Hoja_Interior_ladrillo").Select
While ActiveCell <> ""
cbhojaint.AddItem ActiveCell
ActiveCell.Offset(1, 0).Select
Wend

Espero vuestra ayudaa!!

1 respuesta

Respuesta
1

No mencionas en qué línea te marca el error ni tampoco tu versión Excel.

Esperaré tus aclaraciones para enviarte el código correcto. Solo como adelanto te comento que si no podes seleccionar la hoja podés 'mencionarla', por ej:

While sheets(hojaoculta).cells(fila,col) <> ""

También, quizás, debas ir recorriendo el rango real, no el rango de nombre ... pero ya veremos.

Perdona, se me olvidó por completo. La línea que me da error es la segunda, si le activo la primera línea entonces sí que me funciona pero claro, no es lo que necesito...mi versión de excel es 2010, pero, si es posible, me gustaría que se pudiera utilizar en cualquier versión, si no me conformo con que funcione en mi versión.

El error me sale en mas líneas, pero son todas del mismo tipo, siempre tengo que activar la página o estar en ella en el momento de usar el userform....

Mil gracias desde ya!!

Un saludo!!

Algunas aclaraciones antes de pasar a la macro.

Cuando solicito la versión Excel es solo para saber si estamos hablando de 2007 en adelante, porque algunos temas han cambiado. Si corre allí también corre en 2010.

No todos los casos son para usar con un bucle While... Wend, en este caso utilicé For Each.. Next. Te invito a leer más en la sección Guías de mi sitio (Guía N° 6)

Bien, te dejo las instrucciones en el evento Clic de cada botón, pero podes adaptarlo a otro evento fácilmente, sino me avisas.

Private Sub OptionButton1_Click()
'x Elsamatilde
If OptionButton1.Value = True Then
'limpio de valores anteriores
cbhojaint.Clear
'completo el desplegable con rango1
For Each celdita In Sheets("Desplegables_SR").Range("Hoja_Interior_ladrillo")
cbhojaint.AddItem celdita
Next celdita
End If
End Sub
Private Sub OptionButton2_Click()
'x Elsamatilde
If OptionButton2.Value = True Then
'limpio de valores anteriores
cbhojaint.Clear
'completo el desplegable con rango2
For Each celdita In Sheets("Desplegables_SR").Range("Hoja_Exterior_ladrillo")
cbhojaint.AddItem celdita
Next celdita
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas