Combobox et textbox à afficher

Résolu/Fermé
Linebaker Messages postés 51 Date d'inscription vendredi 23 novembre 2012 Statut Membre Dernière intervention 21 avril 2023 - 20 avril 2023 à 16:26
Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024 - 24 avril 2023 à 08:39

Bonjour,

Voici le code et en commentaire mes problématiques. Si quelqu'un peut m'aider. Merci

Private Sub ComboBox1_Change()
Dim Lg As Long
'vérifie si, selon le combobox1 existe, si oui on ajoute la une valeur de la colone "B" dans le textbox1
    With Sheets("feuil3")
        Lg = ComboBox1.ListIndex + 1
        TextBox1.Value = Cells(Lg, 1).Value
    End With
    
    If TextBox1.Value > Date - 365 Then 'si la date du textbox1 est plus grande que la date du jour - 365 jour (la valeur doit être plus grande 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 il n'y a rien, on ajoute la valeur du combobox1 ainsi que la date du jour
    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 la valeur du combobox1 existe déjà
    Cherche = ComboBox1.Value 'cherche le nom
    If Cherche = "" Then 'si cherche (valeur du combobx1) n'existe de pas
        'ajouter valeur combobox1 en A et date du jour en B
    Else 'si la valeur du combobox1 existe déjà on écrit la date du jour 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 réponses

Linebaker Messages postés 51 Date d'inscription vendredi 23 novembre 2012 Statut Membre Dernière intervention 21 avril 2023 1
21 avril 2023 à 16:18

Bonjour,

J'ai réussi à coder le tout. Le seul problème qu'il me reste c'est le format date du textbox1 lorsque le nom est déjà dans la feuil3. Le textbox1 affiche la date 21/04/2003 au lieu de 2023-04-21 tel que la cellule. J'ai essayé de forcer le format d'affichage du textbox1 sans succès. Est-ce que tu aurais une idée comment coder ?

J'inclus le fichier corrigé.

https://1fichier.com/?nykoemhr7zr0qxm3alhn

Merci

1
Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024 14
20 avril 2023 à 16:32

Bonjour,

Avoir le fichier nous aidera encore plus, (pour tester et voir l'Userform)

Cordialement

Willzac


0
Linebaker Messages postés 51 Date d'inscription vendredi 23 novembre 2012 Statut Membre Dernière intervention 21 avril 2023 1
20 avril 2023 à 16:43

Bonjour Willzac,

Effectivement.

https://1fichier.com/?kx4qaff4chbxc0u40acq

Merci

0
Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024 14
Modifié le 20 avril 2023 à 18:01

Bonsoir,

Pouvez vous expliquez ce qu'il faut faire ?

J'aimerais plutôt recoder si possible. (par exemple la feuille formulaire ne figure pas dans votre fichier)

Quelles sont les étapes ?

Cordialement


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Linebaker Messages postés 51 Date d'inscription vendredi 23 novembre 2012 Statut Membre Dernière intervention 21 avril 2023 1
20 avril 2023 à 18:27

Bonsoir,

De la feuil4, sélectionner une valeur (nom) et vérifier si cette valeur existe dans le feuil3. Cette la valeur n'est pas présente, il faut l'ajouter en A et mettre la date du jour en B. Si cette valeur existe déjà dans le feuil3 colonne A, il faut seulement ajouter la date du jour en B.

En espérant cela est clair sinon n'hésite pas à me demander des informations supplémentaires.

Merci beaucoup pour ton aide

0
Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024 14
24 avril 2023 à 08:39

Bonjour, 

Il faut mettre le format :

 "dd-mm-yyyy"

à la place des format que vous avez mis.

Willzac


0