Liste de choix et gestion sur deux onglets

Bonjour,

J'ai un problème qui me parait simple mais je ne connais pas les fonctions excel capables de m'aider donc je fais appel à votre générosité

Mon problème est le suivant :

J'ai crée un "base de données" qui correspond à des équipements que j'utilise en labo. Pour me faciliter le choix de ces équipements en fonction du test que je dois réaliser j'ai mis cette base dans un premier onglet d'un fichier excel et dans un deuxième onglet je souhaite créer un tableau avec des listes déroulantes ou le choix dans les colonnes suivantes diminue en fonction des premières colonnes choisies.

Pour expliquer mon propos j'ai crée le fichier exemple en pièce jointe :

C'est l'onglet "liste" que j'ai besoin d'améliorer; dans la case "choix1" je veux récupérer les "choix1" de l'onglet "base" soit "a" ou "b".

Si j'ai choisi le "a", je souhaite que les option pour "choix2" se limitent à "c","d" ou "e" de l'onglet "base". et ainsi de suite...

Je ne sais pas si j'ai été assez clair. N'hésitez pas à me demander plus de précision et merci de vous pencher sur mon problème.

19exemple.xlsx (8.82 Ko)

Bonjour,

1 exemple avec fonction "Indirect" et plages nommées.

+ d'infos si intéressé et si j'ai bien compris la question.

Cdlt.

Sur le principe, cela semble être ce que je cherche. Pour être sur j'aimerais que vous m'expliquiez comment vous avez créé les listes afin de voir si je peux l'appliquer à mon projet. C'est quoi cette fonction "Indirect"?

Merci.

Bonsoir,

1) Tous les champs de la Feuille "Base de données" sont nommés.

---> voir menu "Formules", "Gestionnaire de noms".

Dès l'introduction de nouvelles donnée en colonne,l'action sur le bouton met à jour les listes déroulantes (en redéfinissant les plages)

Une colonne ou plusieurs colonnes peut être ajoutées.

Option Explicit
Private Sub cmd1_Click()
Dim sH As Worksheet
Dim Noms As Variant
Dim derLigne As Integer
Dim derColonne As Integer
Dim Plage As Range
Dim i As Integer

    Application.ScreenUpdating = False
    Set sH = Worksheets("Base de données")
    For Each Noms In ActiveWorkbook.Names
        Noms.Delete
    Next
    With sH
        'dernière colonne non vide de la ligne 1
        derColonne = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
        For i = 1 To derColonne Step 1
            'dernière ligne non vide de chaque colonne
            derLigne = Columns(i).Find("*", , , , xlByColumns, xlPrevious).Row
            'on sélectionne la plage et on la nomme
            Set Plage = Range(Cells(1, i), Cells(derLigne, i))
            Plage.CreateNames Top:=True, Left:=False, Bottom:=False, Right:=False
        Next i
    End With
    Set Plage = Nothing
End Sub

2) Ensuite tu cherches "fonction Indirect" dans l'aide Excel, et repères particulièrement le passage pour les "champs nommés"

=INDIRECT($A$4) Si la cellule B4 comprend le nom défini « Georges », la valeur du nom défini est renvoyée (10 

En espérant t'avoir été utile. A te relire, le cas échéant.

Cdlt

Merci beaucoup,

Je vais potasser tout ça..

bonjour

un essai

30edjo.zip (7.11 Ko)

teste ;si ok on fera propre

cordialement

oups ! il est passé du monde entre temps

Rechercher des sujets similaires à "liste choix gestion deux onglets"