Choix préférentiel liste déroulante

Bonsoir,

Je reviens vers vous pour mon classeur Budgétaire. Quand on clique en cellule C4 de l'onglet "Ferme_Pédagogique" ou "Centre_Animation_Jeunesse", cela ouvre un formulaire super pratique qui va aller chercher les références dans le Budget Général que pour les lignes ou il y a des montants. A partir de la cellule C7 de ces mêmes feuilles, on a une liste déroulante de l'ensemble des articles comptables contenus dans la feuille "Nomenclature_Comptable".

Est-ce qu'il serait possible d'obtenir le même résultat qu'avec le formulaire, c'est à dire au moment ou j'ouvre la liste déroulante, qu'il n'aille chercher que les articles ou il y a des montants ? Cela permettrait d'être plus efficace, plutôt que de chercher parmi toute la liste l'article comptable qui nous intéresse.

D'avance, encore un grand merci pour toutes vos interventions et les solutions proposées, bien cordialement, Chti59xcel

Bonjour User_925,

Un essai :

J'ai ajouté la feuille "Tempo" où il est écrit la liste dynamique des codes qui ont un montant.

Cette liste sera "LaListeValidation" de la colonne "C" des feuilles "Ferme_Pédagogique" et "Centre_Animation_Jeunesse".

J'ai aussi ajouté le "module1".

Cette liste s'adapte en changeant de feuille (Ferme_Pédagogique et Centre_Animation_Jeunesse).

Dans chacune de ces deux feuilles, la liste de validation pointe vers la feuille "Tempo" colonne "A".

La taille de "LaListeValidation" est dynamique (nombre de lignes).

Bizz

Bonjour,

Merci pour ton retour, je viens de regarder les macros pour essayer de comprendre le fonctionnement que tu as mis en place.

J'ai vu le cheminement entre la référence "LaListeValidation" et la feuille "Tempo", ok. Normalement, quand on ouvre la liste déroulante à partir de la cellule C7 dans la feuille "Ferme_Pédagogique" par exemple et qu'on choisit un élément de la liste, il devrait afficher en cellule F7 de la même feuille le montant alloué et non #VALEUR!

Il y a peut être un réglage de renvoi à une référence qui ne se fait pas ?

Dans la macro Module2, j'ai vu en fin de macro les lignes suivantes :

Sheets("Ferme_Pédagogique").Select
ChDir "C:\Temp\User95"
ActiveWorkbook.SaveAs Filename:= _
"C:\Temp\User95\preparation-budgetaire-2025-version-test-3.xlsm", FileFormat _
:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Sheets("Centre_Animation_Jeunesse").Select
Range("C15").Select
Application.CommandBars("Selection").Visible = False
Range("C8").Select
Sheets("Ferme_Pédagogique").Select
ActiveWorkbook.Save
Sheets("Budget_Général").Select

Dans mon classeur officiel, j'ai 45 feuilles de saisies comptables qui sont possibles. Du coup, je me demande comment va s'écrire la suite de la macro.

Encore merci pour ton aide, bien cordialement, Chti59xcel

Bonjour User_925,

Pour la formule en F7, je vais regarder, mais je suis pourri en formule.

Je regarde pour la macro du module2.

Bizz

Re bonsoir,

J'ai intégré une feuille supplémentaire pour voir le fonctionnement de la page Tempo et effectivement, la liste déroulante s'adapte à la nouvelle feuille, donc peut être qu'il n'est pas nécessaire de toucher à la macro Module2 même s'i l'on ajoute d'autres feuilles ?

Reste à voir comment, il est possible d'aller cherche l'information concernant le montant ?

Merci pour l'aide apportée, cordialement, Chti59xcel

Bonjour,

Autre détail important pour le fonctionnement de ce classeur. Pour une meilleure lisibilité à l'utilisation, il est nécessaire s'il te plait que le code du plan comptable apparaisse devant l'intitulé dans les feuilles "Ferme_Pédagogique" et "Centre_Animation_Jeunesse" et les autres feuilles ensuite lorsqu'il sélectionne la liste déroulante à partir de la cellule7 comme par exemple 60623 : Alimentation ou 6067 : Fournitures scolaires et ainsi de suite pour toute la liste.

D'avance, merci, bonne journée, bien cordialement, Chti59xcel

Bonjour User_925,

Le module2 a servi à des tests, il peut être supprimé.

La feuille "Tempo" peut être masquée.

Ajout du numéro du compte devant le nom du compte dans la liste déroulante de choix.

