Saltar al contenido

Error 380 en tiempo de ejecución. Invalid property value.


Recommended Posts

publicado

Hola:

Alguien con Excel 2007 me puede probar el formulario del adjunto.

Parece ser que al realizar búsquedas se produce el error que cito en el título de la consulta.

Yo tengo Excel 2010 y no consigo reproducir el error.

Ver último adjunto de este tema:

https://www.ayudaexcel.com/foro/macros-programacion-vba-10/poner-barra-progreso-boton-buscar-30114/

Gracias anticipadas.

Invitado Héctor Miguel
publicado

el error que comenta OP lo puedes reproducir (también) en la versión 2010...

(si sigues los pasos que comenta previos a su aparición)...

=> "...el error aparece cuando limpias el txtBuscar y le das en btn_buscar..."

saludos,

hector.

publicado

Hola Macro Antonio un gusto poder saludarte te comento que ya lo probe en office 2007 y office 2008 y aparece dicho error

al limpiar el textbox de busqueda y darle click al comandbutton de buscar saludos saludos a todos

publicado

disculpen la intromision, asi es compañeros asi me apareció ese error, ¿como se pudiera solucionar¡?

publicado

hola, pareciera ser que el error el por el valor máximo de la barra de progreso, que se asigna con la instruccion

BP.Max = Hoja2.Range("K1").End(xlDown).Row (en este caso el valor es mil), pero mas adelante cuando hace la busqueda (donde sale este codigo)

'Proceso de búsqueda
texto = UCase("*" & txtBuscar & "*")
For x = 2 To Hoja2.Range("K1").End(xlDown).Row
BP = BP + 1[/CODE]

BP se le asigna un valor de 1992, mayor a valor máximo por eso da el error, no he revisado mas nada pero el problema parece ser ese

[color=blue]- - - - - Mensaje combinado - - - - -[/color]

Colocando

BP = 0

antes del codigo que mensiono arriba, se soluciona el problema ya que BP tiene el valor de una busqueda que se hace anterior a esa y hay que llevarlo a 0 para la nueva busqueda, suerte

publicado

te refieres a que lo queje asi?,

BP = 0

'Proceso de búsqueda texto = UCase("*" & txtBuscar & "*") For x = 2 To Hoja2.Range("K1").End(xlDown).Row BP = BP + 1

porque de ser asi no me funciona. Saludos

- - - - - Mensaje combinado - - - - -

parece que lo resolví solo poniendole un "on error resume next" antes del ciclo for, a mi me funcionó porfavor comentemente si tendria que hacer algo mas o si les funciona tambien. gracias

tambien consulte algo como esto

Errores de error: Tiempo de ejecución 380 "Valor de propiedad no válido" con MaskEdBox

publicado

Hola:

En primer lugar, agradeceros sinceramente vuestro interés a todos los que han participado en la consulta.

En cuanto al problema, los tiros van en línea con lo expresado por Bigpetroman, es decir el error se produce cuando el valor de la barra supera el máximo permitido, ¿ Porqué ? Porqué dicho máximo se calcula con datos de la consulta anterior.

Aquí os dejo el evento click del botón "Buscar" ya correcto.

Las líneas resaltadas estaban posteriormente al cálculo del valor máximo de la barra.

Private Sub btn_buscar_Click()

Dim rango As Range

Application.ScreenUpdating = False


[COLOR=#0000cd][B]'[/B][/COLOR][COLOR=#008000]Copiamos la hoja1 sobre la hoja2[/COLOR]
[COLOR=#0000cd][B]L.RowSource = ""[/B][/COLOR]
[COLOR=#0000cd][B]Hoja1.Cells.Copy Hoja2.Cells[/B][/COLOR]

'-------- Barra de progreso 1 ------------
BP = 0
BP.Min = 0
If txtBuscar = "" Then
BP.Max = Hoja2.Range("K1").End(xlDown).Row
Else
BP.Max = Hoja2.Range("K1").End(xlDown).Row * 2
End If
BP.Visible = True
'-----------------------------------------

'Numeramos las filas
For x = 2 To Hoja2.Range("K1").End(xlDown).Row
BP = BP + 1
Hoja2.Range("N" & x) = x
Next

'Si el texto a buscar está vacío, llenamos la lista con toda la hoja y salimos
If txtBuscar = "" Then
BP.Visible = False
L.RowSource = "Hoja2!A2:N" & Hoja2.Range("K1").End(xlDown).Row
Exit Sub
End If

BP.Visible = True

'Proceso de búsqueda
texto = UCase("*" & txtBuscar & "*")
For x = 2 To Hoja2.Range("K1").End(xlDown).Row
BP = BP + 1
'Unimos todas las celdas de la fila en un string
cadena = ""
For y = 1 To 13: cadena = cadena & UCase(Hoja2.Cells(x, y)): Next 'desde la primera columna hasta la ultima

'Comprobamos si cumple la condición de búsqueda
If Not cadena Like texto Then
If rango Is Nothing Then
Set rango = Hoja2.Rows(x)
Else
Set rango = Application.Union(rango, Hoja2.Rows(x))
End If
End If
Next

'Eliminamos las filas que no cumplen la condición
If Not rango Is Nothing Then rango.Delete

'Llenamos la lista con las filas que cumplen la condición
L.RowSource = "Hoja2!A2:N" & Hoja2.Range("K1").End(xlDown).Row
BP.Visible = False
End Sub[/CODE]

De nuevo gracias a todos

PD:

[u][b]hermesc[/b][/u]:

[color=#ff0000][/color][color=#0000cd][b]On Error Resume Next[/b][/color][color=#ff0000][b] no soluciona el problema, se lo salta.[/b][/color]

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.