Gestionnaire des noms

Résolu
Bonjour à vous tous.

J'ai une liste de noms qui me sert pour ma liste déroulante de la validation des données dans une userform que j'ai nommé "NOM" dans le gestionnaire des noms et qui correspond au cellule A1: A25
Si je rajoute deux noms, il faut penser aller modifier le gestionnaire de noms pour qu'il les prenne en compte et que la référence devienne A1: A27.
Est-t-il possible de créer une macro pour automatiser cette mise à jour et l'inclure dans une autre macro que j'utilise.

Suis-je clair ?
Merci

8 réponses

  1. Re,

    oui c'est cela, en fait il n'y a pas de déplacement on reste sur la même cellule.
    entre le premier ; et le second ; désigne la ligne et entre le second et le troisième ; désigne la colonne ;;;
    en fait pour tester la fonction saisi une valeur dans chaque cellule d'une plage en A1 à D10

    dans une cellule exemple en F5 écrit celle formule
    =DECALER(Feuil1!$A$1;;;)
    puis change les valeurs entre les ;

    comme
    =DECALER(Feuil1!$A$1;2;1;)

    etc ...
    et regarde la valeur que te retourne la formule

    =NBVAL(Feuil1!$A:$A) retourne le nombre de valeur dans la colonne
    si tu as des valeurs jusqu'à la cellule A10, =NBVAL(Feuil1!$A:$A) retournera 10

    le résultat obtenu par la formule est donc A1:A NBVAL(Feuil1!$A:$A) en clair A1:A10

    si tu colle cette formule dans une cellule de la première ligne
    =DECALER(Feuil1!$A$1;;;NBVAL(Feuil1!$A:$A))
    et incrémente là vers les bas
    la formule te retournera la valeur qui se trouve sur la même ligne colonne A et se mettra en erreur lorsqu'elle rencontrera une cellule vide en colonne A et retournera #VALEUR!

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
    1. MIKE-31
      Merci
      mon cher maître voilà ce que j'ai cru comprendre
      si je mets ;1;2; je vais décaler d'une ligne et de 2 colonnes
      en mettant;0;0; ou tout simplement ;;; je reste sur la même colonne.
      ai-je 20/20

      merci pour tout et a+
      0
      1. Re,

        Ne te complique pas , fait comme cela

        Worksheets("Feuil1").Range("A2:A" & Range("A65536").End(xlUp).Row).Sort Key1:=Range("A2")

        explique ce que tu as trouvé comme explication sur le trois ;;; voir si c'est ça
        0
        1. Contributeur
          Bonjour

          Si on prend pour la liste "nom" comme proposé par Mike-31

          ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range( _
          "nom"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
          xlSortNormal
          0
          1. MIKE et les utares re salut

            excuse moi de te déranger à nouveau. D'une part je viens en propulsant les aide excel de comprendre pourquoi on met ;;; dans la formule que tu viens de me proposer.
            J'aurais une autre demande
            Comment puis je remplacer les référence "A2:A34" dans la formule ci dessous pour que les nouvelles lignes insérer dans mon tableau puisse être pris en compte systématiquement dans mon tri.
            ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range( _
            "A2:A34"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortNormal
            Merci si tu peux encore m'ider
            CDLT
            0
            1. Merci les amis
              MIKE-31, ta solution est super. Puis-je te demander pourquoi il faut ;;;. Et est-ce que cette formule peut s'adapter à n'importe quelle référence de cellule dans une macro.
              merci aussi à Philoi10120
              A+
              Cdlt
              0
              1. Contributeur
                Bonjour

                Pour éviter ça, insérer les cellules à l'intérieur de votre liste les adresses de la liste suivront
                0
                1. Bonjour,

                  Tu n'as pas besoin de créer une macro pour cela, à partir du gestionnaire de noms, tu nomme ton champ exemple nom et tu veux faire référence à une plage exemple Feuil1 cellule de A1 à A dernière valeur

                  la formule du à saisir dans le gestionnaire est

                  =DECALER(Feuil1!$A$1;;;NBVAL(Feuil1!$A:$A))

                  et ta liste de validation s'adaptera automatiquement
                  0