Error al Modificar campo fecha en Userform

A los integrantes de este foro, en esta ocasión recurro a vuestra ayuda para me brinde su asesoramiento en como hacer que en el TextBox4 FECHA del formulario fmrModificar quede con Formato Fecha, ya que al hacer modificaciones en otros TextBox el campo FECHA de distorsiona es decir invirtiendo la fecha registrada ejemplo: 12/10/2018 a 10/12/2018 o al modificar la fecha ingresar lo posiciona al lado izquierdo, todo esto para mejor visualización los adjunto en el link imagenes, también adjunto el archivo y la macro con la que se esta trabajando.

Desde ya agradezco su apoyo incondicionalmente, salvo que brinden otro tipo de formulario.

'Actualizar el registro
Private Sub CommandButton1_Click()
For i = 1 To 9
ActiveCell.Offset(0, i - 1).Value = Me.Controls("TextBox" & i).Value
Next i
Unload Me
End Sub
Private Sub CommandButton3_Click()
UserForm4.Show
End Sub
Private Sub CommandButton4_Click()
UserForm5.Show
End Sub
'Llenar los cuadro de texto con los datos del registro elegido
Private Sub UserForm_Initialize()
For i = 1 To 9
Me.Controls("TextBox" & i).Value = ActiveCell.Offset(0, i - 1).Value
Next i
End Sub
'Cerrar formulario
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub TextBox6_change()
Dim Texto As Variant
Dim Caracter As Variant
Dim Largo As String
On Error Resume Next
Texto = Me.TextBox6.Value
Largo = Len(Me.TextBox6.Value)
For i = 1 To Largo
Caracter = CInt(Mid(Texto, i, 1))
If Caracter = "" Then
If Not Application.WorksheetFunction.IsText(Caracter) Then
Me.TextBox6.Value = Replace(Texto, Caracter, "")
MsgBox "SOLO PUEDE INGRESAR LETRAS", vbOKOnly + vbInformation, "AVISO"
Else
End If
End If
Next i
On Error GoTo 0
End Sub
Private Sub TextBox7_change()
Dim Texto As Variant
Dim Caracter As Variant
Dim Largo As String
On Error Resume Next
Texto = Me.TextBox7.Value
Largo = Len(Me.TextBox7.Value)
For i = 1 To Largo
Caracter = CInt(Mid(Texto, i, 1))
If Caracter = "" Then
If Not Application.WorksheetFunction.IsText(Caracter) Then
Me.TextBox7.Value = Replace(Texto, Caracter, "")
MsgBox "SOLO PUEDE INGRESAR LETRAS", vbOKOnly + vbInformation, "AVISO"
Else
End If
End If
Next i
On Error GoTo 0
End Sub

1 respuesta

Respuesta
1

Prueba con lo siguiente, cambia lo esto

Private Sub UserForm_Initialize()
For i = 1 To 9
Me.Controls("TextBox" & i).Value = ActiveCell.Offset(0, i - 1).Value
Next i
End Sub

Por esto:

Private Sub UserForm_Initialize()
For i = 1 To 9
Me.Controls("TextBox" & i).Value = ActiveCell.Offset(0, i - 1).Value
Next i
textbox4.value = cdate(range("D2").value)
End Sub

Lo que estoy haciendo es convertir un texto a fecha.

Lo mismo tienes que hacer cuando lo pasas del textbox a la celda

Por ejemplo, tienes esto

'Actualizar el registro
Private Sub CommandButton1_Click()
For i = 1 To 9
ActiveCell.Offset(0, i - 1).Value = Me.Controls("TextBox" & i).Value
Next i
Unload Me
End Sub

Utiliza lo siguiente:

'Actualizar el registro
Private Sub CommandButton1_Click()
For i = 1 To 9
ActiveCell.Offset(0, i - 1).Value = Me.Controls("TextBox" & i).Value
Next i
Activecell.offset(0, 3).value = cdate(textbox4.value)
Unload Me
End Sub

Prueba y me comentas. Si te sirve a información, no olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas