Saltar al contenido

Colocar una formula en un rango y que se obtenga los valores mas no la formula


Recommended Posts

Saludos,

Estoy preparando un archivo el cual se encarga de recopila (acumular) información dìa a día de un determinado archivo y va a uno general, una vez ya copiado aplico formulas las procesa, las selecciono y las convierto en valores, el còdigo de una parte (que es casi todo) es el siguiente:



'RegistrosActuales (es desde donde se quedo el anterior ingreso y lo nuevo continúa)
' Entonces tenemos esto

'Agrega fecha de actualización
Range("g" & RegistrosActuales & ":g" & (Cells(1048576, 1).End(xlUp).Row)).Formula = Now()
Range("g" & RegistrosActuales & ":g" & (Cells(1048576, 1).End(xlUp).Row)).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

[/CODE]

Mi objetivo es que si existe alguna manera de que al poner una determinada fórmula en un rango no coloque la formula en sì, si no el resultado mismo los valores, creo que con esto se puede ahorrar tiempo si estamos hablando de un aproximado de 40 a 50 mil registros por dìa y se aplica fórmulas a un total de 17 columnas incluyendo burscarv y operaciones en si.xxx.conjunto

A la espera de su pronta respuesta.

Desde ya muchas gracias por su tiempo

JaimeDavid

Enlace a comentario
Compartir con otras webs

Hola!!

Mmm, puedes ocupar WorkSheetFunction, puedes dar valor a una variable o celda en base a la función que elijas, te anexo un ejemplo:


miVariable = Application.WorksheetFunction.Sum(Range("A1:A3"))
[/CODE]

Con este ejemplo en la variable te asigna el valor de la suma de las celdas

Saludos!

Enlace a comentario
Compartir con otras webs

Buenas, JaimeDavid

Prueba con esto.........pero ojo........pierdes la información de la procedencia del valor.......y funciona para toda la hoja donde incluyas el código....(no en un módulo)


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Cells) Is Nothing Then
x = ActiveCell.Value
ActiveCell = x
End If
End Sub
[/CODE]

Prueba en algún archivo vacío el funcionamiento.....porque no vas a ver ni una fórmula........jejejejej

Un saludo,

Tese

Enlace a comentario
Compartir con otras webs

Invitado Cacho R

Me parece, Jaime, que deberías explicarte muchísimo mejor... incluyendo (tal como lo mencionan las Normas de este Foro) un archivo de muestra.

En efecto, la línea:

Range("g" & RegistrosActuales & ":g" & (Cells(1048576, 1).End(xlUp).Row)).Formula = Now()

no introduce en las celdas una fórmula sino -directamente- la fecha y la hora actuales. Por ello todo lo que viene después de la citada línea es innecesario.

O sea: te diría que muestres un archivo -no con 50 mil filas sino- con no más de 10, para ver las fórmulas involucradas.

Una técnica posible es mantener -a modo de referencia- la primera fila de datos con sus fórmulas.

Cuando ejecutas la macro, dicho procedimiento copiaría las fórmulas en cuestión a todo el rango involucrado, tornaría valores dichos cálculos (excepto la primera fila) y luego se procedería a la copia de los datos al otro archivo.

En fin: ¡Comienza explicando mejor y mostrando más!, ¿Sí?...

Enlace a comentario
Compartir con otras webs

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.