ESCRIBIR FORMULA EN CELDA

12/08/2006 - 03:03 por Carlos | Informe spam
Buenas noches al grupo...

Quisiera escribir mediante código VB una formula a una celda.. luego
copiarla en un rango..

La cuestión es que no sé como se hace...

:o(

agradecería sus comentarios

Preguntas similare

Leer las respuestas

#1 Abraham
12/08/2006 - 04:39 | Informe spam
Supongo que te refieres a VBA. No probaste con la grabadora de macros?
Lo digo, pues is no sabes usar el VBA te va a ser de mucha ayuda. Por
ejm, este pone en B1 esto:

¡

Y luego lo copia de B2 a B10. Lo hice todo con la grabdora

Sub Macro1()
'
' Macro1 Macro
' Macro grabada el 11/08/2006 por .
'

'
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("B1").Select
Selection.Copy
Range("B2:B10").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub

Abraham
Respuesta Responder a este mensaje
#2 KL
12/08/2006 - 12:03 | Informe spam
Hola chicos,

El codigo ofrecido por Abraham se puede reducir a lo siguiente:

Sub Macro1()
Range("B2:B10").FormulaR1C1 = "=RC[-1]"
End Sub

o incluso a esto:

Sub Macro1()
[B2:B10] = "=RC[-1]"
End Sub

o si se prefiere trabajar con la notacion A1 en vez de la RC, se puede hacer lo siguiente:

Sub Macro1()
Range("B2").Formula = "¡"
Range("B2").AutoFill Range("B2:B10")
End Sub

o bien

Sub Macro1()
[B2] = "¡"
[B2].AutoFill [B2:B10]
End Sub

Saludos,
KL


"Abraham" wrote in message news:
Supongo que te refieres a VBA. No probaste con la grabadora de macros?
Lo digo, pues is no sabes usar el VBA te va a ser de mucha ayuda. Por
ejm, este pone en B1 esto:

¡

Y luego lo copia de B2 a B10. Lo hice todo con la grabdora

Sub Macro1()
'
' Macro1 Macro
' Macro grabada el 11/08/2006 por .
'

'
ActiveCell.FormulaR1C1 = "=RC[-1]"
Range("B1").Select
Selection.Copy
Range("B2:B10").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub

Abraham

Respuesta Responder a este mensaje
#3 Carlos
12/08/2006 - 13:04 | Informe spam
Hola KL... ira lo que quisiera insertar...

Range("E6").Formula = "=SI(ESERROR(SI(DERECHA(D6)= " -
";-VALOR(SUSTITUIR(D6;" - ";""));D6));"";SI(DERECHA(D6)= " -
";-VALOR(SUSTITUIR(D6;" - ";""));D6))"

Pero se detiene con un error...

Agradecido de antemano


KL ha escrito:

Hola chicos,

El codigo ofrecido por Abraham se puede reducir a lo siguiente:

Sub Macro1()
Range("B2:B10").FormulaR1C1 = "=RC[-1]"
End Sub

o incluso a esto:

Sub Macro1()
[B2:B10] = "=RC[-1]"
End Sub

o si se prefiere trabajar con la notacion A1 en vez de la RC, se puede hacer lo siguiente:

Sub Macro1()
Range("B2").Formula = "¡"
Range("B2").AutoFill Range("B2:B10")
End Sub

o bien

Sub Macro1()
[B2] = "¡"
[B2].AutoFill [B2:B10]
End Sub

Saludos,
KL


"Abraham" wrote in message news:
> Supongo que te refieres a VBA. No probaste con la grabadora de macros?
> Lo digo, pues is no sabes usar el VBA te va a ser de mucha ayuda. Por
> ejm, este pone en B1 esto:
>
> ¡
>
> Y luego lo copia de B2 a B10. Lo hice todo con la grabdora
>
> Sub Macro1()
> '
> ' Macro1 Macro
> ' Macro grabada el 11/08/2006 por .
> '
>
> '
> ActiveCell.FormulaR1C1 = "=RC[-1]"
> Range("B1").Select
> Selection.Copy
> Range("B2:B10").Select
> ActiveSheet.Paste
> Application.CutCopyMode = False
> End Sub
>
> Abraham
>
Respuesta Responder a este mensaje
#4 KL
12/08/2006 - 13:25 | Informe spam
Hola Carlos,

La formula debe estar en ingles y las comillas deben rodearse de comillas. Ademas, he tenido que romper la cadena de texto que
representa a la formula para evitar problemas de formato de parrafos al enviarla por Internet:

Sub test1()
Range("E6").Formula = _
"=IF(ISERROR(IF(RIGHT(D6)= "" - "",-VALUE(SUBSTITUTE(D6,"" - "","""")),D6))" & _
","""",IF(RIGHT(D6)= "" - "",-VALUE(SUBSTITUTE(D6,"" - "","""")),D6))"
End Sub

La otra opcion (no muy recomendable por razones de compatibilidad) es usar la propiedad FormulaLocal:

Sub test2()
Range("E6").FormulaLocal = _
"=SI(ESERROR(SI(DERECHA(D6)= "" - "";-VALOR(SUSTITUIR(D6;"" - "";""""));D6))" & _
";"""";SI(DERECHA(D6)= "" - "";-VALOR(SUSTITUIR(D6;"" - "";""""));D6))"
End Sub

Por cierto, creo que la funcion VALOR (o VALUE en ingles) sobra en la formula.

Saludos,
KL


"Carlos" wrote in message news:
Hola KL... ira lo que quisiera insertar...

Range("E6").Formula = "=SI(ESERROR(SI(DERECHA(D6)= " -
";-VALOR(SUSTITUIR(D6;" - ";""));D6));"";SI(DERECHA(D6)= " -
";-VALOR(SUSTITUIR(D6;" - ";""));D6))"

Pero se detiene con un error...

Agradecido de antemano


KL ha escrito:

Hola chicos,

El codigo ofrecido por Abraham se puede reducir a lo siguiente:

Sub Macro1()
Range("B2:B10").FormulaR1C1 = "=RC[-1]"
End Sub

o incluso a esto:

Sub Macro1()
[B2:B10] = "=RC[-1]"
End Sub

o si se prefiere trabajar con la notacion A1 en vez de la RC, se puede hacer lo siguiente:

Sub Macro1()
Range("B2").Formula = "¡"
Range("B2").AutoFill Range("B2:B10")
End Sub

o bien

Sub Macro1()
[B2] = "¡"
[B2].AutoFill [B2:B10]
End Sub

Saludos,
KL


"Abraham" wrote in message news:
> Supongo que te refieres a VBA. No probaste con la grabadora de macros?
> Lo digo, pues is no sabes usar el VBA te va a ser de mucha ayuda. Por
> ejm, este pone en B1 esto:
>
> ¡
>
> Y luego lo copia de B2 a B10. Lo hice todo con la grabdora
>
> Sub Macro1()
> '
> ' Macro1 Macro
> ' Macro grabada el 11/08/2006 por .
> '
>
> '
> ActiveCell.FormulaR1C1 = "=RC[-1]"
> Range("B1").Select
> Selection.Copy
> Range("B2:B10").Select
> ActiveSheet.Paste
> Application.CutCopyMode = False
> End Sub
>
> Abraham
>



Respuesta Responder a este mensaje
#5 Carlos
12/08/2006 - 15:19 | Informe spam
Hola KL...

Se me ha presentado otro problemilla..

Estoy manejando listados de pagos a proveerdores en dos monedas..

El listado al pasarlo a excel.. deja celdas en blanco (para el mismo
proveedor)

Debo copiar en esas celdas en blanco, el código del proveedor (celda
precedente).

Cómo le hago?


Selection.CurrentRegion.Select
Selection.SpecialCells(xlCellTypeBlanks).Select




________________

KL ha escrito:

Hola Carlos,

La formula debe estar en ingles y las comillas deben rodearse de comillas. Ademas, he tenido que romper la cadena de texto que
representa a la formula para evitar problemas de formato de parrafos al enviarla por Internet:

Sub test1()
Range("E6").Formula = _
"=IF(ISERROR(IF(RIGHT(D6)= "" - "",-VALUE(SUBSTITUTE(D6,"" - "","""")),D6))" & _
","""",IF(RIGHT(D6)= "" - "",-VALUE(SUBSTITUTE(D6,"" - "","""")),D6))"
End Sub

La otra opcion (no muy recomendable por razones de compatibilidad) es usar la propiedad FormulaLocal:

Sub test2()
Range("E6").FormulaLocal = _
"=SI(ESERROR(SI(DERECHA(D6)= "" - "";-VALOR(SUSTITUIR(D6;"" - "";""""));D6))" & _
";"""";SI(DERECHA(D6)= "" - "";-VALOR(SUSTITUIR(D6;"" - "";""""));D6))"
End Sub

Por cierto, creo que la funcion VALOR (o VALUE en ingles) sobra en la formula.

Saludos,
KL


"Carlos" wrote in message news:
> Hola KL... ira lo que quisiera insertar...
>
> Range("E6").Formula = "=SI(ESERROR(SI(DERECHA(D6)= " -
> ";-VALOR(SUSTITUIR(D6;" - ";""));D6));"";SI(DERECHA(D6)= " -
> ";-VALOR(SUSTITUIR(D6;" - ";""));D6))"
>
> Pero se detiene con un error...
>
> Agradecido de antemano
>
>
> KL ha escrito:
>
>> Hola chicos,
>>
>> El codigo ofrecido por Abraham se puede reducir a lo siguiente:
>>
>> Sub Macro1()
>> Range("B2:B10").FormulaR1C1 = "=RC[-1]"
>> End Sub
>>
>> o incluso a esto:
>>
>> Sub Macro1()
>> [B2:B10] = "=RC[-1]"
>> End Sub
>>
>> o si se prefiere trabajar con la notacion A1 en vez de la RC, se puede hacer lo siguiente:
>>
>> Sub Macro1()
>> Range("B2").Formula = "¡"
>> Range("B2").AutoFill Range("B2:B10")
>> End Sub
>>
>> o bien
>>
>> Sub Macro1()
>> [B2] = "¡"
>> [B2].AutoFill [B2:B10]
>> End Sub
>>
>> Saludos,
>> KL
>>
>>
>> "Abraham" wrote in message news:
>> > Supongo que te refieres a VBA. No probaste con la grabadora de macros?
>> > Lo digo, pues is no sabes usar el VBA te va a ser de mucha ayuda. Por
>> > ejm, este pone en B1 esto:
>> >
>> > ¡
>> >
>> > Y luego lo copia de B2 a B10. Lo hice todo con la grabdora
>> >
>> > Sub Macro1()
>> > '
>> > ' Macro1 Macro
>> > ' Macro grabada el 11/08/2006 por .
>> > '
>> >
>> > '
>> > ActiveCell.FormulaR1C1 = "=RC[-1]"
>> > Range("B1").Select
>> > Selection.Copy
>> > Range("B2:B10").Select
>> > ActiveSheet.Paste
>> > Application.CutCopyMode = False
>> > End Sub
>> >
>> > Abraham
>> >
>
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida