Microsoft 365 Modifier formule pour simplifier un calcule de date et comptage categories

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

teckmicro03

XLDnaute Nouveau
Bonjour, je voudrais automatiser le calcul de date de mes forfaits.
FORFAIT possible = 7 jours - 14 jours - 21 jours - 1 mois - 2 mois - 3 mois

Je ne voudrais plus taper les dates des forfaits, je voudrais sélectionner dans une liste déroulante ou autre manière les forfaits correspondants et que les dates s'affichent automatiquement
Si forfait 7 jours : 20/02/25 au 26/02/25 …

Et je voudrais calculer le comptage des catégories vendues. Voir Tableau dans le fichier.

Merci de prendre du temps pour moi.
Bonne journée
Cordialement

Christophe
 

Pièces jointes

Solution
Bonjour Teckmicro03, Nathe,
Comme j'avais un peu de temps, je me permets de vous proposer le fichier ci-joint.
Nathe a raison : il faut tout reprendre !
Mais, si je peux me permettre, il faudrait que vous posiez bien vos besoins, ce qui évitera d'avoir à recommencer à chaque fois.
Le fichier que je vous propose est une base sur laquelle vous pourriez partir.
Dans le tableau, il y a certaines colonnes qui ne me paraissent pas nécessaires.
Le nombre de Forfaits "Valide" est une donnée qui pourrait apparaître sur une feuille "Tableau de Bord" qui serait gérée par TCD (Voir Feuille "Accueil). Bien d'autres infos pourrait s'afficher (le nombre fois que sort chaque véhicule...)
Bonjour , je comprend j'aurais du l'explique avant pour...
Bonsoir Jacques Lol
Bonjour le Fil
Je me suis permis de modifier ces Procédures afin d’éviter des Boucles !
'********************** Alimenter et trier ordre croissant le comboBox"Cbx_Nom ****************
VB:
ListClients = Range("Tbl_ListClients").ListObject.DataBodyRange.Value
      With Me.Cbx_Nom 'avec le Combobox
             .ColumnCount = 2
             .ColumnWidths = "1;0"
             .AddItem Empty 'on ajoute la valeur vide au Combobox
             .List(.ListCount - 1, 1) = Empty
        For Ligne = 1 To UBound(ListClients) ' Pour chaque ligne du Tableau de la Base de Données
             .Text = ListClients(Ligne, 1) 'On affiche la valeur dans le Combobox
          If .ListIndex = -1 Then 'Si l'index du Combobox est à -1 (c'est que la valeur n'existe pas dans le Combobox
             .AddItem ListClients(Ligne, 1) 'Donc on l'ajoute à la Liste les élément du Combobox(vient d'une procédure de PatrickToulon)
             .List(.ListCount - 1, 1) = ListClients(Ligne, 5)
          End If
        Next Ligne
            .ListIndex = 0 'On affiche la valeur Vide
       End With
'Trier Cbx_Nom, True 'On utilise ce module "TrierCboAgent" pour trier le comboBox "CbNom"

'********************** Alimenter et trier ordre croissant le comboBox"Immatriculation ************

VB:
ListImat = Range("Tbl_List_Immatriculations").ListObject.DataBodyRange.Value
With Cbx_Immatriculation 'avec le Combobox
.ColumnCount = 3
.ColumnWidths = "1;0;0"
.AddItem Empty 'on ajoute la valeur vide au Combobox
.List(.ListCount - 1, 1) = Empty
.List(.ListCount - 1, 2) = Empty
For lign = 1 To UBound(ListImat) ' Pour chaque ligne du Tableau de la Base de Données
.Text = ListImat(lign, 1) 'On affiche la valeur dans le Combobox
If .ListIndex = -1 Then 'Si l'index du Combobox est à -1 (c'est que la valeur n'existe pas dans le Combobox
.AddItem ListImat(lign, 1) 'Donc on l'ajoute à la Liste les élément du Combobox(vient d'une procédure de PatrickToulon)
.List(.ListCount - 1, 1) = ListImat(lign, 2)
.List(.ListCount - 1, 2) = ListImat(lign, 3)
End If
Next lign
.ListIndex = 0 'On affiche la valeur Vide
End With
‘***************************modification des procédures des Combobox
VB:
Private Sub Cbx_Immatriculation_Change() ' Permet d'alimenter les TextBox "Marque" et Type après sélection dans Combobox
With Me.Cbx_Immatriculation
Me.Txt_Marque = Empty
Me.Txt_Type = Empty
If .ListIndex = -1 Then Exit Sub
Me.Txt_Marque = .List(.ListIndex, 1)
Me.Txt_Type = .List(.ListIndex, 2)
End With
End Sub
VB:
Private Sub Cbx_Nom_Change() ' Permet d'alimenter les TextBox "Prénom" et "N° Tél" après sélection dans Combox
With Me.Cbx_Nom
Me.Txt_NumTel = Empty
If .ListIndex = -1 Then Exit Sub
Me.Txt_NumTel = Format(.List(.ListIndex, 1), "0# ## ## ## ##")
End With
End Sub
Cordialement
jean marie
 
Dernière édition:
Bonjour Jean-Marie, Christophe,
Tu as très bien fait.
Au départ (post #15) je voulais juste lui donner une base saine (tableau structuré...) pour que les cadors de ce forum n'aient pas à tout faire.

Et puis je me suis pris au jeu quand j'ai vu qu'il n'y avait pas beaucoup de monde qui avait réagi.
Mais je savais que tout cela pouvait être amélioré, j'avais bon espoir que quelqu'un finirait par s'y intéresser : voir mon post 25 : " Les codes peuvent être améliorés, si les "cadors" habituels passent par là, ils se feront un plaisir d'apporter leurs contributions.)".

Et hier, tu l'as fait. Parfait. Du coup je m'améliore aussi.
Celles et ceux qui passeront par là auront à disposition un fichier qui fonctionne bien.
Merci à toi et passe une bonne journée.
Claude
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour