bonjour,

suite au post précédent j'en créai un autre pour la création des mes 3 listes déroulantes en cascade en VBA

il me donne un code panne erreur 1004 erreur definie par l'application ou par l'objet alors qu'elle fonctionne très bien quand je les créai à la main.

je vous donne mon code simplifié:

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
 
            'première validation de données avec saisie semi_automatique
            Range("B" & 15 + x).Select
            With Selection.Validation
                .Delete
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                xlBetween, Formula1:= _
                "=IF(B" & 15 + x & "<>"""",OFFSET(l_jeandot,MATCH(B" & 15 + x & " & ""*"",l_jeandot,0)-1,,COUNTIF(l_jeandot,B" & 15 + x & " & ""*""),1),l_jeandot)" 
                .IgnoreBlank = True
                .InCellDropdown = True
                .InputTitle = ""
                .ErrorTitle = ""
                .InputMessage = ""
                .ErrorMessage = ""
                .ShowInput = True
                .ShowError = False
            End With
 
 
           '2eme liste déroulante faisant référence à la première
           Range("C" & 15 + x).Select
            With Selection.Validation
                .Delete
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                xlBetween, Formula1:= _
                "=OFFSET(cel_prenom,MATCH($B$" & 15 + x & ",l_jeandot,0),,COUNTIF(l_jeandot,$B$" & 15 + x & "))" 
                .IgnoreBlank = True
                .InCellDropdown = True
                .InputTitle = ""
                .ErrorTitle = ""
                .InputMessage = ""
                .ErrorMessage = ""
                .ShowInput = True
                .ShowError = False
            End With
 
          ' et la troisième liste déroulante qui fait référence au 2 premières.
          Range("F" & 15 + x).Select
            With Selection.Validation
                .Delete
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                xlBetween, Formula1:= _
                "=OFFSET(cel_nationalite,MATCH(1,(l_jeandot=B" & 15 + x & ")*(l_jeandot_p=C" & 15 + x & "),0),,COUNTIF(l_jeandot_p,C" & 15 + x & "))"
                .IgnoreBlank = True
                .InCellDropdown = True
                .InputTitle = ""
                .ErrorTitle = ""
                .InputMessage = ""
                .ErrorMessage = ""
                .ShowInput = True
                .ShowError = False
            End With
Il me sort comme erreur: erreur 1004 erreur définie par l'application ou par l'objet

Quand je fais la première liste à la main, comme en VBA ça marche, pas de soucis.



par contre c'est à la 2ème que ça bloque. à la main elle me sors quand la 1ère liste est vide: erreur de la source est reconnu comme erroné. vous vous continuer? si je clicl oui ca marche quand même
Alors que je n'ai pas cette erreur si ma première liste est remplie. donc je suppose que ça vient de là mais je ne sais pas faire.

et par le code VBA il me sort: erreur 1004 erreur definie par l'application ou par l'objet



quand à la troisième, je n'arrive pas jusque là en VBA mais je pense que le résultat sera le même car, à la main, le résultat est le même.


quelqu'un aurai une idée?
il n'y aurai pas, un .errorformula = false dans la selection.validation pour surpasser le code erreur?
merci par avance.