Gestion des emplacements

Bonjour et meilleurs vœux a tous!! j'ai une petite question pour vous. Dans la feuille ci joint j'ai un tableau faisant référence à des désignations dans des colonnes représentant des emplacements. Le but étant que lorsque que l' on rentre une désignation en H17, l'emplacement de celle ci apparaisse en H18. Avec une formule j'ai réussi à arriver à ce résultat mais le soucis c'est quand la désignation est dans plusieurs emplacements par exemple avec la désignation avion sur ma feuille, ma formule n'autorise qu 'un seul emplacement ... J ai aussi pensé à un tableau comme celui en N13 : AH15 pour cocher automatiquement les cases correspondantes aux emplacements qui permettrait d 'avoir plusieurs emplacements pour la même désignation.

Merci par avance pour les solutions que vous pourrez m 'apporter.

11emplacements.xlsx (11.68 Ko)

Bonjour Ptilo, bonjour le forum,

Par formule je ne sais pas faire...
Si une solution VBA convient, j'ai d'abord transformé ton tableau (plage) en tableau structuré (ListObject) et utilisé l'événementielle Change ci-dessous. Tape un nom dans H17, s'il n'y a qu'un seul emplacement il s'affiche directement, sinon I17 contient une liste de validation de données avec les différents emplacements possibles...

Le code :

Option Explicit 'oblige a déclarer toutes les variables

Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
Dim TS As ListObject 'déclare la variable TS (Tableau Structuré)
Dim I As Byte 'déclare la variable I (Incrément)
Dim J As Byte 'déclare la variable J (incrément)
Dim L As String 'déclare la variable L (Liste)

If Target.Address <> "$H$17" Then Exit Sub 'si le changement a lieu ailleurs que dans H17, sort de la procédure
Target.Offset(0, 1).Value = "" 'efface I17
If Target.Value = "" Then: Target.Offset(0, 1).Validation.Delete: Exit Sub 'si H17 est effacé, supprime la validation de données en I17, sort de la procédure
Set TS = Me.ListObjects(1) 'définit le tableau structuré TS
For J = 1 To TS.ListColumns.Count 'boucle 1 : sur toutes les colonnes J du tableau structuré TS
    For I = 1 To TS.ListRows.Count 'boucle 2 : sur toutes les lignes I du tableau structuré TS
        'si la donnée en ligne I colonne J du tableau struturé (convertie en Majuscules) est égale à H7 (comnvertie en Majuscules)
        'redéfinit la liste L avec la valeur de la donnnée ligne = dernière ligne, colonne J de TS ou la concaténation des valeurs trouvées
        If UCase(TS.DataBodyRange.Item(I, J)) = UCase(Target.Value) Then L = IIf(L = "", TS.DataBodyRange.Item(TS.ListRows.Count, J), L & "," & TS.DataBodyRange.Item(TS.ListRows.Count, J))
    Next I 'prochaine ligne de la boucle 2
Next J 'prochaine colonne de la boucle 1
If L = "" Then MsgBox "Aucun emplacement trouvé !": Exit Sub 'si L est vide, message, sort de la procédure
Select Case UBound(Split(L, ",")) 'agit en fonction du nombre de virgules qu'il y a dans L
    Case 0 'cas aucune virgule
        Target.Offset(0, 1).Value = L 'affiche le resultat directement dans I17
        Target.Offset(0, 1).Validation.Delete 'supprime une éventuelle liste de validation de données dans I17
    Case Else 'tous les autres cas
        With Target.Offset(0, 1).Validation 'prend en compte I17
            .Delete 'supprime une éventuelle liste de validation de données
            .Add xlValidateList, Formula1:=L 'délinit la liste L comme liste de validation de données
        End With 'fin de la prise en compte de I17
End Select 'fin de l'action en fonction du nombre de virgules qu'il y a dans L
Target.Offset(0, 1).Select 'sélectionne I17
End Sub

Le Fichier :

18ptilo-ep-v01.xlsm (24.33 Ko)

Super!! Merci ThauTheme, c'est vraiment top comme ca!!

Bonjour,

Tes données sont organisées comme une vulgaire feuille de papier : Avec ça tu vas te pourrir la vie avec des formules et des macros compliquées.

Ça ne sert à rien d'acheter un ordi et de s'en servir comme d'une feuille de papier :

Tu devrais songer à organiser tes données comme ça :

ts

L'exploitation ultérieure s'en trouverait grandement simplifié...

A+

Merci galopin c est exactement ce que je fais au final mais sur Excel pratique tu n est pas sans savoir qu il ne faut pas mettre les choses exactement ni donner des informations confidentielles... c est néanmoins très sympa de m aider sur des brouillons « de papier « pour que je les mettes au propre après 👍

Bonsoir,

Ne pas donner d'info confidentielles, on ne peut qu'approuver.

Ne pas mettre un modèle exactement identique à l'original est absurde !

A+

C est super de pouvoir échanger avec des personnes compétentes comme toi qui visiblement arrivent sans soucis, au vue des captures d écrans que tu montres, à faire des choses qui m ont faites galérer pendant plusieurs heures, cela dit un petit retour avec des critiques constructives c est bien et j approuve mais avec un petit fichier pour apprendre aux novices comme moi ne serait il pas mieux?

Bonsoir le fil, bonsoir le forum,

J'ai cru que le cirque Plinder était passé dans ma petite ville tellement j'ai trouvé ça gonflé !...

Rechercher des sujets similaires à "gestion emplacements"