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 :

Première valeur d'une liste de validation après après renseigné une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 60
    Par défaut Première valeur d'une liste de validation après après renseigné une cellule
    Bonjour,

    Je suis confrontée à un petit problème dans mon programme VBA :
    j'ai une liste de validation en A1 et une liste de validation qui se met à jour en cascade avec la fonction indirect et des cellules nommées dans la cellule B1.

    par exemple en A1 : la liste des continents et en B1 des pays de ces continents.

    je voudrais que quand la personne choisisse une valeur en A1 par exemple L'europe, en B1 vienne se remplir automatiquement le premier de la liste des pays dépendants : pr exemple l'Allemagne.

    mes listes de validation sont bien crées, pas de soucis de ce coté, c est plus pour mettre la valeur par défaut que je coince.

    Avez vous une idée ?

    merci !

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour

    Code à mettre dans le module de la feuille
    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_Change(ByVal Target As Range)
     
    If Target.Address = "$A$1" Then
        On Error GoTo Fin
        Application.EnableEvents = False
        If Target.Text = "" Then
            Target.Offset(, 1).ClearContents
        Else
            Target.Offset(, 1).Value = Range(Target.Text)(1).value
        End If
    Fin:
        Application.EnableEvents = True
    End If
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 60
    Par défaut
    Merci de votre aide,

    j'ai enlevé la gestion des erreurs pour voir ce qu'il se passait car la procédure déclenchait une erreur, et quand il arrive sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Target.Offset(, 1).Value = Range(Target.Text)(1).value
    il m'affiche un message d'erreur :
    la méthode Range de l'objet _worksheet a échoué

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    en cascade avec la fonction indirect et des cellules nommées
    J`ai supposé que les noms des plages se trouvent sur la même feuille. Sinon adapte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Target.Offset(, 1).Value = Worksheets("NomDeLaFeuille").Feuil1.Range(Target.Text)(1).Value

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 60
    Par défaut
    merci merci !! ! j'ai juste retiré le feuil1 pour laisser Worksheets("NomDeLaFeuille").Range(Target.Text)(1).Value et ça marche super bien !!





    Citation Envoyé par mercatog Voir le message
    J`ai supposé que les noms des plages se trouvent sur la même feuille. Sinon adapte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Target.Offset(, 1).Value = Worksheets("NomDeLaFeuille").Feuil1.Range(Target.Text)(1).Value

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Oui c'était une coquille de ma part.
    Je t'avais d'abord proposé le codename Feuil1. Pensant t'embrouiller, j'ai décidé de changer par le nom de la feuille et ai oublié d'effacer Feuil1

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

Discussions similaires

  1. [Python 3.X] récupérer les premières valeurs de "sous-listes" contenues dans une liste
    Par td_eco dans le forum Général Python
    Réponses: 6
    Dernier message: 11/11/2018, 16h43
  2. [AC-2010] Afficher par défaut la première valeur d'une zone de liste
    Par Tevsox dans le forum VBA Access
    Réponses: 6
    Dernier message: 27/10/2011, 13h57
  3. Réponses: 1
    Dernier message: 01/04/2009, 19h40
  4. Afficher Une Liste Selon La Valeur D'une Cellule
    Par Kevin_18 dans le forum Excel
    Réponses: 10
    Dernier message: 02/07/2007, 19h22
  5. Afficher première valeur d'une liste modifiable
    Par alexg81 dans le forum Access
    Réponses: 3
    Dernier message: 15/05/2006, 22h02

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