Macro con problemas para pegado especial

4 envíos / 0 nuevos
Último envío
Angelo88
Imagen de Angelo88
Offline
última acción: Hace 7 meses 3 semanas
alta: 29/08/2018 - 04:40
Puntos: 35
Macro con problemas para pegado especial

Buen dia como puse en la descripción tengo problemas con el pegado especial, les comento rápido, tengo que escanear todo los días al personal de la empresa en las actividades que están haciendo cada día, para esto solo requiero su identificacion y el de su operación, con estos datos obtengo otros como el nombre, la hora, la fecha, el tipo de operación, etc. cuando Ya tengo esta información una macro de boton me copia todo el rango que sería de A3:L3, lo copia, busca el siguiente renglón vacío de la hoja que le mando y lo pega, hasta ahí sin Problemas se va creando la base de datos. La situación es cuando es más de una operación, cree un evento que al ingresar el código del operador habré un cuadro de texto preguntando si es solo uno o varios, cuando es varios se desocultan (no se si este bien dicho) 14 renglones más que aparentemente están en blanco, como ya use el evento de la hoja no puedo poner otra macro que me inserte fórmulas al ingresar datos en la siguiente fila, por lo que se me ocurrió usar la formula IF y condicionarla para que en caso de haber datos en la celda que le especifico haga la fórmula que correspondería y en caso de no tener datos que no mostrara ningún dato, yo creyendo que la celda Quedaría sin valores, la fórmula quedarian así IF(D4>0,C3,””) y efectivamente si no hay datos yo no veo nada y en caso de haberlo si se muestra correctamente. El problema surge cuando activo la macro que copia y pega los valores, porque como lo dije anteriormente se abren más filas entonces el rango que copia ahora es de A3:L17 y efectivamente lo pega, pero las filas que están en blanco ya sea porque no se usaron es decir no había datos en la fila en cuestión que activara las formulas, pareciera que si copia datos, es decir copia el rango A3:L17, busca el siguiente renglón vacio y lo pega sin problemas pero cuando ingresó a un nuevo operador igual copia el rango pero no busca el siguiente renglón vacío para pegarlo si no que lo pega en el renglón que seguí después de haber pegado la información eso hace que haya espacioa hasta de 14 filas sin datos visibles, no se si es problema de la macro o de las fórmulas, como dato adicional intente correr la macro sin que hubiera fórmulas en ese rango y efectivamente lo pega justo en el siguiente renglón. Entonces no se si quizá el problema sea que al usar la condición “” algo se quede oculto en la celda y sea lo que se esté copiando. 

 

 

De antno muchas gracias y perdón por toda la explicación creo que es demasiado pero quería explicarme a detalle.

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 2 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 10005
¿Cómo estás comprobando en tu

¿Cómo estás comprobando en tu macro que las celdas estén vacías para saber cuál es la siguiente fila vacía donde tiene que pegar los datos?

No es lo mismo que el resultado de una fórmula sea "" a que la celda contenga "" 

 

 

Data Tools Suite
datos y tablas con Excel

Angelo88
Imagen de Angelo88
Offline
última acción: Hace 7 meses 3 semanas
alta: 29/08/2018 - 04:40
Puntos: 35
Anexo el archivo con la macro

Anexo el archivo con la macro en cuestion, la macro se llama "AgregarRegistroDiario", anteriormente podia copiar y pegar sin problemas pero las celdas no tenian absolutamente ningun dato, es decir si en el rango que seleccionaba habia filas sin datos la siguiente vez que agregaba informacion reconocia esas filas como vacias, ahora estoy copiando celdas donde el resultado de una formula es "" que yo pensaba que seria lo mismo a que no hubiera nada pero al pegarlo es como si dejara algo en las celdas como si en realidad tuviera datos, incluso si pongo por ejemplo CTRL+Fecha hacia abajo para llegar a la ultima celda con valores se va hasta la ultima que copio como si en todas las demas hubiera informacion, entonces no se si copia algo y lo este pegando como oculto, sin embargo cuando reviso la celda aparentemente no tiene nada, ni formula ni nada.

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 2 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 10005
texto sin longitud, pero no es una celda vacía

tienes una fórmula con un condicional SI, que devuelve un valor "" en determinados casos

Cuando copias y pegas valores de estas celdas estás pegando un texto ""

Excel interpreta que la celda no está vacía, porque contiene una cadena de texto sin longitud, pero contiene algo

Si compruebas las celda aparentemente vacías de tu columan A con la función ESBLANCO o mediante VBA con la función IsEmpty, verás que el resultado es falso, es decir, que contienen algo, no están vacías.

Si utilizas la función ESTEXTO, verás que el resultado es verdadero, contiene un texto aunque sea sin longitud

El problema es entonces que al copiar y pegar A3:L17, estás pegando muchas filas con ""

 

Este es el problema, vamos a ver cómo solucionarlo:

 

Como estás detectando la última celda con contenido desde abajo así

lastrow = Cells(Rows.Count, 1).End(xlUp).Row

Lo que podrías hacer es comprobar que no sea igual a "", por ejemplo con un bucle similar a este

 lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Do Until Cells(lastrow, 1).Value <> ""
lastrow = lastrow - 1
Loop

 

Prueba a ver si con esto consigues lo qeu necesitas

 

 

Data Tools Suite
datos y tablas con Excel