............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Error al definir las variables (fecha)

Ver el tema anterior Ver el tema siguiente Ir abajo

Error al definir las variables (fecha)

Mensaje por Bernardo el Dom Jul 27, 2008 6:52 am

¿Puede alguien decirme cuál es el error en lo marcado en negrita, por favor?. Gracias!

'Definimos las variables
Dim iFila As Long
Dim ws As Worksheet

Set ws = Worksheets("Ingresar - Extraer")

Dim Fecha As Date
Date = Format(Now, "d mmm aa")

Bernardo

Cantidad de envíos : 18
Fecha de inscripción : 27/07/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por GalileoGali el Dom Jul 27, 2008 10:11 am

Por ejemplo esta puede ser una interpretación de lo que buscas

Sub TEST()
Dim iFila As Long
Dim ws As Worksheet

Set ws = Worksheets("Ingresar - Extraer")

Dim Fecha As String
Fecha = Format(Now, "d mmm yy") 'Date no es una variable, sino que puede ser dos cosas o bien la funcion que da La fecha de hoy o un tipo de Variable

Si definis Fecha como Date, entonces no podes cargar con Format, ya que Format devuelve un string

el año debe ponerse en Ingles, es decir no aa sino yy.
en cualquier igualdad en el codigo, el miembro de la Izquiera se carga del valor del miembro de la izquierda, salvo cuando se trate de comparaciones (por ejemplo cuando se quiere formular el criterio para un IF, donde no se trata mas que de comparar y no de asignar valor)

End Sub

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional

GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por Bernardo el Dom Jul 27, 2008 9:07 pm

Disculpa que te moleste de nuevo, Galileo, tan solo es esta pregunta en relación a la anterior y ya resuelvo mi duda.

La pregunta es: una vez definida la variable fecha, al comparar con el If para poner el día actual en la condición, ¿qué tendría que modificar en esta línea?

If CDate(TextBox1.Value) <> Date Then

Bernardo

Cantidad de envíos : 18
Fecha de inscripción : 27/07/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por P@li el Dom Jul 27, 2008 10:27 pm

hola Bernardo
yo creo que la comparación depende del formato que uses en el textbox

pero una manera de hacer esa comparación prodría llegar a ser la siguiente:

Código:

if isdate(textbox1.text) then
if datediff("d",date,textbox1)=0 then
msgbox "ñakñak"
end if
end if

la funcion datediff compara dos fechas, devolviendo la diferencia entre dos fechas, en la unidad que hayamos pasado en el primer parámetro, "d" dias; "m" minutos; "y" años; etc.
la función devuelve un valor numerico, si es igual a 0 significa que son la misma fecha, lo bueno es que acepta texto y fechas, por lo que (creo) que nos ahorramos un paso, el de definir una variable date temporal, o recurrir a otros artilugios que se nos fueran ocurriendo.

espero haberte ayudado, saludos.

P@li
Admin

Masculino Cantidad de envíos : 238
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por Bernardo el Dom Jul 27, 2008 11:21 pm

Me sigue dando error en ambos, Galileo, ¿tienes algún correo para enviarte la hoja, y así con una imagen gráfica me puedes entender mejor?

Yo lo único que quiero es que si por ejemplo al llenar el textbox 1 escribo algo que no sea el "día actual" Then... lo que sea...que se cumpla...(que sea una fecha; y que esa fecha sea "hoy")

Para ello me dijiste al definir la variable esto:
Dim Fecha As String
Fecha = Format(Now, "d mmm yy")

Y para el If esto:
if datediff("d",date,textbox1)=0 then

Bernardo

Cantidad de envíos : 18
Fecha de inscripción : 27/07/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por P@li el Lun Jul 28, 2008 12:07 am

no,
para el then..else..if esto:

if isdate(textbox1.text) then
if datediff("d",date,textbox1)=0 then
msgbox "ñakñak"
end if
end if

porque con isdate, verificas que lo que está escrito en el textbox es una fecha,

saludos

P@li
Admin

Masculino Cantidad de envíos : 238
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por Bernardo el Lun Jul 28, 2008 8:47 pm

No me vale tampoco, lo dejamos para más adelante, y adelanto con otra pregunta que sea menos "compleja"...Perdona mi ignorancia...

Bernardo

