Combobox y textbox a mostrar

Resuelto

Hola,

Aquí está el código y en comentarios mis problemáticas. Si alguien puede ayudarme. Gracias

Private Sub ComboBox1_Change()
Dim Lg As Long
'verifica si, según el combobox1 existe, si es así se añade un valor de la columna "B" en el textbox1
    With Sheets("feuil3")
        Lg = ComboBox1.ListIndex + 1
        TextBox1.Value = Cells(Lg, 1).Value
    End With
    
    If TextBox1.Value > Date - 365 Then 'si la fecha del textbox1 es mayor que la fecha de hoy - 365 días (el valor debe ser mayor que 365)
        CommandButton2.Enabled = False
    End If
    
End Sub

Private Sub CommandButton1_Click()
Dim Cherche As String

    If ComboBox1 = "" Then
        MsgBox "Vous devez sélectionner un nom ?", vbOK, "Nom de la personne"
        Exit Sub
    End If
            
    Sheets("Feuil3").Select

If Range("a2") = "" Then ' si en A2 no hay nada, se añade el valor del combobox1 así como la fecha del día
    Range("a65536").End(xlUp).Offset(1, 0).Select
    ActiveCell = ComboBox1.Value
    ActiveCell.Offset(0, 1) = Me.TextBox1.Value = Format(Now, "yyyy-mm-dd")
Else 'si el valor del combobox1 ya existe
    Cherche = ComboBox1.Value 'busca el nombre
    If Cherche = "" Then 'si Cherche (valor del combobox1) no existe
        'agregar valor del combobox1 en A y fecha del día en B
    Else 'si el valor del combobox1 ya existe se escribe la fecha del día en B
        L = Sheets("Formulaire").Cells.Find(What:=Cherche, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlNext).Row
        Cells(L, "B") = Me.TextBox1.Value = Format(Now, "yyyy-mm-dd")
    End If
End If
        
    ComboBox1 = ""
    TextBox1 = ""
    Unload Me
      
End Sub

Private Sub CommandButton2_Click()
    Unload Me
End Sub

Private Sub UserForm_Initialize()
  Set f = Sheets("feuil4")
  Set MonDico = CreateObject("Scripting.Dictionary")
  a = f.Range("A2:A" & f.[A65000].End(xlUp).Row)
  For i = LBound(a) To UBound(a)
    If a(i, 1) <> "" Then MonDico(a(i, 1)) = ""
  Next i
  Me.ComboBox1.List = MonDico.keys

    With Me.ComboBox1
           .ListIndex = -1
    End With
End Sub

6 respuestas

  1. Hola,

    He logrado codificar todo. El único problema que me queda es el formato de fecha del textbox1 cuando el nombre ya está en la hoja3. El textbox1 muestra la fecha 21/04/2003 en lugar de 2023-04-21 como la celda. He intentado forzar el formato de visualización del textbox1 sin éxito. ¿Tendrías alguna idea de cómo programarlo?

    Incluyo el archivo corregido.

    https://1fichier.com/?nykoemhr7zr0qxm3alhn

    Gracias

    1. Hola,

      Contar con el archivo nos ayudará aún más, (para probar y ver el Userform)

      Atentamente

      Willzac


      1. Buenas noches,

        ¿Podrías explicar qué hay que hacer?

        Preferiría reencriptar/recodificar si es posible. (por ejemplo, la hoja de formulario no figura en vuestro archivo)

        ¿Cuáles son los pasos?

        Atentamente


        1. Buenas noches,

          En la hoja4, seleccione un valor (nombre) y verifique si este valor existe en la hoja3. Si este valor no está presente, agrégalo en la columna A y pon la fecha de hoy en la columna B. Si este valor ya existe en la columna A de la hoja3, solo añade la fecha de hoy en la columna B.

          Con la esperanza de que esto esté claro; si no, no dudes en pedirme información adicional.

          Muchas gracias por tu ayuda

          1. Hola,

            Hay que poner el formato:

              "dd-mm-yyyy"

            en lugar de los formatos que habéis puesto.

            Willzac