Funcion SIFECHA

maydoa

New Member
Joined
Oct 11, 2006
Messages
7
Hola de nuevo :) !

Hoy hago esta consulta:

He creado una funcion para incluir la formula SIFECHA (DATEIF) en la lista de funciones personalizadas por el usuario. (esta formula solo viene en el asistente de lista de funciones no viene en Insertar>Formulas)

Creo la funcion en un modulo de visual basic excel y guardo el libro como complemento de microsoft excel, entonces mi pregunta es la siguiente:

¿Existe algun problema al crear Formula SIFECHA como funcion personalizada en la lista de funciones?

la funcion es esta:

Function SIFECHA(numero1, numero2, numero3 As Integer)

numero1 = "A1"
numero2 = "B2"
numero2 = "Y"

End Function

Si no me explique bien perdonenme e intentare explicarme mejor :)

De nuevo muchas Gracias!

¡Un SAludo!
 

Excel Facts

Excel Wisdom
Using a mouse in Excel is the work equivalent of wearing a lanyard when you first get to college
Perdon la funcion es esta:

Function SIFECHA(numero1, numero2, numero3 As Integer)

numero1 = "A1"
numero2 = "B2"
numero3 = "Y"

End Function

Gracias Un Saludo!
 
Upvote 0
maydoa:

Para evitar cualquier posibilidad de confusión o de interferencia, siempre es aconsejable usar un nombre distinto. Por ejemplo, podrías usar
“SIFECHA1()”, o “SIFECHAm()” – “m” de su pseudónimo, “maydoa”, -etc.

Lo escencial es usar otro nombre, y, lo más indicado es agregar un sólo símbolo más, al final, ojalá fácil de recordar, como la cifra “1”, o la primera letra de tu nombre. ¿Qué te parece?
 
Upvote 0
Muchas Gracias RalphA :)

Voy a hacer pruebas a ver como me queda la funcion ok? :)

Ya te comento ok?

Gracias de nuevo :)
 
Upvote 0
Hola :)!

Bueno he estado hoy probando (To make funcion)la funcion y finalmente lo he hecho de la siguiente manera:

Ya que DATEDIF Calculed bad Then my Functions is:

For Days:

Function MaydoaDias(valor1, valor2) As Integer
'valor2= A2
'valor1= A1
MaydoaDias = valor2 - valor1

End Function

For Month:


Function MaydoaMeses(valor1, valor2) As Integer

MaydoaMeses = (valor2 - valor1) * 12 / 365.2564
End Function

For Years:

Function MaydoaAños(valor1, valor2) As Integer

MaydoaAños = (valor2 - valor1) / 365.2564

End Function

Me ha sido imposible (me it has been imposible) unir, juntar estas tres funciones ( to unite, to join these three functions)pero espero hacerlo algun dia(But some day I hope To do it) :)

¿Que te parece? :)

Muchas Gracias!
¡Un SAludo!
 
Upvote 0
Hola Maydoa,

¿Qué es lo que pretende hacer usted con esta función? Veo varias cosas, digamos, «curiosas»...
  1. Está asignando valores a los argumentos recibidos en la función. Por lo general esto no se hace. Dado que la forma por defecto (default) es ByRef y no ByVal y usted no ha especificado, un cambio a numero1 o a numero2 etc. debe de resultar en un cambio permanente. Cambiar valores así se hace "debug" (purificar) el programa sumamente difícil.
  2. Su función no devuelve un valor. SiFecha nunca está asignado un valor y tampoco su declaración indica qué tipo de valor estará devuelto.
  3. Su declaración indica que numero3 es de tipo Integer pero usted está asignando un valor "Y" que resultará en un error.
Lo que dice Rafa sobre asegurarse que el nombre que usted crea es cierto; asegúrese que sea único. Por lo general yo lo hago con agregar un «tag» (etiqueta) la inicio como fn o udf ejemplos:
Code:
Public Function fnIsOpen(ByVal intArg1 As Integer, strArg2 As String) As Boolean
    '...CODE...
    fnIsOpen = False
End Function

Private Static Function udfMyOtherFunction(ByRef lngPosition As Long) As String
    '...code...
    udfMyOtherFunction = "Hello World"
End Function
Además de asegurar que sus nombres serán únicos, hacer eso ayuda porque todo sus funciones estarán agrupados juntos en listado hechos por intellisense en el editor de VBA y en listado al momento de insertar funciones.

Cordialmente,
 
Upvote 0

Forum statistics

Threads
1,214,606
Messages
6,120,485
Members
448,967
Latest member
visheshkotha

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top