Cantidad de envíos : 18
Fecha de inscripción : 27/07/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por Bernardo el Mar Jul 29, 2008 8:47 pm

Con esta línea solucioné el problema de lo que yo quería decir...Lo dejo por si vale a otros.Saludos!

'Verificamos que la fecha de TB1 sea el día actual
If CDate(Val(TextBox1.Value)) <> Date Then
UserForm15.Show
TextBox1 = Empty
ws.Cells(iFila, 1).Value = TextBox1.Value

Bernardo

Cantidad de envíos : 18
Fecha de inscripción : 27/07/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por P@li el Mar Jul 29, 2008 9:53 pm

Bernardo,

Lamento comentarte que eso no funciona como corresponde, si bien no va a causar errores, lo más probable es que no cumpla con la función que esperas.

Me pregunto si comprobaste el resultado de Val(TextBox1.Value), esto no devuelve ni por casualidad una fecha, sino solamente los números ubicados en las primeras posiciones de la cadena de texto, osea, de "12/05/08", devolverá 12.

Después, y para seguir con el valor anterior, ese 12 resultante de la función Val, lo hacés pasar como parámetro de CDate, lo que devuelve, sí, una fecha, 12/01/1900.

Dudo que la función Date (fecha actual) devuelva en alguna oportunidad una fecha siquiera cercana al año 1900.

Por lo tanto, esa macro, nunca va a mostrar el UserForm15.

Única excepción es que escribas en el textbox el número 39658, correspondiente a la fecha actual (29/07/2008).

Te vuelvo a recomendar el uso del código que ya comenté.

Saludos.

P@li
Admin

Masculino Cantidad de envíos : 238
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re:

Mensaje por Bernardo el Jue Jul 31, 2008 4:26 pm

Tienes razón P@li, me da "otro error" en otra línea después referente a la fecha. Lo haré como dices entonces...

Bernardo

Cantidad de envíos : 18
Fecha de inscripción : 27/07/2008

Volver arriba Ir abajo

Re:

Mensaje por Bernardo el Jue Jul 31, 2008 8:58 pm

Perdona si no me expreso lo suficiente claro, P@li, lo que deseo modificar de la macro es la línea marcada en rojo. que es ahí donde está el "problema"...cuando los datos son verdaderos, es decir: en TB1 introduzco la fecha actual, en TB2 un número mayor a 15, y al ejecutar la macro no me copia a las celdas, me sigue saliendo el userform 15

Private Sub CommandButton4_Click()
'COPIAR TODO
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
' Copia los datos de TB1 (Fecha) a las celdas de destino
ws.Cells(iFila, 1).Value = TextBox1.Value

>>>>>>>>>>>>>>>>>>>>>>>>>>>
End Sub

Bernardo

Cantidad de envíos : 18
Fecha de inscripción : 27/07/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por P@li el Jue Jul 31, 2008 9:24 pm

Primero verifica que en TB1 tengas una fecha:
if isdate(TextBox1.Text) then

end if

Despues en la celda ingresa un numero
ws.Cells(iFila, 1).Value = val(Format(TextBox1.Value,"#"))

Por último, dale formato de fecha a la celda
ws.Cells(iFila, 1).numberformat="dd/mm/yy"

De esa forma, logré insertar fechas en planillas de excel sin tener problemas de formato

El código sería el siguiente:
Código:

if isdate(TextBox1.Text) then
  ws.Cells(iFila, 1).Value = val(Format(TextBox1.Text,"#"))
  ws.Cells(iFila, 1).numberformat="dd/mm/yy"
end if

Saludos.

P@li
Admin

Masculino Cantidad de envíos : 238
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por Bernardo el Jue Jul 31, 2008 11:13 pm

Se me sigue activando el userform 15, y se vacían los textboxes...
Se supone que la macro al llegar a esa parte "las condiciones las pasó"...y al ser verdadero los datos validados antes de los textboxes, al dar a aceptar debería copiar, y no lo hace...no me explico; en teoría con lo que me dijiste por último debería copiar...

Bernardo

Cantidad de envíos : 18
Fecha de inscripción : 27/07/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por P@li el Vie Ago 01, 2008 12:26 am

Pero seguís poniendo este código????

If CDate(Val(TextBox1.Value)) <> Date Then

Justamente te expliqué que eso no te estaba funcionando!, ayy!!, tenés que cambiar esa línea sino vas a seguir teniendo siempre el mismo problema.

