Bonjour à tous,
Je travaille sur un outil Access 97-2003 (Littéralement les moyens du bords!) dont l'une des fonctions doit me permettre de générer depuis ma base de données environ 3000 fichiers Excel avec une mise en forme spécifique, etc.
Le point essentiel étant que pour chaque fichier Excel je créé un onglet supplémentaire (ValuesList) recevant différentes listes de valeurs (une liste par colonne, partant de A à un nombre variable de colonne selon le fichier) que j'utilise comme source pour différente liste de validation que je créé dans l'onglet principal (MOD_XXXX)
Le tout géré par une macro Access (un pousse-bouton assez simple).
J'ai développé le code qui me permet de tout générer automatiquement SAUF la création de la ValueList!!!Actuellement mon code créé bien le deuxième onglet, les listes de valeurs que je souhaite utiliser mais la fonction .Cells().Validation... Ne semble pas fonctionner :s En voici une idée :
'Je créé ensuite une boucle qui va créer dans l'onglet principal une liste de validation par colonne que j'utilise. Au sein de chaque itération, pour la création d'une liste de validation, voici le code que j'utilise (L, M, N sont les Integers me permettant de sélectionner les cellules et colonnes concernées par l'itération) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Dim xls As Object Dim oWkb As Object Dim oWSht As Object Dim oWSht2 As Object ' Définition des différents paramètres et ouverture du fichier Excel Source Set xls = CreateObject("Excel.Application") Set oWkb = xls.Workbooks.Open(CurrentProject.Path & "\" & Nom_Fichier & ".xls") Set oWSht2 = oWkb.Worksheets(Nom_Onglet_Généré_Automatiquement) Set oWSht = oWkb.Worksheets.Add oWkb.ActiveSheet.Name = ("ValuesList") '... Génération des données de l'onglet principale et liste de valeur.....
Cette fonction me retourne l'erreur 1004 : erreur définie par l'application ou par l'objet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 With oWSht2.Cells(3, M).Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation, Operator:=xlEqual, Formula1:="=ValuesList!$" & Left(oWSht.Columns(L).Address(ColumnAbsolute:=False), 1) & "$1:$" & _ Left(oWSht.Columns(L).Address(ColumnAbsolute:=False), 1) & "$" & N .IgnoreBlank = True .InCellDropdown = True .InputTitle = "Sélection" .ErrorTitle = "" .InputMessage = "Choisissez une valeur" .ErrorMessage = "" .ShowInput = True .ShowError = True End With
La formule fonctionne lorsque j'enlève "AlertStyle:=xlValidAlertInformation, Operator:=xlEqual" mais je n'ai alors que la légende dans les cellules concernés, ni le dropdown, ni le contrôle des valeurs...
J'ai lu sur un autre forum que :
Mais je n'y suis pas parvenu...Pour utiliser des références d'une autre feuille au travers d'une liste de validation, tu dois normalement obligatoirement passer par l'intermédiaire d'un "Nom"
Quelqu'un peut-il me venir en aide!! S'il vous plaît![]()
Partager