Modificar UDF para "ver formula" matricial

05/08/2006 - 17:58 por Gabriel Raigosa | Informe spam
Saludos:

Uso la siguente UDF para ver la formula dentro de una celda

Function VerFormula(InputCell As Range) As String
VerFormula = InputCell.FormulaLocal
End Function


Cuando la formula en la celda es matricial la UDF muestra la formula
SIN los signos { }

Como se podria modificar la UDF para que detectara si la formula es
matricial y en tal caso que mostrara la funcion con los { }

Por ejemplo, tengo una matricial en una celda y =VerFormula("celda")
muestra

=SUMAPRODUCTO(--ABS(A3:B5))

lo que quiero es que la funcion la mostrara como

{=SUMAPRODUCTO(--ABS(A3:B5))}

Gabriel Raigosa
Medellín - Colombia
MSN: HK4QYK"@"hotmail.com
news://msnews.microsoft.com/
news://msnews.microsoft.com/microso...c.es.excel

Preguntas similare

Leer las respuestas

#6 Gabriel Raigosa
06/08/2006 - 09:14 | Informe spam
hector, una cosa me has enseñado,

independiente de lo que yo quiera, es lo que necesita el usuario,

muchas veces respondes lo que es y nada mas, no preguntar como ni por que.
La respuesta es unica y exacta a la pregunta.

yo estoy convencido de que eres de los mejores

Gabriel Raigosa
Medellín - Colombia
MSN: HK4QYK"@"hotmail.com
news://msnews.microsoft.com/
news://msnews.microsoft.com/microso...c.es.excel

"Héctor Miguel" escribió en el mensaje
news:
| hola, chicos !
|
| > Gabriel Raigosa escribio en el mensaje ...
| > KLesta vez si la ganaste, independiente de que sea matricial o no,
la respuesta tuya fue 100%
| > solo hice un cambio
| > Function VerFormula(InputCell As Range) As String
| > With InputCell
| > VerFormula = IIf(.HasArray, "{" & .Formula & "}", .FormulaLocal)
| > End With
| > End Function
| > ya se como es el tema entre hector y tu...
| > Hector, esta vez no te puedes defender con una correccion de centavos o
centimos, KL salio con euros y dolares...
|
| [honestamente ?]... no veo 'tema de defensa' [en favor de ninguno] :))
| salvo el hecho de que a KL 'le toco' responder antes que alguna otra
propuesta [o sea... el 'timing']... ;)
| [y solo por no 'dejarla en el tintero', al igual que el comentario
'complementario' de la funcion que expusiste]...
| mi propuesta ERA [practicamente] la misma que KL
| solo que yo estaba tratando de 'proteger' algun -posible- 'desliz' si se
selecciona una 'InputCell' de dos o mas celdas
| [ p.e. si la formula esta en 'D1' y el usuario utilizara la UDF +/-
asi: -> =VerFormula(d1:d2) ]
| [lo que llevaria a un error 'involuntario' por la forma de seleccion de
algun usuario... 'despistado'] :))
|
| Function VerFormula(InputCell As Range) As String
| With InputCell.Cells(1)
| VerFormula = IIf(.HasArray, "{" & .FormulaLocal & "}", .FormulaLocal)
| End With
| End Function
|
| saludos ;)
| hector.
|
|
Respuesta Responder a este mensaje
#7 KL
06/08/2006 - 14:29 | Informe spam
Hola chicos,

Otra alternativa [menos autoritaria de cara al usuario :-)] que devuelve el resultado como una matriz:

Function VerFormula(Rng As Range)
Dim i As Long: Dim Res: ReDim Res(1 To Rng.Count) As String
For i = 1 To Rng.Count
With Rng(i)
Res(i) = IIf(.HasArray, "{" & .FormulaLocal & "}", .FormulaLocal)
End With
Next i
VerFormula = Res
End Function

Saludos,
KL


"Hctor Miguel" wrote in message news:
hola, chicos !