Sub ListeCodes()
    Dim nLig As Long, Ws As Worksheet, X As Integer
    Dim nCol As Integer, Dlig As Integer

    Set Ws = Worksheets("Tempo")
    X = 1

    With Ws.Range("LaListeValidation")
        .ClearContents ' Vide le contenu du champ
    End With

    With ThisWorkbook.Worksheets("Budget_Général")
        ' détermine la 1ère colonne du budget concerné (recherche à partir du libellé)
        nCol = Application.Match(gcBudget, .Rows("5:5"), False)
        ' Parcours des lignes du budget général
        nLig = 8
        While .Cells(nLig, 1).Value <> ""
            If .Cells(nLig, nCol + 2).Value <> 0 Then
                Ws.Cells(X, "A").Value = .Cells(nLig, 1).Value & " - " & .Cells(nLig, 2).Value ''< modif Bizz
                X = X + 1
            End If
            nLig = nLig + 1
        Wend
        Dlig = Worksheets("Tempo").Cells(Rows.Count, "A").End(xlUp).Row
        ActiveWorkbook.Names.Add Name:="LaListeValidation", RefersToR1C1:= _
            "=Tempo!R1C1:R" & Dlig & "C1"
    End With
    Set Ws = Nothing
End Sub

Bizz

Bonjour,

Merci pour ces modifications et cette nouvelle macro. J'ai suivi la procédure comme demandé, c'est à dire, j'ai enlevé la macro Module 2 et j'ai intégré le contenu de ta nouvelle macro, ça fonctionne, c'est super, merci !

Par contre, quand on clique sur la cellule C4 d'une feuille comme par exemple "Ferme_Pédagogique", la macro liée au UserForm plante ?

Je te joins le fichier modifié, d'avance, merci pour cette performance, bien cordialement, Chti59xcel

Bonjour User_925,

Ici, ça fonctionne correctement.

Essai ceci : gcBudget = ActiveSheet.Range("C2") au lieu de gcBudget = Range("C2")

Ctrl + H (sélectionner aussi : "Current Project") pour modifier rapidement toutes les instances de tous les modules.

Bizz

Merci pour les infos, j'ai essayé, mais ça ne fonctionne pas, ça bug quand même et je ne suis même pas sûr d'avoir bien effectuer la démarche....

Je suis dépassé au niveau compétences pour transformer de moi même je pense les lignes de macro dans les 3 feuilles qui servent à passer des commandes, désolé.

Je t'avais mis mon fichier dans le précédent message pour vérifier si tu veux bien pourquoi ça plantait quand on clique sur la cellule C4

D'avance, merci pour ton intervention, bien cordialement, Chti59xcel

Bonjour User_925,

Teste ce fichier s'il se comporte mieux.

S'il y a encore une erreur, note l'erreur ou le lieu où elle se présente, un imprimé-écran peut-être ...

Bizz

Re bonjour,

Non, il fait des caprices identiques, je te joins une capture d'écran

Merci pour tout, à bientôt, cordialement, Chti59xcel

bug macro

Bonjour User_925,

Un autre essai :

Bizz

Re bonjour,

Bon, quand ça veut pas, ca veut pas............bouhhhh, je te joins l'imprime écran. Je dois partir en réunion, je revois ça en fin de journée de chez moi.

Merci pour ton soutien, bien cordialement, Chti59xcel

bug macro 2

Bonjour User_925,

Est-ce que la suite Windows 365 (Office 365 de son ancien nom) est-il bien à jour ?

Un dernier essai :

Bizz

Bonjour User_925,

Est-ce que la suite Microsoft 365 (Office 365 de son ancien nom) est-il bien à jour ?

Pas Windows 365.

Bizz

Hello, ça y est je suis de retour !

Je viens de télécharger ton classeur test 6 et sur mon PC maison, ça fonctionne.

Donc, je vais basculer dans mon classeur officiel toute la procédure que tu as développé et je reviens vers toi pour te dire ce qu'il en est au niveau résultat des différentes fonctionnalités

Petite question pratique, comment tu fais pour vérifier ta version Excel ?

Un grand merci pour ce dernier envoi de fichier, à bientôt, bien cordialement, Chti59xcel

Bonjour User_925,

Voir quelle version de Excel : Fichier / Compte / À propos de Excel / voir la ligne en gras au haut de la fenêtre.

Mettre à jour : Fichier / Compte / Options de mises à jour / Mettre à jour.

Bizz

Bonjour,

Ce matin, j'ai mis le classeur officiel à jour sur mon PC maison avec la création de la feuille "Tempo" et toutes les macros et ça fonctionne impeccable.

J'ai même fait un test avec la 1ère version de la macro pour le UserForm avant que tu ne m'envoi une version test n°6 et ça fonctionne aussi.

J'arrive au boulot, je balance sur mon PC portable et là, certaines macros ne fonctionnement plus et la liste déroulante dans les feuilles n'affichent pas la réalité. L'affichage du UserFom fonctionne, mais dans liste déroulante, il n'affiche que 2 lignes, même si dans l'affichage du UserFom, il y a 4 ou lignes de dépenses possibles..

Je te mets l'imprime écran de ma version Office sur mon PC travail.

A bientôt, merci pour tout, cordialement, Chti59xcel

version office

Bonjour User_925,

Je ne saurais pas comment t'aider à rétrograder le code.

Une solution "buldozer" est de mettre à jour la version de Excel au bureau.

Désolé.

Bizz

Rechercher des sujets similaires à "choix preferentiel liste deroulante"