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 :

Alimentation liste déroulante apres remplissage d'une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Par défaut Alimentation liste déroulante apres remplissage d'une cellule
    Bonjour,

    Je cherche à lancer une macro, ci-dessous la structure (très) simplifié de mon fichier:


    J'ai une liste en face de chaque numéro de commande, la liste fait référence à la liste en G4.

    Je voudrais lancer automatiquement une "macro perso" qui va travailler sur la liste lorsque j'ajoute un numéro de commande:
    Si A14 je saisie "10", je voudrais lancer une macro qui va travailler sur la liste qui est en B14.

    • Il va y avoir plusieurs milliers de lignes "NumCommande", donc je ne peux pas actualiser l'ensemble des lignes à chaque changements

    • Une fois le numéro de commande saisie et la macro lancée pour la ligne correspondante, plus question de relancer la macro sur ces lignes (des ajustements à la main pourront etre fait dans les listes, pas question de tout écraser)



    Savez vous comment faire?
    Le Sub Worksheet_Change(ByVal Target As Range) travaille sur toute une colonne, ce qui ne colle pas avec mes prérequis...

    Merci!

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 704
    Par défaut
    Bonjour,
    Je n'ai pas tout à fait compris le problème, mais voici ce que je peux te dire :
    Le "Sub Worksheet_Change(ByVal Target As Range)" travaille sur toute une colonne
    Non, ce n'est pas vrai. Je te conseille de lire ceci. Target correspond à une cellule "cible", soit la cellule qui a été modifiée. Ensuite, tu peux mettre des conditions dans ta méthode pour déclencher une action seulement sur certaines cellules. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Worksheet_Change(ByVal Target As Range)
        Set Plage = Range("B5:E20")
        If Application.Intersect(Target, Plage) Is Nothing Then MsgBox "Vous avez modifié la cible"
    End Sub
    Ici on dit : si la cellule appartient à la plage B5:E20 alors lancer une message box "...".
    Toi, tu veux que la macro se déclenche si on modifie les cellules d'une certaine colonne (A), tu peux donc écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Worksheet_Change(ByVal Target As Range)
        If Target.Column = 1 Then ...
    End Sub
    Mais tu veux aussi qu'elle se déclenche seulement si c'est ta première saisie...là c'est déjà un peu plus compliqué. Mais j'ai déjà vu passer un sujet là-dessus il y a quelques temps. Je suis plus très sûre de la façon dont ça avait été résolu, mais je crois qu'il y avait une combinaison entre Worksheet_SelectionChange et Worksheet_Change avec une variable globale. Quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Global maCellule As String
    Sub Worksheet_SelectionChange(ByVal Target As Range)
        maCellule = Target.Value
    End Sub
     
    Sub Worksheet_Change(ByVal Target As Range)
        If maCellule = "" And Target.Column = 1 Then ...
    End Sub
    Bon, je suis pas sûre à 100% que ça marche, alors à tester...et refais éventuellement des recherches sur developpez.net pour voir si tu trouves pas la conversation qui expliquait cela.

Discussions similaires

  1. [XL-2007] Liste déroulante suivant valeur d'une cellule
    Par malababar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/03/2010, 22h24
  2. Mise à jour d'une liste déroulante après sélection d'une 1ère liste
    Par yodu29 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/06/2007, 15h49
  3. alimentation liste déroulante
    Par syldudu dans le forum Access
    Réponses: 17
    Dernier message: 06/03/2007, 11h52
  4. Réponses: 4
    Dernier message: 09/08/2006, 10h41

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