Excel - Copiar letra + una celda en una macro

   
Vista:

Copiar letra + una celda en una macro

Publicado por Sergi (4 intervenciones) el 09/01/2013 21:02:10
Lo que quiero hacer es meter en una celda una función, por ejemplo: x^2+3.
Lo que la macro debe hacer es copiar en otra celda la misma función pero con un "=" delante para que en la primera celda salga la función pero en la segunda salga el valor de Y correspondiente al valor de X que se le da. No se si me explico.

Gracias!
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
Imágen de perfil de JuanC

Copiar letra + una celda en una macro

Publicado por JuanC juanc2942@gmail.com (1053 intervenciones) el 10/01/2013 01:58:01
hay un pequeño detalle/problema...
si ponés =x^2+3 Excel no va a reconocer la fórmula, porque x (la variable) 'no existe en Excel'...
tenés que reemplazar cada variable por un valor numérico o una expresión que sí sea
reconocida por Excel...

Saludos, desde Baires, JuanC
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

Copiar letra + una celda en una macro

Publicado por Sergi (4 intervenciones) el 10/01/2013 08:06:17
Dentro de una hoja de cálculo que he encontrado en google aparece esto:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
On Error GoTo Forgetit
Numpoints = 200
For Each c In Target
If (c.Row = 13 And c.Column = 7) Then
theText$ = fixString(Range("G13").Text)
Range(Cells(3, 12), Cells(Numpoints + 3, 12)).Formula = "=" & theText$
Exit For

El problema es que muchas cosas no las entiendo y no se como hacer lo mismo en mi hoja, donde no hay nada de código escrito.
En teoría debería entenderlo como variable ya que a un rango de celdas las he llamado x, por lo que por ejemplo x se referiría a B13, para un fácil entendimiento.

Gracias!
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

Copiar letra + una celda en una macro

Publicado por jcs (494 intervenciones) el 10/01/2013 09:42:29
Muy buenas.

Todo ese código que has puesto sirve para copiar el destino a varias celdas. En tu caso valdría con algo más sencillo como poner en el código de la hoja esto:

Private Sub worksheet_change(ByVal target As Range)
If target = Range("E5") Then
Range("E6").Formula = "=" & target
End If
End Sub

Donde E5 sería donde tú pusieses el texto de la fórmula y E6 donde te colocaría el resultado.

Un saludo. Juanjo.
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

Copiar letra + una celda en una macro

Publicado por Sergi (4 intervenciones) el 10/01/2013 16:58:41
Muchas gracias, el código funciona perfectamente, aunque querría hacerle unos retoques.
Me gustaría que lo copiara en un rango de celdas y que pudiera también añadirle letras, porque el código peta cuando, por ejemplo, se quiere introducir un seno o un coseno en vez de una función polinómica.

Gracias!
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

Copiar letra + una celda en una macro

Publicado por Sergi (4 intervenciones) el 10/01/2013 19:52:16
Muchas gracias, el código funciona perfectamente, aunque querría hacerle unos retoques.
Me gustaría que lo copiara en un rango de celdas y que pudiera también añadirle letras, porque el código peta cuando, por ejemplo, se quiere introducir un seno o un coseno en vez de una función polinómica.

Gracias!
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

Copiar letra + una celda en una macro

Publicado por jcs (494 intervenciones) el 11/01/2013 10:01:20
Buenos días.

Efectivamente, da problemas para ese tipo de funciones. Lo desconocía. Se evita utilizando FormulaLocal en lugar de Formula. Te dejo la nueva macro, incorporando también el que lo haga para un rango predeterminado. Podría hacerse, lógicamente para un rango variable:

Private Sub worksheet_change(ByVal target As Range)
If Not Intersect(target, Range("E5")) Is Nothing Then
Range("E6:E12").FormulaLocal = "=" & target
End If
End Sub

Un saludo. Juanjo.
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