Visual Basic para Aplicaciones - Se ha producido el error 13 en tiempo de ejecucion...

Life is soft - evento anual de software empresarial
 
Vista:

Se ha producido el error 13 en tiempo de ejecucion...

Publicado por Jorge Ortiz Morales (1 intervención) el 01/07/2012 20:03:10
Bueno mi consulta es por el siguiente problema:

Resulta que estoy realizando una macro para actualizar un existencia, en la empresa donde trabajo, y cree un codigo para que al ejecutarse me copie el rango de una hoja en otra hoja, el codigo es el siguiente:

Sub Existencia_click()

Hoja1.Select

"En esta seccion consigo que me filtre los datos de la hoja origen, ya que son mas de 14,000 filas le puse un filtro para que solo active las filas con la condicional 1."

With ActiveWorkbook.Worksheets("Existencia Inicial").Sort
.SetRange Range("F2:F15000")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply

End With

Sheets("Existencia Inicial").Select
ActiveSheet.Range("$F$2:$F$15000").AutoFilter field:=1, Criteria1:="<>"

"Aqui inicio el codigo para copiar intentar copiar las celdas de una hoja a otra"

Hoja1.Activate
If Hoja1.Range("F3:F5000") = 1 Then <--- Esta es la linea que me genera el error:"Se ha producido el error 13 en tiempo de ejecucion: No coinciden los tipos"

Hoja1.Range("B3:B15000").Copy
Hoja5.Select
Hoja5.Range("Q1").Formula = "=counta(RC[-13]:R[5999]C[-13])+1"
INI = Hoja5.Range("Q1")
FIN = Hoja5.Range("O1")
INI2 = "C" & INI
FIN2 = ":C" & FIN
rang1 = INI2 + FIN2
Hoja5.Activate
Hoja5.Range(rang1).Value = Hoja1.Range("B3:B15000").Value
Application.CutCopyMode = False

End If


End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

Se ha producido el error 13 en tiempo de ejecucion...

Publicado por JuanC (565 intervenciones) el 03/07/2012 22:04:06
el error está más que claro: estás comparando un rango con un valor numérico (tipos diferentes)
deberías comparar el valor de cada celda del rango con el valor constante...
un bucle For Each ... Next puede ser una solución...

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Eleazar Cruces
Val: 2
Ha disminuido su posición en 16 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Se ha producido el error 13 en tiempo de ejecucion...

Publicado por Eleazar Cruces (1 intervención) el 17/11/2018 03:44:53
Hola, no soy programador, He visto en algún foro que deberías usar una fórmula matricial.
Dejo en manos de los expertos la solución.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar