Operaciones en macros
Te vuelvo a molestar. Gracias a tu ayuda de ayer estoy avanzando mucho en la macro que estoy montando, seguro que no es precisamente un ejemplo de programación estructurada pero funciona, que de momento es lo que necesito. No obstante, me he quedado encallado en lo que supongo será una tontería: no sé hacer una división entre el contenido de una celda y una variable. Tengo este código:
...
'ir a poner el total
ActiveCell.End(xlDown).EntireRow.Select
ActiveCell.Offset(1, 1).Select
ActiveCell.FormulaR1C1 = "TOTAL"
ActiveCell.Offset(0, 1).Select
answer = Application.WorksheetFunction.Sum(Range("c2", Range("c2").End(xlDown)))
ActiveCell.Formula = answer
ActiveCell.Offset(0, 0).Rows("1:1").EntireRow.Select
Selection.Font.Bold = True
'porcentajes
Range("D2").Select
Para poner en D2 el resultado de dividir C2 entre 'answer' que me contiene un total. Si hago
ActiveCell.Formula = answer
Me funciona, me aparece el valor de 'answer' en D2, pero he intentado todas las posibilidades que se me han ocurrido para poner el valor de c2 / answer y no hay manera. Importante tener en cuanta que 'answer' no está siempre en la misma celda, cada vez que hago correr la macro con un fichero diferente, 'answer' va a parar a una celda diferente, aunque siempre en la columna C. En definitiva, ¿cómo le digo a la macro que me divida el contenido de C2 (que ésta sí, es siempre C2) entre 'answer' y me ponga el resultado en D2? Muchas gracias de nuevo por tu ayuda, y espero que no te hayas escandalizado con el código "cutre" que estoy utilizando. ¡Ah! Y por cierto, ¿me recomiendas alguna web donde pueda aprender estos conceptos básicos de VB que me faltan?
...
'ir a poner el total
ActiveCell.End(xlDown).EntireRow.Select
ActiveCell.Offset(1, 1).Select
ActiveCell.FormulaR1C1 = "TOTAL"
ActiveCell.Offset(0, 1).Select
answer = Application.WorksheetFunction.Sum(Range("c2", Range("c2").End(xlDown)))
ActiveCell.Formula = answer
ActiveCell.Offset(0, 0).Rows("1:1").EntireRow.Select
Selection.Font.Bold = True
'porcentajes
Range("D2").Select
Para poner en D2 el resultado de dividir C2 entre 'answer' que me contiene un total. Si hago
ActiveCell.Formula = answer
Me funciona, me aparece el valor de 'answer' en D2, pero he intentado todas las posibilidades que se me han ocurrido para poner el valor de c2 / answer y no hay manera. Importante tener en cuanta que 'answer' no está siempre en la misma celda, cada vez que hago correr la macro con un fichero diferente, 'answer' va a parar a una celda diferente, aunque siempre en la columna C. En definitiva, ¿cómo le digo a la macro que me divida el contenido de C2 (que ésta sí, es siempre C2) entre 'answer' y me ponga el resultado en D2? Muchas gracias de nuevo por tu ayuda, y espero que no te hayas escandalizado con el código "cutre" que estoy utilizando. ¡Ah! Y por cierto, ¿me recomiendas alguna web donde pueda aprender estos conceptos básicos de VB que me faltan?
1 respuesta
Respuesta de Juan Carlos González Chavarría
1