Valores incorrectos
Publicado por Edgardo MEjía (35 intervenciones) el 28/08/2007 20:33:01
hola, tengo un pequeño problema, bueno en realidad son varios y no se a que se deban
tengo una macro para copiar registros de un libro historico a uno por año separado por cada mes, para hacer esto utilizo el metodo de busqueda (find y findnext) con que cuenta excel el detalle esta en que cierto momento de la busqueda se agrega un valor extraño que yo no le estoy dando, es decir si estoy buscando "1" en determinado rango de una columna al momento de hacer la busqueda me pone 10 en lugar de uno, por ejemplo:
para esto les dire que inicio es de valor variable al igual que final, supongamos que para este caso inicio=6 y final=720
estos son valores reales pues recuerden que son registros de las ventas de todo un año
d es el valor a buscar, mismo que esta dado de acuerdo a las semanas de cada mes
suponiendo que el mes actual es enero
d_ini=1
d_final=5
d=d_ini
d_ini la útilizo para saber cual es el primer valor que voy a buscar
d_final para determinar un ciclo
el cual se ejecutara mientras d sea menor que d_final +1 en este caso
seria mientras d < 6
uso una variable ren para saber en que renglon o fila se encuentra el valor buscar
, claro esto siempre y cuando lo encuentre, una variable newren para saber cual es el nuevo renglon donde insertare los datos copiados
with worksheets("Sales Orders").Range(Cells(inicio,50),Cells(final,50))
Set c = .Find(d, xlLookIn:=Values)
ren=c.Row
Workbooks("Sales Order.xls").Worksheets("Sales Order").Activate
Set range1 = Workbooks("Sales orders.xls").worksheets("Sales orders").Range _
(Cells(ren,1),Cells(ren,50))
Wokbooks(Libro).worksheets(Hoja).Activate
Set range2 = Workbooks(Libro).Worksheets(Hoja).Range(Cells(newren,1), _
Cells(newren,50))
rago1.Copy rango2
el codigo anterior es para copiar el primer registro que contenga el valor buscado, despues de eso se agrega un codigo similar solo que esta vez seria:
Set c = .FindNext(c)
para encontrar el siguiente registro con el valor buscado
pero no se por que demonios si estoy buscando un 1 se convierte en 10, alguien me podria explicar cual es mi error, o es acaso que excel es el de el error
para evitar lo anterior hice mi propio metodo en el cual voy asignandole el valor de la celda actual a una variable, pero aunque en la columna por donde estoy desplazando el ciclo hay cerca de 750 valores que van desde "1" hasta "52", el primer valor si op asigna bien pero el segundo ya no, me dice que la celda tiene un "0" cuando realmente no es cierto, ya no se como hacerle, la asignacion la hago así:
Dim d as integer
d = Cells(ren,50).Value
despues siguen las instrucciones de copiado y despues las validaciones para que se siga ejecutando el cilco, estoy muy confundido pues excel me muestra valores que no existen en la celda en la que estoy, si alguien me pudiera ayudar se lo agradeceria mucho.
Atte: EDgardo Mejía
tengo una macro para copiar registros de un libro historico a uno por año separado por cada mes, para hacer esto utilizo el metodo de busqueda (find y findnext) con que cuenta excel el detalle esta en que cierto momento de la busqueda se agrega un valor extraño que yo no le estoy dando, es decir si estoy buscando "1" en determinado rango de una columna al momento de hacer la busqueda me pone 10 en lugar de uno, por ejemplo:
para esto les dire que inicio es de valor variable al igual que final, supongamos que para este caso inicio=6 y final=720
estos son valores reales pues recuerden que son registros de las ventas de todo un año
d es el valor a buscar, mismo que esta dado de acuerdo a las semanas de cada mes
suponiendo que el mes actual es enero
d_ini=1
d_final=5
d=d_ini
d_ini la útilizo para saber cual es el primer valor que voy a buscar
d_final para determinar un ciclo
el cual se ejecutara mientras d sea menor que d_final +1 en este caso
seria mientras d < 6
uso una variable ren para saber en que renglon o fila se encuentra el valor buscar
, claro esto siempre y cuando lo encuentre, una variable newren para saber cual es el nuevo renglon donde insertare los datos copiados
with worksheets("Sales Orders").Range(Cells(inicio,50),Cells(final,50))
Set c = .Find(d, xlLookIn:=Values)
ren=c.Row
Workbooks("Sales Order.xls").Worksheets("Sales Order").Activate
Set range1 = Workbooks("Sales orders.xls").worksheets("Sales orders").Range _
(Cells(ren,1),Cells(ren,50))
Wokbooks(Libro).worksheets(Hoja).Activate
Set range2 = Workbooks(Libro).Worksheets(Hoja).Range(Cells(newren,1), _
Cells(newren,50))
rago1.Copy rango2
el codigo anterior es para copiar el primer registro que contenga el valor buscado, despues de eso se agrega un codigo similar solo que esta vez seria:
Set c = .FindNext(c)
para encontrar el siguiente registro con el valor buscado
pero no se por que demonios si estoy buscando un 1 se convierte en 10, alguien me podria explicar cual es mi error, o es acaso que excel es el de el error
para evitar lo anterior hice mi propio metodo en el cual voy asignandole el valor de la celda actual a una variable, pero aunque en la columna por donde estoy desplazando el ciclo hay cerca de 750 valores que van desde "1" hasta "52", el primer valor si op asigna bien pero el segundo ya no, me dice que la celda tiene un "0" cuando realmente no es cierto, ya no se como hacerle, la asignacion la hago así:
Dim d as integer
d = Cells(ren,50).Value
despues siguen las instrucciones de copiado y despues las validaciones para que se siga ejecutando el cilco, estoy muy confundido pues excel me muestra valores que no existen en la celda en la que estoy, si alguien me pudiera ayudar se lo agradeceria mucho.
Atte: EDgardo Mejía
Valora esta pregunta


0