Combobox y textbox a mostrar

Resuelto
Linebaker Mensajes publicados 53 Estado Miembro -  
Willzac Mensajes publicados 281 Estado Miembro -

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. Linebaker Mensajes publicados 53 Estado Miembro 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
  2. Willzac Mensajes publicados 281 Estado Miembro 15
     

    Hola,

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

    Atentamente

    Willzac


    0
  3. Linebaker Mensajes publicados 53 Estado Miembro 1
     

    Hola Willzac,

    Efectivamente.

    https://1fichier.com/?kx4qaff4chbxc0u40acq

    Gracias

    0
  4. Willzac Mensajes publicados 281 Estado Miembro 15
     

    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


    0
  5. Linebaker Mensajes publicados 53 Estado Miembro 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

    0
  6. Willzac Mensajes publicados 281 Estado Miembro 15
     

    Hola,

    Hay que poner el formato:

      "dd-mm-yyyy"

    en lugar de los formatos que habéis puesto.

    Willzac


    0