Ayuda con Macro de Excel

Que tal buenas tardes:
Tengo el siguiente problema y espero me puedan ayudar, me estoy inciando en la programación de macros y empecé con un registro de las facturas que realizo.
Ya cree que la macro que me copie los datos de la factura a una nueva hoja a la que llame control de facturas, pero cuando me copia los datos me manda errores, ya que en lugar de arrojarme texto, me arroja las fórmulas creadas en la celda origen.
Ejemplo: Tengo en la celda f25 la fecha de mi factura en la cual existe la fórmula =hoy() y al momento de correr la macro me copia la fórmula y no la fecha.
El renglón en la macro es el siguiente
sheets("hoja1").select
activesheet.range("f25") .copy destination:=Worbooks(libro1) .Sheets("Hoja2") .cells(filalibre, 1)
Espero me haya explicado correctamente

1 respuesta

Respuesta
1
El problema es que no invocas la función adecuada.
Si usas COPY con el parámetro DESTINATION, te hará un PASTE normal y corriente, pero si solo quieres pegar valores y no el contenido del rango de origen (es decir por ejemplo =HOY()) tienes que usar el denominado "pegado especial". Tendrás que separar la instrucción en 5 partes:
1) Copiar
2) Seleccionar rango de destino
3) Pegar valores
4) Pegar formato (si no la fecha te quedará como un número)
5) Desactivar modo "copiar-pegar" (basta con dar esta instrucción 1 vez al final si realizas varios pegados especiales)
En la ayuda del Visual Basic, puedes buscar las diferentes formas con las palabras clave "Método PasteSpecial", te proporcionará diferentes ejemplos para adaptar a tu código, pero básicamente sería algo como:
Range("A1"). Copy
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues
Selection.PasteSpecial Paste:xlPasteValuesAndNumberFormats
Application.CutCopyMode = False
Muchas gracias por tu ayuda, desafortunadamente, el día 21 que quería leer la respuesta la página estaba como no disponible, y me puse a mover en excel por mi cuenta he hice una macro grabada haciendo copiar y haciendo pegado especial, posteriormente copie el codigó que me arrogaba y lo copie en la macro que lo necesitaba, de esa forma logre resolver mi problema
Como quiera agradezco tu colaboración, muchísimas gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas