Foros del Web » Soporte técnico » Ofimática »

macro excel: como utilizar una variable dentro de una formula R1C1

Estas en el tema de macro excel: como utilizar una variable dentro de una formula R1C1 en el foro de Ofimática en Foros del Web. Deseo poder utilizar una formula, promedio, sobre una columna de números que tiene una altura que no es fija y que yo habré calculado antes. ...
  #1 (permalink)  
Antiguo 23/09/2010, 07:30
 
Fecha de Ingreso: septiembre-2010
Mensajes: 3
Antigüedad: 13 años, 7 meses
Puntos: 0
macro excel: como utilizar una variable dentro de una formula R1C1

Deseo poder utilizar una formula, promedio, sobre una columna de números que tiene una altura que no es fija y que yo habré calculado antes. Esa altura para mí es una variable: numfila. EL caso es que cuando intento utilizar la formula, no sé cómo hacerlo y cuando busco en la ayuda parece que me dice que los argumentos han de estar escritos en formato R1C1 con lo que no cabe poner un argumento variable, ¿correcto? ¿Me puede ayudar alguien a resolverlo?

Range("A1").Select
Selection.End(xlDown).Select
Range("A16").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=AVERAGE(R[-14]C:R[-1]C)"

Este -14 es lo que me gustaría que pudiese ser una variable (numfila) porque unas veces serán 14 datos, pero otras pueden 24 o 30 o...
  #2 (permalink)  
Antiguo 23/09/2010, 10:09
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 16 años, 5 meses
Puntos: 69
Respuesta: macro excel: como utilizar una variable dentro de una formula R1C1

Cita:
Iniciado por crespo_cesar Ver Mensaje
Deseo poder utilizar una formula, promedio, sobre una columna de números que tiene una altura que no es fija y que yo habré calculado antes. Esa altura para mí es una variable: numfila. EL caso es que cuando intento utilizar la formula, no sé cómo hacerlo y cuando busco en la ayuda parece que me dice que los argumentos han de estar escritos en formato R1C1 con lo que no cabe poner un argumento variable, ¿correcto? ¿Me puede ayudar alguien a resolverlo?

Range("A1").Select
Selection.End(xlDown).Select
Range("A16").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=AVERAGE(R[-14]C:R[-1]C)"

Este -14 es lo que me gustaría que pudiese ser una variable (numfila) porque unas veces serán 14 datos, pero otras pueden 24 o 30 o...
Si se puede poner un argumento variable solo hay que concatenarlo, si ya sabes como calcular esa altura y sabes que es el formato R1C1 y sabes como sacar el -14 solo basta con poner el argumento variable asi:

Range("A1").Select
Selection.End(xlDown).Select
Range("A16").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=AVERAGE(R" & variable_altura & "]C:R[-1]C)"
__________________
La verdad es que lo que no quisiera dejar de hacer nunca (a parte de comer) es programar
  #3 (permalink)  
Antiguo 23/09/2010, 22:42
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 10 meses
Puntos: 79
Respuesta: macro excel: como utilizar una variable dentro de una formula R1C1

Código:
Sub perruno()
'Indicas la fila de la que parte
columna = 2
'en este caso el total de filas a trabajar se extrae de la celda "A1"
numfila = Range("A1").Text + columna - 1
For y = 2 To numfila
    Cells(y, columna) = "fila " & y & " de " & numfila
Next y
End Sub
  #4 (permalink)  
Antiguo 24/09/2010, 21:04
 
Fecha de Ingreso: marzo-2010
Mensajes: 31
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: macro excel: como utilizar una variable dentro de una formula R1C1

Para definir un rango que aumenta o disminuye con el tiempo no necesitas macro para sacar el promedio. con las funciones del excel se soluciona.
  #5 (permalink)  
Antiguo 28/09/2010, 05:59
 
Fecha de Ingreso: septiembre-2010
Mensajes: 3
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: macro excel: como utilizar una variable dentro de una formula R1C1

Muchísimas gracias a todos. Ya está claro. Gracias por la ayuda.

Etiquetas: excel, macros, promedio, r1c1, formulas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:37.