Liste et macro

Bruno87

XLDnaute Nouveau
Bonjour à tous!

J'aurais voulu savoir s'il était possible de récupérer les éléments d'une liste non utilisée.

Je m'explique. Dans une feuille, j'ai créer une liste avec plusieurs éléments.
Cette liste est utilisée dans un autre feuille du même classeur dans une validation de données.
Je remplis cette feuille à l'aide de cette liste.

Le but de la manipulation est de connaitre les éléments de la liste qui n'ont pas été utilisé à l'aide d'une macro qui afficherai le nombre d'éléments non utilisés et leurs dénominations

Merci
 

Bruno87

XLDnaute Nouveau
Re : Liste et macro

Je pense que je me suis mal exprimé. Je joins un fichier pour plus de cohérence.

Dans l'onglet personnel, on trouve une liste du personnel. Chaque liste a le nom suivant:
liste_chef
liste_compagnon
liste_interimaire

Ces différentes listes permettent de remplir l'onglet intitulé planning. Le but de la manoeuvre est de voir s'afficher une fenetre lorsque l'on clique sur le bouton personnel manquant. Dans cette fenetre, on trouverait le nombre d'éléments de la liste qui n'ont pas été attribué et leurs dénominations.
 

Pièces jointes

  • PLANNING MATERIEL beta.xls
    173 KB · Affichages: 40
  • PLANNING MATERIEL beta.xls
    173 KB · Affichages: 42
  • PLANNING MATERIEL beta.xls
    173 KB · Affichages: 46

Dranreb

XLDnaute Barbatruc
Re : Liste et macro

Si on se débrouillais pour ne proposer dans les listes de validation que les élément qui n'ont pas déjà été attribués le même jour, ça conviendrait ? (je ne sais pas encore tout à fait comment on va faire)
À +
 

Dranreb

XLDnaute Barbatruc
Re : Liste et macro

Nouveau module que j'ai appelé "MListeNonPrésents":
VB:
Option Explicit
'

Function Inutilisés(ByVal Liste As Range, ByVal Dans As Range) As Variant()
Dim Te() As Variant, Ts() As Variant, Le As Long, Ls As Long
Te = Liste.Value
ReDim Ts(1 To UBound(Te)) As Variant
Ls = 0
For Le = 1 To UBound(Te)
   If IsEmpty(Te(Le, 1)) Then Exit For
   If Dans.Find(Te(Le, 1), Dans.Item(1, 1), xlValues, xlWhole, xlByRows, xlNext, False, False) _
      Is Nothing Then Ls = Ls + 1: Ts(Ls) = Te(Le, 1)
   Next Le
ReDim Preserve Ts(1 To Ls) As Variant
Inutilisés = WorksheetFunction.Transpose(Ts)
End Function
Il va certainement être utile. Maintenant je vais regarder comment faire dépendre cette liste de la plage sélectionnée
À +
 

Bruno87

XLDnaute Nouveau
Re : Liste et macro

J'ai réussi à faire apparaitre le nombre de personnel manquant mais je n'arrive pas à afficher leurs noms.

Quelqu'un aurait une idée?
 

Pièces jointes

  • PLANNING MATERIEL beta.xls
    191 KB · Affichages: 45
  • PLANNING MATERIEL beta.xls
    191 KB · Affichages: 42
  • PLANNING MATERIEL beta.xls
    191 KB · Affichages: 46

Dranreb

XLDnaute Barbatruc
Re : Liste et macro

Restons concentré sur l'idée en cours, voulez vous ?
J'ai eu beaucoup de mal à limiter une liste de validation aux éléments inutilisés.
J'ai modifié la fonction pour qu'elle rende en premier le nombre d'éléments inutilisés.
Ce nombre est ensuite utilisé pour définir un nom de plage dynamique propre utilisé effectivement dans la liste de validation.
Je note la colonne sélectionnée dans une plage nommée ColSel au moyen d'une Worksheet_SelectionChange
Le mieux c'est que je joigne ce que j'ai fait.
À +
 

Pièces jointes

  • Copie de PLANNING MATERIEL beta.xls
    184.5 KB · Affichages: 36

Bruno87

XLDnaute Nouveau
Re : Liste et macro

Merci pour votre réponse,

Je vais essayer d'adapter cette méthode aux autres listes. Mais il serait intéressant de voir comment l'on peut afficher les éléments manquants dans un message.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 989
dernier inscrit
jralonso