Problème de liste déroulante

Bonjour,

j'ai fait quelques recherches sur votre forum et je n'ai pas pu trouver une solution qui s'apparente au problème de liste déroulante que j'éprouve.

Le fichier joint est un horaire qui dans lequel chaque colonne de la plage B7:L19 sert à assigner des locaux à du personnel en fonction de plages horaire spécifiées. Ces locaux sont listés dans la feuille de calcul "locaux".

Pour chaque colonne de la plage B7:L19, je souhaite que le gestionnaire puisse remplir les colonnes à partir d'une liste déroulante qui offre ces locaux. À date, tout est bien simple.

Le problème que je n'ai pas réussi à résoudre est que je souhaite qu'à chaque fois qu'un local est utilisé, que ce choix soit retiré de la liste déroulante de cette colonne.

Avez-vous des solutions à proposer?

Merci d'avance.

bonjour

voila ( normalement )

les plages sont dynamiques (extensibles auto)

cordialement

Merci, ça semble fonctionner, mais je ne comprends pas trop comment vous l'avez fait.

Serait-il possible d'avoir une petite explication sommaire du procédé? Question que je puisse le refaire moi-même au besoin.

Votre aide est énormément appréciée!

Bonjour

Salut Tulipe

Dans ton fichier, la salle attribuée est retirée de toutes les listes.

Il me semble, si j'ai bien lu, que le sujet était de la retirer seulement de la colonne?

Cordialement

re

merci ;on est là pour ça

cordialement

Effectivement, le commentaire d'Amadeus est juste. Mon problème n'est pas tout-à-fait réglé. Je souhaite que chaque colonne soit indépendante, mais offre les choix basés sur la même liste.

bonjour Amadeus

tu as certainement raison ; dans ce cas; cela imposerai de creer une "matricielle" par colonne du tabo 28 janvier ;soit 11 ,ce n'est pas la mer a boire ; le hic c'est comment parer les eventuels chevauchement horaires et.... là ce n'est plus le meme ouvrage

pourvu que ce ne soit pas l'objet d'un futur post

cordialement

aie ! je viens de voir le dernier post

Bonjour

Plus simple, une validation de données par colonne interdisant la saisie de doublon dans la même colonne?

Cordialement

re

colonne par colonne

Amadeus

heu ...... comment faire pour ta soluce sans perdre le choix (liste ? ou personnalisé ?)

cordialement

Edit Amadéus: Exact Tulipe, ou c'est l'un ou c'est l'autre ou il faut saisir en dur.

J'ai déjà essayé avec la matricielle pour chaque colonne et c'est tout un contrat, puisque le fichier que je vous envoie est un exemple. J'ai environ 20 horaires de ce type à produire. Mais si c'est la seule solution, pas le choix. À moins de faire, comme le mentionne Amadeus, une liste de choix non dynamique avec une vérification des doublons.

re

ce serait plus simple

mais comment avec Donnée validation "optionner" pour liste et en paralelle pour personnalisé

c'est le genre de cheval que je ne monte jamais (la derniere fois c'etait sous Tulipe 3.....)

sinon un truc en vba :msgbox ...... peut aussi servir d'alerte (colonne / colonne )

cordialement

Devrais-je refaire une nouvelle demande en formulant le problème à savoir comment avoir deux types de validation de données pour une colonne?

Bonjour,

Je n'ai pas suivi tout le fil, mais si je peux apporter ma petite idée sur la problématique Comment intégrer une liste déroulante qui n'affiche pas les données déjà saisies

Dans le classeur joint :

  • Le tableau SAISIE est l'endroit où les données sont rentrées
  • Le tableau LISTE est l'endroit qui référence les choix de la validation par liste déroulante
  • La colonne LISTE DYNAMIQUE est une plage de cellules qui n'affiche que les valeurs non présentes dans le tableau SAISIE
7Dric a écrit :

Bonjour,

Je n'ai pas suivi tout le fil, mais si je peux apporter ma petite idée sur la problématique Comment intégrer une liste déroulante qui n'affiche pas les données déjà saisies

Dans le classeur joint :

  • Le tableau SAISIE est l'endroit où les données sont rentrées
  • Le tableau LISTE est l'endroit qui référence les choix de la validation par liste déroulante
  • La colonne LISTE DYNAMIQUE est une plage de cellules qui n'affiche que les valeurs non présentes dans le tableau SAISIE

Merci pour le coup de pouce, mais pour un projet de l'envergure que j'entreprends, fabriquer des matrices pour valider le choix de chaque colonne qui doit s'opérer de cette manière représente une tâche beaucoup trop lourde. J'essaie plutôt de trouver une manière de valider les choix tout en trouvant une manière de capturer l'erreur d'entrer des doublons.

re

je me suis fendu d'une touche de vba ( panaché avec fomule en ligne 2 masquée )

a peaufiner

Merci, Tulipe4,

je vais certainement étudier le code derrière la solution pour en ressortir un meilleur adepte d'Excel!

Je me suis rabattu à appliquer une mise en forme conditionnelle pour mettre en surbrillance les doublons, mais ta solution a plus de mérite.

re

tu en a au moins 2 de "potables"

celle avec du vba ne marche que si la ligne n°2 (qui est masquée) est renseignée ;notement la cel A2 chaque colonne a sa matricielle >>penser a valider (ctrl maj entrée ) pour que ça marche ;sinon Somme=0 (c pa bon)

je te conseille vivement de mettre cette usine sur une autre feuille et de nommer la cel de la somme

de plus utilise la procedure Change ( pas selectionchange ) ainsi ce sera toujours la derniere cell qui s'effacera

je suis persuadé qu'il doit y avoir un moyen moins "bricole" helas je suis largé en vba

cordialement ;bonne continuation

Bonjour

A tester (avec un code de Feuille)

Option Explicit
Public Flag As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
If Flag Then Exit Sub
Dim i
i = Target.Column
    If Not Application.Intersect(Target, Columns(i)) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Application.CountIf(Range("a7:a19").Offset(0, i - 1), Target) > 1 Then
            Flag = True
                MsgBox ("Ce code élève existe déjà !")
                Target.ClearContents
            Flag = False
        End If
    End If
End Sub
Amadéus a écrit :

Bonjour

A tester (avec un code de Feuille)

Option Explicit
Public Flag As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
If Flag Then Exit Sub
Dim i
i = Target.Column
    If Not Application.Intersect(Target, Columns(i)) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Application.CountIf(Range("a7:a19").Offset(0, i - 1), Target) > 1 Then
            Flag = True
                MsgBox ("Ce code élève existe déjà !")
                Target.ClearContents
            Flag = False
        End If
    End If
End Sub

Ça fonctionne. Afin d'appliquer ce script à plusieurs plages (sur des feuilles multiples), serait-il possible de changer le range de la ligne 6, qui est fixe, pour une plage sélectionnée? Je vais essayer de bidouiller avec le code, mais ça semble fonctionner.

Merci!

Rechercher des sujets similaires à "probleme liste deroulante"