Excel - agregar formula IF a varias celdas usando ActiveCell.FormulaR1C1

   
Vista:

agregar formula IF a varias celdas usando ActiveCell.FormulaR1C1

Publicado por Mercury (1 intervención) el 01/07/2011 01:17:15
quiero agregar una formula usando el ActiveCell.FormulaR1C1 en las columna(14) y que el contenido de la colimna 1 no este vacias, la formula que quiero agregar hace busquedas en otras hojas(sheet´s) pero me marca un warning y no despliega el dato esperado, anexo codigo

Sub Macro1()
' macro pega formula

Sheet1.Activate
Sheet1.Range("A4").Select



Do While ActiveCell <> Empty ' checa si la celda activa esta vacia
ActiveCell.Offset(0, 14).Select ' avanza 1 fila y 1 columna
ActiveCell.FormulaR1C1 = " R4" 'pega el resultado de la formula
ActiveCell.Offset(1, -1).Select ' avanza 1 fila y 1 columna


Loop


End Sub

en R4 tengo la siguiente formula
=IF(RIGHT(A4,5)="Total",VLOOKUP((LEFT(A4,4)),PROXPAG,12,0)," ")
ya intente pegarla directamente en el ciclo while pero no funciono me marca error

si alguien me puede ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

agregar formula IF a varias celdas usando ActiveCell.FormulaR1C1

Publicado por Raziel (243 intervenciones) el 01/07/2011 20:38:12
Segun las indicaciones en los comentarios del codigo la solucion podria quedar como sigue, aunque hay que decir que lo que dicen esos comentarios no se refieren exactamente a tu codigo:

1
2
3
4
5
6
7
8
9
10
11
12
Sub Macro1()
' macro pega formula
 
Sheet1.Activate
Range("A4").Select
Do While IsEmpty(ActiveCell) ' checa si la celda activa esta vacia
='editor_indent'>ActiveCell.Offset(1, 1).Select ' avanza 1 fila y 1 columna
='editor_indent'>ActiveCell.Value = "=R4" 'pega el resultado de la formula
='editor_indent'>ActiveCell.Offset(1, 1).Select ' avanza 1 fila y 1 columna
Loop
 
End Sub


Yo diria que copies y pegues el codigo en un nuevo modulo y luego vas presionando F8 para que veas paso a paso lo que la macros hace.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gonzalo

agregar formula IF a varias celdas usando ActiveCell.FormulaR1C1

Publicado por Gonzalo guliquin03@yahoo.com.ar (70 intervenciones) el 19/07/2011 17:04:53
Deberías utilizar el siguiente código para realizar lo que quieres, si es que aún no lo has solucionado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub Macro1()
 
    Sheet1.Activate
    Range("A4").Select
 
    'hace mientras la celda activa est vacia
    Do While ActiveCell <> Empty
 
        ' avanza 1 fila y 14 columnas
        ActiveCell.Offset(0, 14).Select
 
        'pega el resultado de la formula
        ActiveCell.FormulaR1C1 = Range("A4").formula
 
        ' avanza 1 fila y retrocede 14 columnas para ir a la siguiente A
        ActiveCell.Offset(1, -14).Select
 
    Loop
 
End Sub


o más fácil con menos código y menos tiempo lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Macro1()
 
    Sheet1.Activate
    Range("A4").Select
 
    'hace mientras la celda activa est vacia
    Do While ActiveCell <> Empty
 
        ' avanza 1 fila y 14 columnas (de manera ficticia) y pega la fórmula que está en R4
        ActiveCell.Offset(0, 14).FormulaR1C1 = Range("A4").formula
 
        ' avanza 1 fila para ir a la siguiente A
        ActiveCell.Offset(1, 0).Select
 
    Loop
 
End Sub



Saludos,

Gonzalo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar