Formato de Fecha Erroneo

Deivid

Board Regular
Joined
Jan 11, 2008
Messages
56
Hola a todos, pues ahora vengo con un problema de Formato de Fecha. Resulta que tengo esta macro:

Code:
Sub CAPTURA_Fecha()
 
Dim pasafecha 
Fec = InputBox("Indica fecha para pasar los Datos: (dd-mmaa)", "Pasar Datos diarios.")
If Fec = "" Then End
 
''''''''''''''''''Aqui está el problema, con el formato''''''''''''''''' 
pasafecha = FormatDateTime(Fec, vbShortDate)
 
Range("B1").Select
Selection.ClearContents
Range("B1").Value = pasafecha
End Sub
Cuando Asigno la variable "Pasafecha" al rango "B1", cambia el orden del Dia por el del mes. Por ej. Si pongo en el Inputbox (01-02-08), en la casilla "B1" me pasa 02-Feb-08. Esto es erroneo!!!!
El formato en la casilla "B1" es "01-mar-08"
 
Last edited by a moderator:

Excel Facts

Select a hidden cell
Somehide hide payroll data in column G? Press F5. Type G1. Enter. Look in formula bar while you arrow down through G.
Si pongo en el Inputbox (01-02-08), en la casilla "B1" me pasa 02-Feb-08. Esto es erroneo!!!!
El formato en la casilla "B1" es "01-mar-08"

Cambia el formato de casilla B1 (Hay dos Modos) Primero has click derecho seleccione Format Cell (formato casilla) busca Locale (local) y cambielo a Mexico, Costa Rica o adonde estas Usted. La secunda manera es en Category (Categoria) seleccione Custom (Costumbre) Donde dice Type (Tipo) entre lo sigiente dd/mm/yyyy o dd/mmm/yyyy o dd/mmmm/yyyy.
Si quieres 02 entre DD o si quieres 2 D para el Dia, si quieres 2 M, si quieres 02 MM, Si quieres Ene MMM, siquieres Enero MMMM para mes, y para el año YY = 08 o YYYY = 2008.
 
Upvote 0
Prueba con este cambio
Code:
Sub CAPTURA_Fecha()
Dim fec As Variant
fec = InputBox("Indica fecha para pasar los Datos: (dd-mm-aa)", "Pasar Datos diarios.")
If fec = "" Then End
 
Range("B1").ClearContents
Range("B1").Value = CDate(fec)
End Sub
 
Last edited by a moderator:
Upvote 0
...
Code:
 '// ...
If Fec = "" Then End
'// ...
...

Prueba con este cambio
Code:
 ...If fec = "" Then End
...

Como dije en su otra hilera -- es muy raro usar un END asi en un programa. Es muy raro porque es muy peligroso. Recomiendo fuertamente que no se acostumbre usarlo.

@ Gali - you should know better!
«si pudiera encontrar un dibujo de Mafalda toda regañona, lo podría aquí»
 
Upvote 0
Greg la verdad es que no tuve en cuenta la SALIDA CON "END" pero ya que estamos, porque no comentas cuaNDO TENGAS TIEMPO, sobre los posibles riesgos de este Uso.
 
Upvote 0
El peligro de END es que en la mayoría de los programas estamos llamando a varias rutinas y funciones. Programación de buena estructura usa el principal de "encapsulation" (¿encapsular?). (Pequeño ejemplo.) Un esquéleto se vería:
  • rutina principal
    • subrutina1
    • subrutina2
      • función1
      • función2
      • sub-subrutina3
        • función3
        • función4
      • sub-subrutina4
    • subrutina5
    • subrutina6
Suponemos que decidimos poner un END en función3, cualquiera limpieza que sub-subrutina 3, subrutina2 y la rutina principal tienen que hacer ya no va a ejecutar porque END se paró todo.
Un ejemplo: haga un UserForm bien sencilla, dos controls tipo TextBox y dos botones.
En el módulo de código para el formulario:
<font face=Courier New><SPAN style="color:#00007F">Option</SPAN> <SPAN style="color:#00007F">Explicit</SPAN><br><br><SPAN style="color:#00007F">Private</SPAN> <SPAN style="color:#00007F">Sub</SPAN> CommandButton1_Click()<br>    Me.Hide<br><SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN><br><br><SPAN style="color:#00007F">Private</SPAN> <SPAN style="color:#00007F">Sub</SPAN> CommandButton2_Click()<br>    MsgBox "voy a terminar", vbCritical, "¡ALTO!"<br>    <SPAN style="color:#00007F">End</SPAN><br><SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN><br><br><SPAN style="color:#00007F">Private</SPAN> <SPAN style="color:#00007F">Sub</SPAN> UserForm_Terminate()<br>    MsgBox "limpieza del formulario", vbInformation, "Userform"<br><SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN></FONT>

Y en un módulo normal:

<font face=Courier New><SPAN style="color:#00007F">Option</SPAN> <SPAN style="color:#00007F">Explicit</SPAN><br><br><SPAN style="color:#00007F">Sub</SPAN> RutinaMadre()<br>    MsgBox "actividad de manipular datos", vbInformation, "Principal"<br>    SubProc1<br>    MsgBox "actividad de limpieza", vbInformation, "Principal"<br><SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN><br><br><SPAN style="color:#00007F">Private</SPAN> <SPAN style="color:#00007F">Sub</SPAN> SubProc1()<br>    MsgBox "actividad de manipular datos", vbInformation, "Sub 1"<br>    SubProc2<br>    MsgBox "actividad de limpieza", vbInformation, "<SPAN style="color:#00007F">Sub</SPAN> 1"<br><SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN><br><br><SPAN style="color:#00007F">Private</SPAN> Sub SubProc2()<br>    <SPAN style="color:#00007F">Dim</SPAN> ufNuevo <SPAN style="color:#00007F">As</SPAN> UserForm1<br>    MsgBox "actividad de manipular datos", vbInformation, "Sub 2"<br>    <SPAN style="color:#00007F">Set</SPAN> ufNuevo = <SPAN style="color:#00007F">New</SPAN> UserForm1<br>    ufNuevo.Show<br>    MsgBox ufNuevo.TextBox1.Text, vbInformation, "Textbox 1"<br>    <br>    MsgBox ufNuevo.TextBox2.Text, vbInformation, "Textbox 2"<br>    <br>    Unload ufNuevo<br>    MsgBox "actividad de limpieza", vbInformation, "<SPAN style="color:#00007F">Sub</SPAN> 2"<br>    <br><SPAN style="color:#00007F">End</SPAN> Sub<br></FONT>
Ahora compare el comportamiento con seleccionar botón 1 y botón 2. Con END ninguna de las limpiezas corre.
 
Upvote 0

Forum statistics

Threads
1,223,977
Messages
6,175,753
Members
452,667
Latest member
vanessavalentino83

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