IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Création liste déroulante avec une condition SI (SI Cellule X <> "" alors : Liste) [XL-2003]


Sujet :

Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Sans suite à de graves pb de santé
    Inscrit en
    Janvier 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Sans suite à de graves pb de santé

    Informations forums :
    Inscription : Janvier 2014
    Messages : 41
    Points : 33
    Points
    33
    Par défaut Création liste déroulante avec une condition SI (SI Cellule X <> "" alors : Liste)
    Bonjour,

    Operating Windows 7 Professional, Suite Office 2003, donc Excel 2003.

    J'ai une erreur d’exécution 1004 (erreur définie par l'application ou 'objet) lorsque je veux créer une liste déroulante avec une condition SI comme par exemple : SI(Cellule X <>"";Liste)

    J'ai utilisé l'outils, Macro - Nouvelle Macro pour écrire cette macro. Si je ne mets pas la condition SI, la macro se déroule sans erreur. En pièce jointe, un fichier Excel : Test.xls qui contient ces macros.

    Je vous remercie par avance des réponses que je pourrais avoir et surtout la solution à ce petit problème.

    ExcellementVotre,
    Jean-Michel

    If Target.Address = "$A$3" Then
    Application.EnableEvents = False
    Range("C3").Select
    With Selection.Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="=SI($C$1<>0;Liste)" Erreur si je mets la condition : SI($C$1<>0;Liste)
    .IgnoreBlank = True Pas d'erreur si : Formula1:="=Liste"
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
    End With
    Application.EnableEvents = True
    End If
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Bonjour Baluteaud,

    Je ne pense pas qu'écrire la formule comme tu le fais soit correct par contre tu peux mettre ta condition sur la cellule C1 en mm que tu testes ton Target :
    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
        If Target.Address = "$A$3" And [C1].Value <> 0 Then
            Application.EnableEvents = False
            Range("C3").Select
            With Selection.Validation
                .Delete
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                xlBetween, Formula1:="=Liste"
                .IgnoreBlank = True
                .InCellDropdown = True
                .InputTitle = ""
                .ErrorTitle = ""
                .InputMessage = ""
                .ErrorMessage = ""
                .ShowInput = True
                .ShowError = True
            End With
            Application.EnableEvents = True
        End If


    EDIT :
    De plus tu mets les propriétés de ta validation au même niveau que leurs paramètres par default, étape inutile.
    Tu peux simplifier comme ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    If Target.Address = "$A$3" And [C1].Value <> 0 Then
        Application.EnableEvents = False
        Range("C3").Select
        With Selection.Validation
            .Delete
             Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Liste"
        End With
        Application.EnableEvents = True
    End If
    Antony

    Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
    Gustave Parking


    Si le post vous est utile un petit fait toujours plaisir et pensez à passer en

    Et surtout -> Balise CODE

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Sans suite à de graves pb de santé
    Inscrit en
    Janvier 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Sans suite à de graves pb de santé

    Informations forums :
    Inscription : Janvier 2014
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    Merci Antony pour cette réponse très rapide et qui répond parfaitement à ma question. Simple, il fallait y penser. Parfois, je cherche l'impossible et la création automatique de la macro m'a forcé à chercher dans cette direction.

    Encore mille merci.
    Jean-Michel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Créer une liste déroulante avec une condition
    Par Ness1706 dans le forum Excel
    Réponses: 5
    Dernier message: 10/07/2014, 14h34
  2. [XL-2007] Liste déroulante avec une condition
    Par neiluj26 dans le forum Excel
    Réponses: 2
    Dernier message: 15/04/2011, 20h52
  3. Création d'une liste déroulante avec une variable
    Par lou87 dans le forum ASP.NET Ajax
    Réponses: 1
    Dernier message: 12/01/2011, 15h18
  4. liste déroulante avec une case à cocher et une image
    Par kurul1 dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/03/2007, 09h54
  5. [Oracle] Remplir une liste déroulante avec une table
    Par CYCLOPE91440 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 26/12/2006, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo