Combobox y textbox a mostrar
ResueltoWillzac 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
-
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
-
Hola,
Contar con el archivo nos ayudará aún más, (para probar y ver el Userform)
Atentamente
Willzac
-
Hola Willzac,
Efectivamente.
https://1fichier.com/?kx4qaff4chbxc0u40acq
Gracias
-
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
-
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
-
Hola,
Hay que poner el formato:
"dd-mm-yyyy"en lugar de los formatos que habéis puesto.
Willzac