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 :

userform liste déroulante sur une cellule avec boucle conditionnelle en ligne (row)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2017
    Messages : 12
    Par défaut userform liste déroulante sur une cellule avec boucle conditionnelle en ligne (row)
    bonsoir,

    Je me permets une fois de plus de faire appel à votre expérience dans le vba.
    Mon code joint ci-dessous est un userform classique avec choix menu déroulant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub UserForm_Initialize()
    Me.ComboBox1.List = [parc].Value
    Me.ComboBox1.SetFocus
    SendKeys "{F4}"
    End Sub
     
    Private Sub combobox1_change()
    Range("b3").Value = Me.ComboBox1
    Unload Me
    End Sub
    J'aimerais créer une extension de ce dernier en lui demandant une fois mon choix sélectionner en "b3" d'écrire la valeur en "c3" une itération à i = n +1 avec n (valeur "B3") allant de 1 à 10. Bémol, quand n=10 la valeur de "C3" devra revenir à 1 et ainsi de suite ce qui me permettra de rester dans l'intervalle défini en amont.

    Merci par avance de votre réflexion

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    une proposition sans vraie conditionnelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("C3").Value = Application.Max((Range("C3").Value + 1) Mod 10, 1)
    et avec conditionnelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("C3").Value = IIf(Range("C3").Value = 10, 1, Range("C3").Value + 1)

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    l'évènement change d'une combobox étant également déclenché à chaque frappe de touche dans la zone de saisie de la combobox, il va y "avoir de la joie" sur ta feuille si un utilisateur se promène et fait mumuse dans cette zone de saisie

    EDIT : je vois trop souvent ce genre d'abus (risqué) d'utilisation de cet évènement. La vocation de l'évènement Change est autre : permettre de contrôler éventuellement des saisies dans la zone de saisie.
    Pour savoir ce que l'on a sélectionné, utiliser l'évènement CLICK et non Change ... Il est seul garant de non ambiguïtés.
    Sauf, bien évidemment à "infirmiser" la combo en inhibant l'accès à sa zone de saisie !

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Remarque pertinente, mais je présume, si la conception est rigoureuse, que l'option DropDownStyle est à DropDownList

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour joe.levrai
    Bien sûr (mon edit), mais pourquoi réduire ainsi les fonctionnalités ? Cette zone de saisie est par exemple très utile pour localiser (par MatchEntry) plus facilement un article.

    EDIT : sans compter qu'il suffit de peu pour déclencher l'évènement Change.
    Que le développeur oublie par exemple le mécanisme qu'il a mis en place (ou qu'un successeur intervienne sans tout contrôler) et qu'il cherche, plus loin dans son code, si existe déjà un article, ce qu'il peut faire en donnant à la propriété text de la combo une valeur puis en regardant la propriété listindex (article absent si = -1) --->> évènement change déclenché !
    (Et ce n'est qu'un exemple de mésaventure possible).

    EDIT2 : la sagesse conduit à ne jamais oublier, par exemple, que s'il pleut, la route est mouillée, mais qu'une route mouillée ne signifie pas forcément qu'elle l'est parce qu'il a plu. D'autres raisons peuvent avoir mouillé la route.

Discussions similaires

  1. [XL-2007] Créer une liste déroulante dans une cellule avec vba
    Par destroyed dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/07/2014, 09h19
  2. Réponses: 5
    Dernier message: 21/06/2012, 14h22
  3. Selectionner une valeur dans une liste déroulante sur le net avec vba
    Par zneidi77 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/06/2012, 15h48
  4. Réponses: 7
    Dernier message: 03/12/2007, 15h37
  5. [EXCEL] Insertion liste déroulante dans une cellule
    Par the java lover dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/11/2005, 18h30

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