Autres Menu déroulant saisie prédictive

Quicksland

XLDnaute Nouveau
Bonsoir a tous

je souhaiterai avoir une liste déroulante avec saisie prédictive dans plusieurs cellules ( de C10 a C20 et de C31 a C41 )

actuellement il y a une liste déroulante mais vu le nombres de ligne dans a liste source ce n'est pas pratique

merci de votre aide 👍
 

Pièces jointes

  • ECHANTILLON TEST.xlsx
    63.5 KB · Affichages: 10

Quicksland

XLDnaute Nouveau
Bonsoir,
OK, donc les ComboBoxes en cellules ne te conviennent pas spécialement.
Comme tu veux, je ferai l'intégration demain.
bonsoir Dudu2

Disons qu'au début c'est ce que je voulais puis maintenant avec le recul je trouve cela plus simple comme cela

et puis si il y avait la possibilité dans le même userform de rajouter un bouton " ajout plat " avec une zone pour

écrire le nom du nouveau plat pour alimenter directement la " LISTE PLATS " enfin si c'est possible

bonne soirée merci
 

Dudu2

XLDnaute Barbatruc
Bonjour @Quicksland,

Je te donne la version qui utilise la seule Saisie Assistée (sans ComboBox de Validation dans les cellules). Il faut double-cliquer dans la cellule pour lancer le UserForm de saisie.

C'est aussi un exemple à conserver pour la mise en œuvre de la Saisie Assistée dans une ComboBox qui s'avère extrêmement simple.

Mélanger l'ajout de plat dans la liste des plats avec la saisie d'un plat en cellule n'est à mon avis pas très judicieux et rendrait plus complexe la gestion de la saisie.

Il te faut un bouton dédié que tu dois pouvoir développer.
Edit: Sinon place cette requête dans un nouveau sujet et je suis sûr qu'un XLDnaute se proposera pour le faire, sinon moi-même.
 

Pièces jointes

  • ECHANTILLON TEST Saisie Assistée.xlsm
    101.6 KB · Affichages: 3
Dernière édition:

Quicksland

XLDnaute Nouveau
Bonjour @Quicksland,

Je te donne la version qui utilise la seule Saisie Assistée (sans ComboBox de Validation dans les cellules). Il faut double-cliquer dans la cellule pour lancer le UserForm de saisie.

C'est aussi un exemple à conserver pour la mise en œuvre de la Saisie Assistée dans une ComboBox qui s'avère extrêmement simple.

Mélanger l'ajout de plat dans la liste des plats avec la saisie d'un plat en cellule n'est à mon avis pas très judicieux et rendrait plus complexe la gestion de la saisie.

Il te faut un bouton dédié que tu dois pouvoir développer.
Edit: Sinon place cette requête dans un nouveau sujet et je suis sûr qu'un XLDnaute se proposera pour le faire, sinon moi-même.
Bonjour Dudu2

Ok c'est super 👍 merci ;)

Je prend note et conserve au chaud la saisie assistée 👍

En fait je pensai qu'il serait possible via un bouton "Ajouter Plat "dans le premier userform que celui ci

ouvre un autre userform ou la il y aurai tout pour ajouter un plat dans la liste de plats existante

de même avec un bouton "Aide" qui celui ci ouvrirai un userform avec des indications d'utilisation

et le dernier bouton " remise a zero " effacerai les cellules dates ( C7:E8 et C28:E29 ) ainsi que les cellules plats ( C10:C20 et C31:C41 )

Je te remet le fichier avec les nouveaux boutons

je te remercie vivement pour ton aide

ps si tu préfères je re poste un nouveau sujet
 

Pièces jointes

  • ECHANTILLON TEST Saisie Assistée.xlsm
    94.6 KB · Affichages: 2

Dudu2

XLDnaute Barbatruc
Ok, voilà.

J'ai pas compris pourquoi t'avais ajouté un ligne vide en tête de liste des plats.
Pour vider une cellule pas besoin de double-cliquer pour lancer le UserForm de saisie, il suffit d'utiliser la touche Suppr sur la cellule en question.

Si tu ne veux pas que la valeur de la cellule s'affiche au départ dans la ComboBox, alors dans le code du UserForm_SaisiePlat il faut supprimer la ligne ValeurInitiale:=ActiveCell.Value, _
VB:
    'Appel la Saisie Assistée
    IndiceSélection = ComboBoxSaisieAssistéeEnter(Me.ComboBoxSaisie, _
                                                  KeepRangeListeValeurs, _
                                                  ValeurInitiale:=ActiveCell.Value, _
                                                  TypeFiltrage:=2)
 

Pièces jointes

  • ECHANTILLON TEST Saisie Assistée et autres boutons.xlsm
    112.8 KB · Affichages: 3

