Microsoft 365 Liste en cascade

Electron24

XLDnaute Occasionnel
Bonsoir à tous

J'ai un petit problème de remplissage d'une 2ème liste selon la sélection de la première liste déroulante dans mon formulaire.
J'ai fait des recherches sur le net mais je n'arrive pas à transcrire les trouvailles pour mon classeur.
j'aimerai que vous m'aidiez j'y ai joint mon travail. d'avance merci
 

Pièces jointes

  • Classeur2.xlsm
    28.4 KB · Affichages: 15
Solution
Bonsoir le Fil
D'après le travail de François
J'ai modifié pour revenir à l'affichage Initial de la date dans le TextBox .
VB:
Sub saisiedate(ctrl)
 If ctrl = "" Then Exit Sub
 If Controls(ctrl).Value <> "" Then
    Me.LabelDate = CDate(Controls(ctrl).Value)
   Else
    Me.LabelDate = Date
   End If
   calendar.Show
   With Controls(ctrl)'------> Ici
       .Value = Format(CDate(ladate), "ddd dd mmm yyyy")'------> Ici
       .Tag = CDate(ladate) '------> Ici
    End With '------> Ici
   Unload calendar
End Sub

Private Sub CommandButton1_Click()
  saisiedate (Me.T_Date.Name)
End Sub

Private Sub Btn_Valider_Click()
   Range("A65536").End(xlUp).Offset(1, 0).Value = CDate(T_Date.Tag)'------> Ici
   Range("A65536").End(xlUp).Offset(0...

Electron24

XLDnaute Occasionnel
Re,
Désolé de vous importuner une nouvelle fois, mais j'ai un souci avec les dates.
Dans mon formulaire j'ai inscrit la macro suivante
VB:
Private Sub T_Date_afterupdate()
T_Date.Value = Format(T_Date.Value, "ddd dd mmm yyyy")
End Sub
Le souci est que dans ma cellule j'ai bien la datee inscrite au format mais avec un point aprés le jour (mer. 22 déc 2022) ce qui fait qu'Excel ne le prend pas au format date car j'ai une erreur de valeur si je veux récupérer l'année dans une autre cellule.
Code:
Private Sub Btn_Valider_Click()
Dim L As Integer

    Sheets("Base").Select
   
L = Range("B65536").End(xlUp).Row + 1
        Range("B1500").End(xlUp).Offset(1, 0).Select ' Se place sur la dernière ligne
With WS
            Range("A" & L) = CDate(T_Date)           ' Date
            Range("B" & L) = Cmb_Moyen.Value        ' Moyen
            Range("C" & L) = T_Numéro.Value         ' Chèque
            Range("D" & L) = Cmb_Categorie.Value    ' Catégorie
            Range("E" & L) = Cmb_Poste.Value        ' Poste
            Range("F" & L) = T_Libelle.Value        ' Libellé
            Range("G" & L) = T_Montant.Value        ' Montant
           
    End With
   
    Unload Me
'        Range("A4").Select
'
End Sub
CDate me donne une erreur dans la macro

PS: La cellule contenant la valeur du TextBox est au format "jjj jj mmm aaaa"
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonjour
peut-être en utilisant la propriété .Tag de ton TextBox
VB:
Private Sub T_Date_afterupdate()
T_Date.Value = Format(T_Date.Value, "ddd dd mmm yyyy")
T_Date.Tag = T_Date.Value
End Sub
puis
VB:
Range("A" & L) = CDate(T_Date.Tag)           ' Date
a voir non testé
EDIT :
a quoi sert cette Ligne
VB:
Range("B1500").End(xlUp).Offset(1, 0).Select ' Se place sur la dernière ligne
Bonne Journée
Jean marie
 

ChTi160

XLDnaute Barbatruc
Re
Ce que j'ai mis pour tester
VB:
Private Sub T_Date_afterupdate()
T_Date.Tag = Format(T_Date.Value, "00000")
T_Date.Value = Format(T_Date.Value, "ddd dd mmm yyyy")
MsgBox Format(T_Date.Tag, "dddd dd mmmm yyyy") & vbCrLf & _
Format(T_Date.Tag, "dd/mm/yyyy")
End Sub
à voir donc
il faut bien sûr que ce soit une date valide qui est Saisie (il n'y a pas de control) peut être utiliser un des Nombreux calendriers proposés sur le site pour saisir la date)
Jean marie
 

ChTi160

XLDnaute Barbatruc
Bonsoir le Fil
D'après le travail de François
J'ai modifié pour revenir à l'affichage Initial de la date dans le TextBox .
VB:
Sub saisiedate(ctrl)
 If ctrl = "" Then Exit Sub
 If Controls(ctrl).Value <> "" Then
    Me.LabelDate = CDate(Controls(ctrl).Value)
   Else
    Me.LabelDate = Date
   End If
   calendar.Show
   With Controls(ctrl)'------> Ici
       .Value = Format(CDate(ladate), "ddd dd mmm yyyy")'------> Ici
       .Tag = CDate(ladate) '------> Ici
    End With '------> Ici
   Unload calendar
End Sub

Private Sub CommandButton1_Click()
  saisiedate (Me.T_Date.Name)
End Sub

Private Sub Btn_Valider_Click()
   Range("A65536").End(xlUp).Offset(1, 0).Value = CDate(T_Date.Tag)'------> Ici
   Range("A65536").End(xlUp).Offset(0, 1).Value = Cmb_Moyen.Value
   Range("A65536").End(xlUp).Offset(0, 2).Value = T_Numéro.Value
   Range("A65536").End(xlUp).Offset(0, 3).Value = Cmb_Categorie.Value
   Range("A65536").End(xlUp).Offset(0, 4).Value = Cmb_Poste.Value
   Range("A65536").End(xlUp).Offset(0, 5).Value = T_Libelle.Value
   Range("A65536").End(xlUp).Offset(0, 6).Value = Ccur(T_Montant) '------> Ici
   Unload Me
End Sub
Bonne fin de Soirée
Jean marie
 

Electron24

XLDnaute Occasionnel
Bonjour le Forum, Bonjour ChTi160, bonjour fanfan18

Un grand merci à vous deux qui avaient fait un travail splendide.
J'ai mis vos contributions en service dans mon classeur et le résultat me satisfait pleinement
Je vous souhaite une bonne journée ainsi que de bonnes fêtes.
cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 307
Messages
2 087 097
Membres
103 468
dernier inscrit
TRINITY