Gabriel Raigosa escribio en el mensaje ...
KLesta vez si la ganaste, independiente de que sea matricial o no, la respuesta tuya fue 100%
solo hice un cambio
Function VerFormula(InputCell As Range) As String
With InputCell
VerFormula = IIf(.HasArray, "{" & .Formula & "}", .FormulaLocal)
End With
End Function
ya se como es el tema entre hector y tu...
Hector, esta vez no te puedes defender con una correccion de centavos o centimos, KL salio con euros y dolares...



[honestamente ?]... no veo 'tema de defensa' [en favor de ninguno] :))
salvo el hecho de que a KL 'le toco' responder antes que alguna otra propuesta [o sea... el 'timing']... ;)
[y solo por no 'dejarla en el tintero', al igual que el comentario 'complementario' de la funcion que expusiste]...
mi propuesta ERA [practicamente] la misma que KL
solo que yo estaba tratando de 'proteger' algun -posible- 'desliz' si se selecciona una 'InputCell' de dos o mas celdas
[ p.e. si la formula esta en 'D1' y el usuario utilizara la UDF +/- asi: -> =VerFormula(d1:d2) ]
[lo que llevaria a un error 'involuntario' por la forma de seleccion de algun usuario... 'despistado'] :))

Function VerFormula(InputCell As Range) As String
With InputCell.Cells(1)
VerFormula = IIf(.HasArray, "{" & .FormulaLocal & "}", .FormulaLocal)
End With
End Function

saludos ;)
hector.


Respuesta Responder a este mensaje
#8 Gabriel Raigosa
06/08/2006 - 20:03 | Informe spam
Gracias por la informacion

Gabriel Raigosa
Medellín - Colombia
MSN: HK4QYK"@"hotmail.com
news://msnews.microsoft.com/
news://msnews.microsoft.com/microso...c.es.excel

"KL" escribió en el mensaje
news:
| Hola chicos,
|
| Otra alternativa [menos autoritaria de cara al usuario :-)] que devuelve
el resultado como una matriz:
|
| Function VerFormula(Rng As Range)
| Dim i As Long: Dim Res: ReDim Res(1 To Rng.Count) As String
| For i = 1 To Rng.Count
| With Rng(i)
| Res(i) = IIf(.HasArray, "{" & .FormulaLocal & "}", .FormulaLocal)
| End With
| Next i
| VerFormula = Res
| End Function
|
| --
| Saludos,
| KL
|
|
| "Hctor Miguel" wrote in message
news:
| > hola, chicos !
| >
| >> Gabriel Raigosa escribio en el mensaje ...
| >> KLesta vez si la ganaste, independiente de que sea matricial o no,
la respuesta tuya fue 100%
| >> solo hice un cambio
| >> Function VerFormula(InputCell As Range) As String
| >> With InputCell
| >> VerFormula = IIf(.HasArray, "{" & .Formula & "}", .FormulaLocal)
| >> End With
| >> End Function
| >> ya se como es el tema entre hector y tu...
| >> Hector, esta vez no te puedes defender con una correccion de centavos o
centimos, KL salio con euros y dolares...
| >
| > [honestamente ?]... no veo 'tema de defensa' [en favor de ninguno] :))
| > salvo el hecho de que a KL 'le toco' responder antes que alguna otra
propuesta [o sea... el 'timing']... ;)
| > [y solo por no 'dejarla en el tintero', al igual que el comentario
'complementario' de la funcion que expusiste]...
| > mi propuesta ERA [practicamente] la misma que KL
| > solo que yo estaba tratando de 'proteger' algun -posible- 'desliz' si se
selecciona una 'InputCell' de dos o mas celdas
| > [ p.e. si la formula esta en 'D1' y el usuario utilizara la UDF +/-
asi: -> =VerFormula(d1:d2) ]
| > [lo que llevaria a un error 'involuntario' por la forma de seleccion de
algun usuario... 'despistado'] :))
| >
| > Function VerFormula(InputCell As Range) As String
| > With InputCell.Cells(1)
| > VerFormula = IIf(.HasArray, "{" & .FormulaLocal & "}", .FormulaLocal)
| > End With
| > End Function
| >
| > saludos ;)
| > hector.
| >
| >
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida