Jump to content

Archived

This topic is now archived and is closed to further replies.

JOCAMI90

Error 1004: Error en el método 'Range' de objeto '_Worksheet

Recommended Posts

Saludos

Después de horas trabajando esta plantilla y pensar que la tenia terminada obtengo el siguiente error: "Se ha producido el error '1004' en tiempo de ejecución: Error en el método 'Range' de objeto '_Worksheet'". Busque y busque solución pero no encontre :(

Esto sucede cuando intento abrir el formulario desde el botón con macro. Adjunto el archivo para que vean de que estoy hablando.

Gracias por adelantado!

Feliz resto del dia!

Errpr 1004.png

INVENTARIO SEMI -FINAL Desplegable.xls

Share this post


Link to post
Share on other sites

Hola amigo, el problema lo tienes en esta parte del código, Saludos

Private Sub UserForm_Initialize()
Dim Producto As Range
Dim Departamentos As Range
Dim ws As Worksheet
Set ws = Worksheets("Inicio")

For Each Departamentos In ws.Range("Inicio") ' aqui es donde realmente marca el error
  With Me.UFDepartamento
    .AddItem Departamentos.Value
  End With
Next Departamentos

For Each Producto In ws.Range("Inicio") 'aqui también te marcara error
  With Me.UFArticulo
    .AddItem Producto.Value
  End With
Next Producto

Me.UFFecha.Value = Format(Date, "Medium Date")
Me.UFNombre.SetFocus

End Sub
 

Share this post


Link to post
Share on other sites

vamos por partes el problema es el siguiente:

Set ws = Worksheets("Inicio") carga todas las propiedades del objeto hoja llamada inicio hasta hay todo esta bien.

for each departamentos in ws.range("inicio") crea un bucle que va a cargar en una variable temporal llamada departamento lo que encuentre en el rango("inicio") de la hoja ws, el problema es que la instruccion le indica que cargue un rango que no existe.

la instruccion correcta es

for each departamentos in ws.range("departamentos")

next departamentos

for each departamentos in ws.range("producto")

next departamentos

 

Share this post


Link to post
Share on other sites

Yo lo dejaría el procedimiento Userform_Initialize así:

Private Sub UserForm_Initialize()
UFDepartamento.RowSource = "Inicio!I4:I" & Sheets("Inicio").Range("I" & Rows.Count).End(xlUp).Row
UFArticulo.RowSource = "Inicio!B4:B" & Sheets("Inicio").Range("B" & Rows.Count).End(xlUp).Row
Me.UFFecha.Value = Format(Date, "Medium Date")
Me.UFNombre.SetFocus
End Sub

 

Share this post


Link to post
Share on other sites

@Mauricio_ODN Gracias por indicar donde tenia el error, pensaba que era lo que me marcaba en amarillo excel.

@Dr Hyde Gracias por la explicacion, estoy empezando a estudiar macros y me parti el coco tratando de reajustar el codigo para mi plantilla anoche... hahahaha ahora entiendo mejor.

@Macro Antonio Muchas gracias maestro, esto me funciono a la perfeccion, mas simple y efectivo.

 

Gracias a todos por su tiempo y colaboracion, lo aprecio mucho en verdad.

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.




×
×
  • Create New...

Important Information

Privacy Policy