Liste de validation en VBA

Bonjour,

Dans l’espoir d’aider le membre lechiffre auquel je n’ai pas pu donner la solution à son problème, je vous pose les questions suivantes :

Dans le fichier ci-joint, il y avait deux ‘’Validation des données’’ en J12 et K12. La validation en J12 a simplement été incrémentée dans la colonne J.

Afin de préparer l’enregistrement d’une macro pour l’inscription de la formule nécessaire à la validation de la cellule K13, je l'ai inscrite provisoirement en M13. J’ai ensuite lancé l’enregistrement de la ‘’Macro1’’ et tout fonctionne à merveille pour cette cellule K13.

J’ai ensuite copié la Macro1 et l’ai renommée Macro_bis. Comme modifications, j’ai entre autres changé les références à la cellule K14 et le passage Formula1:="=INDIRECT(SUBSTITUE(J13;"" "";""_""))" en ……J14…………….

Mais lorsque je lance cette Macro_bis manuellement, j’ai le message d’erreur ci-dessous :

capture 1

Et si l’on va voir le débogage, on constate où ça bloque :

capture 2

Savez-vous pourquoi ça ne passe pas ? Avez-vous une solution de remplacement ?

Question subsidiaire :

Je ne comprends pas très bien comment fonctionnent les validations de la colonne K sur la base d’une formule de type =INDIRECT(SUBSTITUE(J13;"" "";""_"")) et pourquoi lorsque je rajoute un mot en E1 de la Feuil2, il n’est pas pris en compte dans ces validations de la colonne K. Avez-vous deux mots d’explication à ce sujet ?

Cordialement.

Bonjour Yvouille,

J'ai repris la proc. du premier sujet du fichier d'origine... :

Sub ImporterListes()
    With ThisWorkbook
        .Names.Add "liste", "=données!$A$1:$A$2"
        .Names.Add "Fruits_de_saison", "=données!$B$1:$D$1"
        .Names.Add "Légumes_de_saison", "=données!$B$2:$E$2"
    End With
    With Worksheets("Liste_déroulante")
        With .Range("D8").Validation
            .Delete
            .Add xlValidateList, , , "=liste"
        End With
        .Range("D8") = "Fruits de saison"
        With .Range("E8").Validation
            .Delete
            .Add xlValidateList, , , "=INDIRECT(SUBSTITUTE(D8,"" "",""_""))"
        End With
        .Range("D8").ClearContents
    End With
End Sub

En surligné, moyen de contournement...

Excel bloque si aucune valeur du 1er choix ne lui permet de valider la formule...

Cordialement.

Salut,

@ MFerrand

Super, merci beaucoup pour ton aide

@ lechiffre

Tu as donc la solution à ton problème Reviens à la charge sur ce fil si tu as des problèmes à la mettre en place.

Amicalement.

Bonjour Yvouille, Mferrant, bonjour le forum,

Grand merci Yvouille pour votre aide précieuse, merci aussi à Monsieur Mferrant.

J'ai appris beaucoup de choses grâce à vous.

Mon problème est résolu, on peut donc clore ce poste.

Bonne journée et merci encore.

Cordialement,

lechiffre


Pardon , Monsieur Mferrand et non Mferrant.

Rechercher des sujets similaires à "liste validation vba"