Función LET para Excel 2013
ResueltoSeñores maestros del código VBA, me gustaría saber si hay rectificaciones que aportar.
3 respuestas
-
-
-
@danielc0
Por cierto, con Copilot, esto funciona, al menos para un rango de celdas:
Public Function LET_2013(ParamArray Arguments() As Variant) As Variant On Error GoTo Erreur Dim i As Long, Dernier As Long Dim NomRecherche As String Dernier = UBound(Arguments) ' Parejas nombre/valor + resultado final If Dernier < 2 Or (Dernier Mod 2) <> 0 Then LET_2013 = CVErr(xlErrValue) Exit Function End If NomRecherche = CStr(Arguments(Dernier)) ' Búsqueda del nombre solicitado For i = 0 To Dernier - 1 Step 2 If StrComp(CStr(Arguments(i)), NomRecherche, _ vbTextCompare) = 0 Then If IsObject(Arguments(i + 1)) Then LET_2013 = Arguments(i + 1).Value Else LET_2013 = Arguments(i + 1) End If Exit Function End If Next i LET_2013 = CVErr(xlErrName) Exit Function Erreur: LET_2013 = CVErr(xlErrValue) End Function
Al menos, funciona con Excel 365. A probar con Excel 2013.
Daniel
-
-
Hola Daniel
He cambiado según tu código, pero como todavía no entiendo nada de VBA, confío en ti.
No busco una función muy complicada mientras sea más legible para cálculos medianamente complejos.
Sin embargo, para la parte de descripción seguramente cometí un error al guardar, porque, además de las 9 casillas visibles, no tengo ninguna explicación en la ventana fx. ¿Tienes un manual?
Atentamente
-
Un ejemplo para asignar la variable "tbl" al rango A1:A10 y mostrarlo:
=LET_2013("tbl";A1:A10;"tbl") =LET_2013("tbl";RACINE(A1:A10);"tbl")Por el contrario, no funciona para:
=LET_2013("tbl";A1:A10;RACINE("tbl"))Estoy mirando, pero me da la impresión de que va a haber un montón de casos particulares
Daniel
-
@danielc0
En realidad, me supera por completo. Por ejemplo, cuando entro:
=LET_2013("tbl";A1:A10;"tbl"*2)La fórmula devuelve "#N/A" sin que se ejecute el código VBA. Lo dejo. Si no tienes una respuesta aquí, haz la pregunta en otro foro.
Daniel
-
-
Hola,
Daniel, te lo agradezco.
Al final yo también abandono; no funciona correctamente. voy a continuar con LO Calc.
Atentamente