Saludos

P@li
Admin

Masculino Cantidad de envíos : 238
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por Bernardo el Vie Ago 01, 2008 1:33 am

La voy a cambiar, pero espero que los pasos 1 y 2 citados anteriormente se cumplan, si no, no me valdría...para que tengas una idea, en cada textbox quiero que si por ejemplo en la fecha pongo "M" de forma accidental y una cantidad mayor a 15 en TB2 y ejecuto, no pueda ser...
Que se valide el textbox antes de pasar a la celda...de forma que lo pasado, es lo pretendido; no sé si me entiendes P@li. Luego te comento que tal resultó. Saludos!

Bernardo

Cantidad de envíos : 18
Fecha de inscripción : 27/07/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por Bernardo el Vie Ago 01, 2008 5:37 pm

Te explico como quedaron los textboxes después de retificarlos con lo que me dijiste, P@li:

En el primer caso: Introduzco fecha atrasada en TB1
Introduzco cantidad > 15 en TB2Acepto
Resultado: 00/01/00 se copia fecha año 2.000 en 1ª celda libre de A.
(No debe copiar nada)

En el segundo caso: Introduzco letra en TB1
Introduzco cantidad > 15 en TB2
Acepto
Resultado: Aparece en 1ª celda libre de B (TB2) la cantidad (no debería, pues sólo es correcto uno de los datos)
Igualmente aparecen fórmulas erróneas ( las corrijo luego) en celdas de C,D,E,F
(No debe copiar nada)


En el tercer caso: Introduzco datos correctos en ambos textboxes, en TB1( fecha actual), y en TB2( número >15) y acepto…

Resultado: 00/01/00 se copia fecha año 2.000 en 1ª celda libre de A. Y nada más…
( Debe copiar TODOS los datos a las celdas, y en 1ª celda libre de C,D,E,F, el resultado de las fórmulas)

Ya no sé que hacer, me tiene desesperado...llevo casi dos semanas intentando corregir el fallo de las fechas...si los textboxes fuera uno numérico, y el otro no numérico...no hubiese tenido problema (con lo poco que sé...); pero desde que estoy intentando hacerlo con una fecha en uno de los textboxes, ahí es donde comenzaron mis "problemas"...

Te copio el código actualizado, y te marco todo lo que tenga que ver con fechas:

Private Sub CommandButton4_Click()
Set ws = Worksheets("Ingresar - Extraer")
Dim Fecha As String
Fecha = Format(Now, "d mmm yy")

'Verificamos que la fecha de TB1 sea el día actual
If IsDate(TextBox1.Text) Then
UserForm15.Show
TextBox1 = Empty
ws.Cells(iFila, 1).Value = Val(Format(TextBox1.Text, "#"))
ws.Cells(iFila, 1).NumberFormat = "dd/mm/yy"


'COPIAR TODO

If IsDate(TextBox1.Text) Then
ws.Cells(iFila, 1).Value = Val(Format(TextBox1.Text, "#"))
ws.Cells(iFila, 1).NumberFormat = "dd/mm/yy"
End If




End Sub

Bernardo

Cantidad de envíos : 18
Fecha de inscripción : 27/07/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por Bernardo el Vie Ago 01, 2008 5:44 pm

Aunque le quite el "If", que olvidé hacerlo al copiar, hace lo que te dije igualmente...

Bernardo

Cantidad de envíos : 18
Fecha de inscripción : 27/07/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por P@li el Vie Ago 01, 2008 8:43 pm

En todas las veces que usas Range() te falta agregarle delante la hoja ws

Por ejemplo:
ws.Range("A1").Formula = ""

P@li
Admin

Masculino Cantidad de envíos : 238
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por Bernardo el Sáb Ago 02, 2008 12:30 am

Gracias por decírmelo P@li, como tengo varias cosas atrasadas, ya que el error este me retrasó bastante, ¿te importaría explicarme algo más referente a fechas, y ya no te molesto más? Si puede ser, si no tampoco pretendo saturarte ni que me hagas mis cosas...solo que debido a mi inexperiencia en VBA, a veces una ayudita se agradece y mucho...Por si gustas responderme, lo que deseo saber es esto:

si año bisiesto y c31 <> "" Then Useform1
si mes = febrero y c30 <> ""Then Useform1
si mes = 31 días y C33 <> ""Then Useform1
si mes= 30 días y C32<> ""Then Useform1

