Où le texte de validation des données est-il stocké dans Excel?

9

J'ai une feuille Excel 2003 avec beaucoup de règles de validation des données différentes. Existe-t-il de toute façon qu'ils peuvent être consultés autrement que via la boîte de dialogue de validation des données habituelle?

Il serait utile d'exporter une liste avec des alertes d'erreur de validation et des règles, et de vérifier cette liste plutôt que via la boîte de dialogue.

Quelqu'un sait si cela est possible? Ou comment construire une macro pour ce faire?

Si cette question devait être migrée vers StackOverflow, comment procéder?

datatoo
la source
1
c'est une excellente question. L'objet Validation n'est pas comme l'objet Names - la validation est liée à une plage spécifique. Hmmm ...
DaveParillo

Réponses:

4

Il existe un objet de validation VBA Excel, associé à la plage. Voir le code:

With Range("e1").Validation
.Add Type:=xlValidateWholeNumber, _
    AlertStyle:=xlValidAlertInformation, _
    Minimum:="5", Maximum:="10"
.InputTitle = "Needs Wholenumber"
.ErrorTitle = "Integers"
.InputMessage = "Enter an integer from five to ten"
.ErrorMessage = "You must enter a number from five to ten"
End With

Ces propriétés sont lisibles afin que vous puissiez extraire le .InputTitle ou .InputMessage ou les valeurs min et max autorisées pour la validation de cette cellule par programme, pour voir quel validadtion est utilisé.

Essaye ça:

Sub test()
Range("a1") = Range("e1").Validation.InputTitle & ": Range = " & Range("e1").Validation.Formula1 & " to " & Range("e1").Validation.Formula2
End Sub

Le code ci-dessus revient à la cellule A1: Needs Wholenumber: Range = 5 to 10 . Voir les livres en ligne pour plus d'informations. http://msdn.microsoft.com/en-us/library/aa224495(office.11).aspx

Glenn

Glenn M
la source
1
Il s'agit d'Excel 2007, mais je pense que le modèle 2003 sera similaire à celui-ci.
Glenn M
c'est l'approche de base que j'ai utilisée. la plage A1: AZ4000 a été testée avec Pour chaque cellule de la plage, collectant les Validation.ErrorTitle et Validation.ErrorMessage avec leurs cellules.adresses et il a été écrit sur une autre feuille pour voir les résultats. Ensuite, je pourrais écrire des règles conditionnelles pour changer les messages et les titres. Beaucoup de plaisir héritant de quelqu'un d'autre avant le travail. Merci Glenn, pas exactement ce dont j'avais besoin, mais utile +1. Si quelqu'un sait où tout cela est stocké dans le classeur, je suis toujours très curieux.
datatoo
Demandez-vous où il est stocké dans le fichier binaire BIFF8?
dkusleika
Je ne sais pas comment ni où il est stocké, car il existe un certain nombre de plages de cellules dans une feuille donnée. Surtout, je voudrais un moyen simple d'éditer le contenu qui est stocké. Vous pouvez accéder à l'information, mais indirectement.
datatoo