Bonjour à tous les sauveurs du forum !
J'essaye de faire un fonction qui à chaque chargement d'une feuille remplie les 2000 première cellules de la première colonne avec un liste de validation qui se trouve sur une autre feuille.
Et à force d'essayer j'ai réussi ! Et ça donne ça :
Mais.... car il y a toujours un problème ! Je voudrai ajouter à ma liste de validation une saisie semi automatique des données.
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
20
21
22
23 Private Sub Worksheet_Activate() Application.Calculate plage = "=" & "'" & "Base de données" & "'" & "!" & Range("A6:A" & Sheets("Base de données").Range("A65536").End(xlUp).Row).Address With Sheets("Etude de prix") With Range("A6:A2000").Validation .Delete 'suppression de l'ancienne plage de validation puis création d'une nouvelle avec les dernieres valeurs .Add Type:=xlValidateList, Operator:=xlBetween, Formula1:= plage .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = False End With End With End Sub
J'ai donc remplacépar
Code : Sélectionner tout - Visualiser dans une fenêtre à part Formula1:= plageSauf que ce code trouvé sur le net marche très bien pour la cellule A1, mais moi je dois l'adapter pour que ça s'applique à A6 j'usqu'à A2000. Et je n'y arrive pas....
Code : Sélectionner tout - Visualiser dans une fenêtre à part Formula1:="=DECALER(plage;EQUIV(A1&""*"";plage;0)-1;0;NB.SI(plage;A1&""*""))"
J'ai essayé de remplacer le With Range("A6:A2000") par une boucle avec un variable i qui s'incrémente et une formule comme ca:Mais impossible d'arriver à un truc qui fonctionne après de nombreuses heures d'essais... grrr
Code : Sélectionner tout - Visualiser dans une fenêtre à part Formula1:="=DECALER(plage;EQUIV("A"&"i"&""*"";plage;0)-1;0;NB.SI(plage;"A"&"i"&""*""))"
Merci de votre aide
Partager