Perdona por molestarte tanto, P@li. Agradezco enormemente tus explicaciones.

Bernardo

Cantidad de envíos : 18
Fecha de inscripción : 27/07/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por P@li el Sáb Ago 02, 2008 1:49 pm

Para la primera:
Código:

Function si_bisiesto(ByVal fecha As Date) As Boolean
    bisiesto = IsDate("29/02/" & year(Fecha))
End Function

Ejemplo:
fecha="10/08/2007"
If si_bisiesto(fecha) then
msgbox year(fecha) & " es bisiesto"
else
msgbox year(fecha) & " no es bisiesto"
end if

Para la segunda:
Código:

Function si_mes(ByVal nombre_mes As String, ByVal fecha As Date) As Boolean
    si_mes = (UCase(nombre_mes) = UCase(MonthName(Month(fecha), False)))
End Function

Ejemplo:
if si_mes("agosto",date) then
msgbox "estamos en agosto"
else
msgbox " no estamos en agosto"
end if

Para la tercera y cuarta:
Código:

Function si_31(ByVal num_mes As Integer) As Boolean
    si_31 = IsDate("31/" & num_mes & "/1900")
End Function
Function si_30(ByVal num_mes As Integer) As Boolean
    si_30 = IsDate("30/" & num_mes & "/1900")
End Function

Ejemplos:
if si_31(12) then
msgbox "diciembre tiene 31 días"
else
msgbox "diciembre no tiene 31 días"
end if

if si_30(12) then
msgbox "diciembre tiene 30 días"
else
msgbox "diciembre no tiene 30 días"
end if

P@li
Admin

Masculino Cantidad de envíos : 238
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por P@li el Sáb Ago 02, 2008 1:57 pm

Bernardo,
Me doy cuenta que no estás usando completamente bien el If...Then...Else

Veo que solamente estás usando
numero=2
if numero=1 then
msgbox "numero=1"
end if

Cuando prodrías usar
numero=2
if numero=1 then
msgbox "numero=1"
else
msgbox "numero es distinto de 1"
end if

Pero también tenés otra posibilidad mayor
numero=2
if numero=1 then
msgbox "numero=1"
elseif numero=2 then
msgbox "numero=2"
else
msgbox "numero es distinto de 1 y distinto de 2"
end if

Tendrías que hacer una lectura completa del uso de If...Then...Else

Saludos.

P@li
Admin

Masculino Cantidad de envíos : 238
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por Bernardo el Sáb Ago 02, 2008 8:42 pm

Muchísimas gracias P@li, y perdona por ser tan torpe a veces, recién estoy comenzando.

Bernardo

Cantidad de envíos : 18
Fecha de inscripción : 27/07/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por P@li el Dom Ago 03, 2008 11:56 am

Por nada Bernardo, y no es torpeza, no te hagas problema, yo fui aprendiendo de a poco también, sin hacer ningún curso, y muchas veces, por falta de un maestro, tuve que consultar en foros.

Saludos.

P@li
Admin

Masculino Cantidad de envíos : 238
Edad : 33
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por BARETA2355 el Lun Mayo 04, 2009 5:40 pm

BUENAS TARDES:
SOY NUEVO EN EL FORO NECESITO RESOLVER EL PROBLEMA SIGUIENTE:
ERROR #¡NUM!
CUANDO COLO UN NUMERO NO ME EJECUTA EL VALOR ESPERADO ENVIANDO EN VEZ DE ELLA ESTE ERROR ERROR ""#¡NUM!""
ALGUIEN ME PODRIA AYUDAR A SOLUCINAR ESE PROBLEMA...

ATTE. BARETA2355

BARETA2355

Masculino Cantidad de envíos : 1
Edad : 61
Ciudad - Pais : SAN MIGUEL / EL SALVADOR
Version de Excel : 2003
Fecha de inscripción : 04/05/2009

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por GalileoGali el Lun Mayo 04, 2009 6:26 pm

Bienvenido:
Debes abrir un nuevo TEMA en el subforo de Funciones y Formulas, pero explicando en que formula se produce tu error , y muy especialmente, para queé valores sucede

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional

GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Error al definir las variables (fecha)

Mensaje por Contenido patrocinado Hoy a las 11:27 pm


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.