Fonction indirect et liste déroulante en cascade

Bonjour à tous,

Je me tourne vers vous car je cherche a réaliser quelque chose qui ne fonctionne pas parfaitement après visionnage de plusieurs videos.

Je cherche en effet à créer des listes déroulantes en cascades ce que j'arrive a peu près a faire.

Dans mon onglet "liste type acte" j'ai crée 2 tableaux. Le premier avec les actes classiques d'un ergothérapeute et le second avec les actes classiques d'une assistante sociale.

Dans l'onglet "actes" j'ai crée un tableau dont l'une des colonnes permet de rentrer le professionnel qui a réalisé l'acte (l'ergo ou l'as) et dans la colonne suivante on peut choisir le type d'acte. Le fait de choisir "ergo" dans la colonne E devrait me permettre de n'avoir dans la liste déroulante de la colonne F que les actes d'un ergo (tel que définis dans mon onglet "liste type acte"). Pareil pour l'as.

Pour ce faire et sur l'ensemble de la colonne F j'ai crée une validation de données en indiquant liste et en tapant =INDIRECT($E$2) comme source.

Le problème qui se pose c'est que quand j'ajoute une ligne à mon tableau, c'est toujours =INDIRECT($E$2) dans la source de validation. Si je suis sur la ligne H je voudrais que la source soit =INDIRECT($H$2) mais cela semble impossible.

J'ai vu des vidéos qui mentionne la fonction décaler mais j'avoue que je n'ai pas tout compris car dans aucune la présentation du tableau ne ressemblait à la mienne.

Je suis convaincu que ce que je cherche est possible mais je bloque.

Merci d'avance de vos lumières.

Guillaume Durieux

Bonjour à tous,

Une proposition

Bonjour,

Une petite contribution.

On effectue le tri lorsque l'on fait la sauvegarde. pas besoin de demander à l'utilisateur de l'effectuer avant de lancer la sauvegarde.

J'ai revu aussi le nom du fichier.

Cdlt.

Sub FichierSauvegarde()
'Déclaration des variables
Dim tbl As ListObject
Const NomDossier As String = "C:\Users\g.durieux.AND\OneDrive\backup_caamef\"
Dim NomFichier As String

    'Initialisation des variables
    Set tbl = Range("Tableau4").ListObject
    'Tri par nom avant la sauvegarde
    With tbl
        .Sort.SortFields.Clear
        .Sort.SortFields.Add _
                Key:=.ListColumns("Nom").DataBodyRange, _
                SortOn:=xlSortOnValues, _
                Order:=xlAscending
        .Sort.Header = xlYes
        .Sort.Apply
    End With
    'Désactiver les messages d'alertes
    Application.DisplayAlerts = False
    'On créé le nom du fichier de sauvegarde (Date + Nom)
    NomFichier = Format(VBA.Date, "yyyy-MM-dd") & "_backup_caamef.xlsm"
    'On sauvegarde le fichier de backup
    ActiveWorkbook.SaveCopyAs NomDossier & NomFichier
    'On affiche un message de confirmation
    MsgBox "Votre fichier de sauvegarde intitulé : " & NomFichier & vbNewLine & _
           "dans le dossier suivant : " & NomDossier, vbOKOnly + vbInformation, "CONFIRMATION"
    'On quitte Excel
    Application.Quit
End Sub

Bonjour à tous et merci de vos retours.

@DjiDji59430 je ne vois pas ce qui a changé...

@jean eric : je vois ce qui a changé mais ce ne fait pas ce que je voulais car quand je choisis AS dans la liste sur une nouvelle ligne du tableau il m'affiche toujours dans la colonne d'a coté les actes ergo...

Merci encore

Guillaume Durieux

Bonjour à tous,

Le problème qui se pose c'est que quand j'ajoute une ligne à mon tableau, c'est toujours =INDIRECT($E$2) dans la source de validation. Si je suis sur la ligne H je voudrais que la source soit =INDIRECT($H$2) mais cela semble impossible.

C'est où la ligne H ??

désolé, mon clavier a fourché. Je voulais écrire "si je suis sur la ligne 30 je voudrais que la source soit =INDIRECT($E$30)"

Merci

Bonsoir,

J'ai trouvé la réponse, il fallait écrire =INDIRECT($E2) et non =INDIRECT($E$2)

Mon problème est résolu !

Guillaume Durieux

Rechercher des sujets similaires à "fonction indirect liste deroulante cascade"