Formule de validation de données par macro

Youri

XLDnaute Occasionnel
Bonjour à toutes et à tous,

Est-il possible d'insérer une formule dans une validation de données par macro ?

En fait, pendant que j'enregistrais une macro, j'ai inséré une formule dans une validation de données d'une cellule mais lorsque j'ai relancé la macro : elle ne fonctionnait plus (c'est quand même très étrange car il s'agit d'une macro enregistrée).

Je vous remercie à l'avance pour votre aide,
Youri
 

Youri

XLDnaute Occasionnel
Re : Formule de validation de données par macro

Bonjour Pierrot,

Voici un fichier qui illustre mon problème.
J'ai ouvert un classeur, lancé tout de suite l'enregistrement d'une macro et sauvegardé le fichier juste après avoir cliqué sur le bouton d'arrêt de l'enregistrement.
La macro est donc sensée reproduire tout ce que j'ai fait après avoir ouvert le fichier. Seulement voilà, si on efface toutes les données et qu'on relance la macro, on obtient l'erreur 1004 ...
La validation est contenue dans la cellule verte et la macro plante quand elle veut à nouveau y entrer les formules de validation.

Merci à l'avance,
Youri
 

Pièces jointes

  • classeurtest.xls
    22.5 KB · Affichages: 190
  • classeurtest.xls
    22.5 KB · Affichages: 184
  • classeurtest.xls
    22.5 KB · Affichages: 198
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Formule de validation de données par macro

Re

rien de mieux à te proposer que de passer par une plage nommée, regarde le code ci dessous :

Code:
ActiveWorkbook.Names.Add Name:="maliste", RefersToR1C1:= _
        "=IF(COUNTA(Feuil1!R4C2:R10C2)=0,"""",Feuil1!R4C2:R10C2)"
With Range("D4").Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=maliste"
End With

bonne soirée
@+
 

Youri

XLDnaute Occasionnel
Re : Formule de validation de données par macro

Bonjour Pierrot, Bonjour le forum,

Merci beaucoup pour cette solution qui m'a fait apprendre une nouvelle méthode. Mais bon, ça ne résout pas mon problème car si la plage d'origine est reconnue comme erronée, même cette méthode ne fonctionne pas.
Donc je crois que je vais procéder de la manière suivante :
1. Je vais externaliser au maximum mes formules de validation vers des cellules temporaires.
2. Je vais m'assurer que les cellules sources de la validation contiennent des données valides.
3. Je vais créer les règles de validation.
4. Je vais insérer les formules externalisées précédemment dans les cellules sources des règles de validation.
De cette manière, je contourne le problème, mais c'est quand même moche ...

Bonne journée,
Youri
 

Pierrot93

XLDnaute Barbatruc
Re : Formule de validation de données par macro

Bonjour Youri, Excel Lent

@Excel Lent
je pense que la problématique est de mettre par vba une formule dans une liste de validation et non une plage de cellules. Car là, ta plage est fixe et ne tiendra donc pas compte du conditionnement.

Personnellement je n'y suis pas arrivé directement, "l'astuce" consistant à passer par une plage nommée dans laquelle tu mets la formule...

bonne journée
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS