XL 2021 Suppression automatique d'une donnée utilisée dans une liste déroulante

GJ23

XLDnaute Nouveau
Bonjour à tous,

Je suis actuellement entrain de travailler sur un formulaire automatisé avec des macros.

Je souhaiterai que sur mon formulaire (page 2), lorsque je sélectionne une donnée de la liste déroulante "mission", après avoir utiliser le bouton "valider ma mission", que celle-ci disparaisse de la liste déroulante afin que la donnée ne soit utilisée une seule fois.

Pouvez-vous m'aider svp ?

Je vous joins l'ébauche mon formulaire.

Par avance, merci.

Cordialement.
 

Pièces jointes

  • REMPLA HOPAD (MACROS).xlsm
    334.8 KB · Affichages: 11
Solution
Bonjour

De base il est plus que conseillé
  • d'utiliser les tableaux structurés pour tout ce qui est liste
  • d'éviter les select dans le code (manifestement créé par l’enregistreur macros et non corrigé
Une proposition ci-joint avec :
  • mise en tableaux structurés correctement nommés
    • du tableau des agents inscrits
    • des source des listes déroulantes (on ne mélange pas des sources de listes déroulantes)
  • tri des listes déroulantes (il est désagréable de choisir dans une liste non triée
  • nommage de tout ce qui est utile :
    • sources des listes déroulantes
    • champs de saisie du formulaire
  • création des missions non pourvues via PowerQuery avec actualisation lors du choix du service concerné dans...

Dudu2

XLDnaute Barbatruc
Bonjour,
Je ne vois pas comment gérer ça avec des listes de validation de données.
Il faut faire plutôt des ComboBox Active X dont les listes de valeurs sont gérées par le code qui élimine celles déjà utilisée dans le bouton Valider.
 

job75

XLDnaute Barbatruc
Bonjour Gj23, Dudu2,
Je ne vois pas comment gérer ça avec des listes de validation de données.
A priori ce n'est guère compliqué, insérez ce code au début de la macro VALIDATION_MISSION :
VB:
Dim service$, mission$, c1 As Range, c2 As Range
service = Range("C12")
mission = Range("E12")
Set c1 = Sheets("MISSIONS REMPLA").Cells.Find(service, , xlValues, , xlWhole)
If Not c1 Is Nothing Then
    Set c2 = c1.Resize(100).Find(mission)
    If Not c2 Is Nothing Then
        c2 = "" 'vide la cellule
        c1.Resize(100).Sort c1, xlAscending, Header:=xlYes 'tri
    End If
End If
Et pour que la liste de validation en E12 de la feuille "FORMULAIRE DES MISSIONS" ignore les cellules vides, modifiez la formule de validation :
Code:
=DECALER(INDIRECT($C$12);;;NBVAL(INDIRECT($C$12)))
A+
 

chris

XLDnaute Barbatruc
Bonjour

De base il est plus que conseillé
  • d'utiliser les tableaux structurés pour tout ce qui est liste
  • d'éviter les select dans le code (manifestement créé par l’enregistreur macros et non corrigé
Une proposition ci-joint avec :
  • mise en tableaux structurés correctement nommés
    • du tableau des agents inscrits
    • des source des listes déroulantes (on ne mélange pas des sources de listes déroulantes)
  • tri des listes déroulantes (il est désagréable de choisir dans une liste non triée
  • nommage de tout ce qui est utile :
    • sources des listes déroulantes
    • champs de saisie du formulaire
  • création des missions non pourvues via PowerQuery avec actualisation lors du choix du service concerné dans le formulaire
  • refonte du code VBA
 

Pièces jointes

  • REMPLA HOPAD.xlsm
    346.1 KB · Affichages: 7
Dernière édition:

Dudu2

XLDnaute Barbatruc
Bon, j'y vais de ma version et j'y ai mis du temps car le code était TRÈS LOIN du compte. avec ces copies de Macros qui sont tout sauf du code et que j'ai viré.
  1. Insertion d'un tableau structuré pour la liste des inscrits (sans ça c'est le b... azar !)
  2. Insertion de tableaux structurés pour la liste des missions par service (sans ça c'est ...)
  3. Je n'ai pas introduit de tableaux structurés pour les autres tables car non utilisée dans le code que j'ai fait
  4. Paramétrage par constantes des positions de cellules et de noms de feuilles.
  5. Ajout d'un petit utilitaire pour simuler une saisie validation par Combobox
  6. Retrait de la liste de validation (ComboBox) des valeurs déjà présentes dans le tableau de la liste des inscrits
Edit: Fichier supprimé, voir plus loin...
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
La version de base de la Validation par ComboBox dynamique simulant liste de validation je ne l'ai pas mise en ressource. Donc pour ceux que ça intéresse...
 

Pièces jointes

  • VBA Validation par ComboBox dynamique simulant liste de validation V1.xlsm
    49.7 KB · Affichages: 0

Discussions similaires

Réponses
8
Affichages
437

Statistiques des forums

Discussions
312 207
Messages
2 086 246
Membres
103 163
dernier inscrit
Pelaez