Quicksland

XLDnaute Nouveau
Ok, voilà.

J'ai pas compris pourquoi t'avais ajouté un ligne vide en tête de liste des plats.
Pour vider une cellule pas besoin de double-cliquer pour lancer le UserForm de saisie, il suffit d'utiliser la touche Suppr sur la cellule en question.

Si tu ne veux pas que la valeur de la cellule s'affiche au départ dans la ComboBox, alors dans le code du UserForm_SaisiePlat il faut supprimer la ligne ValeurInitiale:=ActiveCell.Value, _
VB:
    'Appel la Saisie Assistée
    IndiceSélection = ComboBoxSaisieAssistéeEnter(Me.ComboBoxSaisie, _
                                                  KeepRangeListeValeurs, _
                                                  ValeurInitiale:=ActiveCell.Value, _
                                                  TypeFiltrage:=2)
Super c'est vraiment bien 👍

C'est une erreur ... J'ai fait une mise a jour liste plats a l'arrache et lors de mon copier coller j'ai louper la première ligne :rolleyes:

Tout est parfait et je te remercie pour ton aide

Bonne soirée
 

Quicksland

XLDnaute Nouveau
Super c'est vraiment bien 👍

C'est une erreur ... J'ai fait une mise a jour liste plats a l'arrache et lors de mon copier coller j'ai louper la première ligne :rolleyes:

Tout est parfait et je te remercie pour ton aide

Bonne soirée
Désolé je te le met dans cette discutions car il doit y avoir un bug car pas possibilité de mettre un fichier dans l'autre
 

Pièces jointes

  • BON EXPORTATION PLATEAU REPAS.xlsm
    46.4 KB · Affichages: 6

Dudu2

XLDnaute Barbatruc
Tu prends exemple sur le fichier en Post #27 (à reprendre car modifié pour une petite correction si vbModeless) dans lequel la mise en œuvre est très simple.

Il faut intégrer:
- le UserForm_Calendrier
- le Module_Calendrier
Et faire:
Cellule.Value = Calendrier
ou
DateChoisie = Calendrier
If DateChoisie <> 0 then Cellule.Value = DateChoisie


Tu peux aussi utiliser l'une des nombreuses options facultatives du calendrier:
VB:
Public Function Calendrier(Optional Mode As Integer = vbModal, _
                           Optional ModelessGarderOuvert As Boolean = False, _
                           Optional TargetObject As Variant = Nothing, _
                           Optional TargetObjectEnglishDateFormat As String = "dd/mm/yyyy", _
                           Optional FonctionSurDateChoisie As String = "", _
                           Optional DateInitiale As Date = 0, _
                           Optional Texte As String = "", _
                           Optional TexteBackColor As Long = -1, _
                           Optional TexteForeColor As Long = -1, _
                           Optional TexteHeight As Long = -1, _
                           Optional AfficheJoursFériés As Boolean = False) As Date
 
Dernière édition:

Quicksland

XLDnaute Nouveau
Tu prends exemple sur le fichier en Post #27 (à reprendre car modifié pour une petite correction si vbModeless) dans lequel la mise en œuvre est très simple.

Il faut intégrer:
- le UserForm_Calendrier
- le Module_Calendrier
Et faire:
Cellule.Value = Calendrier
ou
DateChoisie = Calendrier
If DateChoisie <> 0 then Cellule.Value = DateChoisie


Tu peux aussi utiliser l'une des nombreuses options facultatives du calendrier:
VB:
Public Function Calendrier(Optional Mode As Integer = vbModal, _
                           Optional ModelessGarderOuvert As Boolean = False, _
                           Optional TargetObject As Variant = Nothing, _
                           Optional TargetObjectEnglishDateFormat As String = "dd/mm/yyyy", _
                           Optional FonctionSurDateChoisie As String = "", _
                           Optional DateInitiale As Date = 0, _
                           Optional Texte As String = "", _
                           Optional TexteBackColor As Long = -1, _
                           Optional TexteForeColor As Long = -1, _
                           Optional TexteHeight As Long = -1, _
                           Optional AfficheJoursFériés As Boolean = False) As Date
Bonjour Dudu2

Voila j'ai exporté le module calendrier et userform calendrier dans mon autre fichier mais je ne vois pas ou je dois mettre le reste

( Cellule.Value = Calendrier ( malgré tout j'ai essayé de mettre dans la cellule du tableau =Calendrier et j'ai eu ceci comme résultat #NOM? )
ou
DateChoisie = Calendrier
If DateChoisie <> 0 then Cellule.Value = DateChoisie )

Désolé si je suis chiant mais je suis très très loin d'avoir tes connaissances avec excel

Merci pour ton aide
 

Discussions similaires