Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/12/2011, 09h43   #1
Membre habitué
 
Avatar de issoram
 
Homme Zeco
Développeur informatique
Inscription : janvier 2009
Messages : 222
Détails du profil
Informations personnelles :
Nom : Homme Zeco
Localisation : France, Saône et Loire (Bourgogne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2009
Messages : 222
Points : 125
Points : 125
Envoyer un message via MSN à issoram
Par défaut fonction personnalisée pour validation de données

Bonjour,

Encore moi....
Je n'arrive pas à utiliser une fonction personnalisée pour une validation de données par liste.
Par exemple la fonction ci dessous (qui ne sert à rien certes mais c'est pour l'exemple):
Code :
1
2
3
Function test(plage As Range) As Range
    Set test = plage
End Function
Si dans validation des données je sélectionne "liste" et que dans source je tape j'obtiens l'erreur suivante:
Citation:
"Impossible de trouver une plage nommée que vous avez spécifiée"
Jusqu'à maintenant j'utilisais que des fonctions Excel (DECALER, INDIRECT ....) sans aucun problème.
Y'a t'il une astuce pour les fonction persos?

Merci d'avance pour vos réponses.
issoram est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 10h30   #2
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
On peut faire presque ça de la manière suivante. Après ça dépend de la problématique exacte.

On crée la fonction qui renvoie l'adresse au lieu du range :
Code :
1
2
3
Public Function testRange(r As Range) As String
    testRange = r.Address
End Function
On définit une plage nommée testPlage par exemple :
Code :
=INDIRECT(testRange(Feuil1!$A$1:$A$3))
Et on utilise cette plage comme liste de validation.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 14h07   #3
Membre habitué
 
Avatar de issoram
 
Homme Zeco
Développeur informatique
Inscription : janvier 2009
Messages : 222
Détails du profil
Informations personnelles :
Nom : Homme Zeco
Localisation : France, Saône et Loire (Bourgogne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2009
Messages : 222
Points : 125
Points : 125
Envoyer un message via MSN à issoram
Ben je voulais éviter les plages nommées justement...

Mais merci pour la réponse
issoram est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 15h39   #4
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Après, tu peux toujours utiliser ta fonction perso pour remplir une zone de la feuille et utiliser cette zone dans la liste de validation. Mais malheureusement, je ne pense pas qu'il y aura mieux.
__________________
« Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer
« Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2011, 09h06   #5
Membre habitué
 
Avatar de issoram
 
Homme Zeco
Développeur informatique
Inscription : janvier 2009
Messages : 222
Détails du profil
Informations personnelles :
Nom : Homme Zeco
Localisation : France, Saône et Loire (Bourgogne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2009
Messages : 222
Points : 125
Points : 125
Envoyer un message via MSN à issoram
Oui effectivement ce n'est pas optimal.

Tant pis je vais tenter de le faire uniquement avec des fonctions Excel.

Merci pour tout.
issoram est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h33.


 
 
 
 
Partenaires

Hébergement Web