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

Macros et VBA Excel Discussion :

Imposer une valeur à une liste de validation


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Novembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Novembre 2014
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Imposer une valeur à une liste de validation
    Bonjour,

    Après pas mal de recherche, je n'ai pas trouvé un moyen pour "imposer" la valeur d'une liste de validation via une macro.
    J'utilise le code ci-dessous où j'aimerais utilise la valeur de la cellule active via "data" comme valeur dans une liste de validation sur la page "General Info". le code ne change pas la valeur de la liste de validation.
    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_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     
    Dim data As String
     
    If Not Application.Intersect(Target, Range("A2:A100")) Is Nothing Then
     
    Application.EnableEvents = False
        If ActiveCell.Value = "" Then
            End
            Else
            data = ActiveCell.Value
            Sheets("General Info").Select
            With Range("D1").Validation
                .Delete
                .Add xlValidateList
                .Value = data
            End With
        End If
     
    Application.EnableEvents = True
    End If
    End Sub
    Que puis-je faire?

    Merci d'avance!
    Arnaud

  2. #2
    Membre éprouvé
    Homme Profil pro
    ingénieur d'étude
    Inscrit en
    Juin 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'étude
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 563
    Points : 1 141
    Points
    1 141
    Par défaut
    Bonjour,

    Essayez de remplacer le contenu de votre instruction With par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                .Delete
                .Add Type:=xlValidateList, Formula1:=data
    Cdt

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Novembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Novembre 2014
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci Ben

    Malheureusement, la liste ne prend toujours pas la valeurs data.
    En fait, je cherche à afficher la valeur de la variable data dans la liste de validation car la feuille utilise cette liste pour plusieurs vlookup.

  4. #4
    Membre éprouvé
    Homme Profil pro
    ingénieur d'étude
    Inscrit en
    Juin 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'étude
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 563
    Points : 1 141
    Points
    1 141
    Par défaut
    Et comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Dim data As String
        If Not Application.Intersect(Target, Me.Range("A2:A100")) Is Nothing Then
            Application.EnableEvents = False
            If Target.Value = "" Then Goto EndOfSub
            data = Target.Value
            With ThisWorkbook.Sheets("General Info").Range("D1").Validation
                .Delete
                .Add Type:=xlValidateList, Formula1:=data
            End With
    EndOfSub:
            Application.EnableEvents = True
        End If
    End Sub
    Qu'obtenez-vous ?

    Veuillez notez qu'il s'agit ici de définir une seule valeur acceptable pour la cellule D1 de la feuille "General Info".
    Et cette valeur sera égale à la valeur de la cellule sur laquelle vous double-cliquez.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Novembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Novembre 2014
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Malheureusement, ça ne marche pas non plus.
    Je pense que je vais devoir passer par un combobox plutôt que par la liste de validation...

  6. #6
    Membre éprouvé
    Homme Profil pro
    ingénieur d'étude
    Inscrit en
    Juin 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'étude
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 563
    Points : 1 141
    Points
    1 141
    Par défaut
    Citation Envoyé par Ben_L Voir le message
    Qu'obtenez-vous ?
    Citation Envoyé par Arnaud C Voir le message
    Malheureusement, ça ne marche pas non plus.
    Préciser ce qui fonctionne ou pas, la différence entre le comportement obtenu et celui recherché, les éventuels messages d'erreurs qui interviennent...
    Tout cela ne semble pas superflu si votre but est d'obtenir de l'aide.

    Le code proposé est fonctionnel sur un fichier test.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Employé
    Inscrit en
    Novembre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Employé

    Informations forums :
    Inscription : Novembre 2014
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Je viens d'ajouter une feuille excel pour expliquer exactement mon problème.
    Le principe est que, en double cliquant sur un des cellules de la colonne A de la page "sheet 3", la macro sélectionne la feuille "General Info" et et place la valeur de la cellule "double cliquée" dans la lise de validation en D1.

    J'espère être plus claire?

    En tout cas, merci pour votre aide!
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [XL-2013] Selectionner une valeur dans une liste de validation
    Par Denis_67 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/02/2020, 15h05
  2. Réponses: 5
    Dernier message: 03/03/2019, 14h29
  3. Réponses: 2
    Dernier message: 12/06/2014, 15h18
  4. Cohérence de valeur avec une liste de validation
    Par julieng31 dans le forum Excel
    Réponses: 2
    Dernier message: 08/10/2009, 16h18
  5. Réponses: 10
    Dernier message: 14/02/2007, 12h13

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