Microsoft 365 Validation par liste et fonction personnalisé

  • Initiateur de la discussion Initiateur de la discussion tbft
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

tbft

XLDnaute Accro
Bonjour à tous

J'ai un soucis. J'aimerais utiliser une fonction VBA pour générer une liste de validation.
Pour simplifier les essais (qui ne marche pas), j'utilise la fonction suivante :
VB:
Public Function test_liste()
Dim nb As Integer, i As Integer
Dim res()
  nb = 5
  ReDim res(nb, 1)
  For i = 1 To nb
    res(i, 1) = i
  Next i
  test_liste = res
End Function

J'ai ensuite crée un nom "Test" dont la valeur est "=test_liste()"
Et enfin, je dis que la validation est paramétrer :
Autoriser : Liste
Source : =Test

Pouvez-vous regarder et me dire se que j'ai raté, s'il vous plait?
D'avance merci.
 

Pièces jointes

Solution
re
dans ce cas pas besoin de macro
dans la feuille param j'ai fait une table
puis créer un nom qui définie la table elle peut grandir ou raccourcir tous les chiffres seront prix en compte
et enfin relier la liste de validation avec le nom
a+
Bonjour JP

D'abord merci pour l'aide.

Je viens d'essayer mais la validation de la cellule B2 ne fonctionne pas....
Lorsque j'essaye de la mettre en place, j'obtiens le message :
La source est reconnu comme erroné. Voulez-vous continuer ?

Par contre je ne sais pas pourquoi ma "source" est erroné..????...????
 
Re,

un autre essai pour ne pas dire un autre échec...
VB:
Public Function test_liste()
Dim nb As Integer, i As Integer
Dim res() ' As Range
Dim tp
  nb = 5
  ReDim res(nb)
  For i = 1 To nb
    res(i) = i
  Next i
  tp = Join(res, ",")
  test_liste = tp
End Function
 
re
si tu veux passer par la liste de validation il te faut une zone de range
si tu veux mettre la function tu mets une liste déroulante et tu l'incrémentes avec

Private Sub ComboBox1_GotFocus()
Me.ComboBox1.List() = test_liste()
End Sub

tout dépend de ce que tu veux faire exactement de la suite
a+
 
Bonjour JP

Merci pour la réponse.
Dans mon projet la liste de validation dépend du résultat d'une fonction VBA car trop complexe à faire.
Donc, du coup, je vais utiliser ta philosophie:
+ Nom sur une table
+ VBA pour alimenter la table
+ Validation d'après la table

Inconvénient : réalisation en deux étapes
Avantage : vision direct sur la liste de validation

Donc merci encore pour ton écoute, ton soutien et ton aide
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour