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 :

[VBA E] Conserver le derniere valeur selectionné d'une combobox


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 509
    Par défaut [VBA E] Conserver le derniere valeur selectionné d'une combobox
    Bonjour à tous

    je voudrais savoir comment conserver la derniere valeur selectionner dans une liste d'une combobox apres avoir utilisé la commande "Unload Me" sur la user form pour effacer les donner des zone texte qui y sont integrer.

    Voici le code du bouton ok de la user form (zone1):

    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
    ActiveCell.Value = Reference.Text
    ActiveCell.Offset(0, 1).Value = designation.Text
    ActiveCell.Offset(0, 2).Value = nombre.Text
    ActiveCell.Offset(0, 4).Value = longueur.Text
    ActiveCell.Offset(0, 5).Value = largeur.Text
    ActiveCell.Offset(0, 8).Value = SensFil.Text
    ActiveCell.Offset(0, 9).Value = long1.Text
    ActiveCell.Offset(0, 10).Value = court1.Text
    ActiveCell.Offset(0, 11).Value = long2.Text
    ActiveCell.Offset(0, 12).Value = court2.Text
    ActiveCell.Offset(0, 13).Value = long3.Text
    ActiveCell.Offset(0, 14).Value = court3.Text
    ActiveCell.Offset(1, 0).Select
    Unload Me
    zone1.Show
     
    End Sub
    La combobox est sur la premiere ligne (reference)

    Merci d'avance

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Euh....
    La conserver où ou dans quoi d'autre ?

  3. #3
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 509
    Par défaut
    C'est a dire que je selectionne une valeur dans la liste de la combobox et quand j'ai cliker sur le bouton ok de ma combobox, la combobox mais vide.

    Alors je suis obligé de reselectionner la valeur, je voudrais que la combox conserve l'affiche de ma selection precedente.

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Excuse moi... mais je ne comprends absolument rien à ce que tu as tenté d'exprimer !...
    Il va falloir que tu le fasses avec précision, car nous ne sommes pas dans tes pensées...

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 151
    Par défaut
    je pense éventuellement ,qu'il faut mettre le text de ta combobox dans une variable mémoire,celle ci te permettra ,à la fin de l'exécution du bouton OK, de réinsere le text dans ta combobox!

    il y a surement un autre moyen!

  6. #6
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ActiveCell.Value = Reference.Text
    ActiveCell.Offset(0, 1).Value = designation.Text
    ActiveCell.Offset(0, 2).Value = nombre.Text
    ActiveCell.Offset(0, 4).Value = longueur.Text
    ActiveCell.Offset(0, 5).Value = largeur.Text
    ActiveCell.Offset(0, 8).Value = SensFil.Text
    ActiveCell.Offset(0, 9).Value = long1.Text
    ActiveCell.Offset(0, 10).Value = court1.Text
    ActiveCell.Offset(0, 11).Value = long2.Text
    ActiveCell.Offset(0, 12).Value = court2.Text
    ActiveCell.Offset(0, 13).Value = long3.Text
    ActiveCell.Offset(0, 14).Value = court3.Text
    ActiveCell.Offset(1, 0).Select
    ce serait peut etre un peu mieux ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    With ActiveCell
       .Value=Reference.Text
       .Offset(0, 1).Value = designation.Text
    ...
    no ?

  7. #7
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 509
    Par défaut
    merci gootsu je pense que ça passe par quelque chose comme ça mais je ne sais pas comment le mettre en forme. Je sais qu'il existe la propriete "controlsource" mais je ne sais pas si c'est judicieu de l'utiliser dans ce cas.
    Si quelqu'un peu faire avancé mon problème!

    Merci egalement Commodore_Psykopate pour la simplification que tu me propose pour mon code.
    C'est vrai que ça fait plus "Pro".

  8. #8
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut
    il faudrait que tu mettes dans une variable la valeur de l'index de la sélection de ton ComboBox au moment du onChange.
    ensuite, tu viens te replacer sur l'index enregistré.

    c'est vrai qu'on comprend mal ce que tu veux exactement...

    psy

  9. #9
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 151
    Par défaut
    salut !

    j'aimerais si possible que tu réexplique complétement et avec un tous petit peu plus de détails (beaucoup plus!! lol! ) Ce que tu veux faire, et avoir!
    Ensuite on poura t'aider et on poura te dire si le choix de la propriété "controlsource" est judicieuse!

    en attendant!! A+

  10. #10
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 509
    Par défaut
    Ok je suis desolé pour moi ça semble si evident que j'ai du mal certainement à le developper.
    Donc je m'y recolle.

    j'ai une user formet dans cette user form une combobox, qui affiche une liste de reference.




    Dans un premier temps je voudrais quelle affiche la premiere reference de la liste en l'occurence ici "6_22_1a" (ci dessous)



    Et dans un deuxieme temps apres avoir clicker sur le bouton "Ok" qui execute le code qui se trouve plus haut, je voudrais que la reference selectionné dans la liste, par exemple "6_22_2" reste affiché malgres avoir effacer les textbox par la commande "Unload Me". Car je relance tout de suite derriere la user form par "zone1.Show" qui reaparait avec les textbox vide mais aussi la combox reference.

    Voila j'espere que c'est plus clair sinon j'essayerais de faire mieux la prochaine fois.

  11. #11
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour


    Dans un premier temps je voudrais quelle affiche la premiere reference de la liste en l'occurence ici "6_22_1a" (ci dessous)
    tu peux utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub UserForm_Initialize()
    '
    '...
    ' remplissage combobox
    '
    '...
     
    ' L'index 0 correspond à la première donnée contenue dans le Combobox
    Combobox1.Listindex = 0 
     
    End Sub




    Et dans un deuxieme temps apres avoir clicker sur le bouton "Ok" qui execute le code qui se trouve plus haut, je voudrais que la reference selectionné dans la liste, par exemple "6_22_2" reste affiché malgres avoir effacer les textbox par la commande "Unload Me"

    dans un module standard , tu places

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public maVariable As String

    puis dans l'UserForm "Zone de saisie" , tu ajoutes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ComboBox1_Change()
    maVariable = ComboBox1
    End Sub



    bon week end
    michel

  12. #12
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 509
    Par défaut
    merci SilkyRoad pour afficher la premiere reference de la liste à l'ouverture de la user form pas de souci ça marche.

    Par contre pour afficher la reference selectionné dans la liste apres avoir validé et utilisé la commande unload sur la user form ça ne marche pas c'est toujours la premiere reference de la liste qui s'affiche.

    Peut etre peut on recuperer le n° d'index de la reference selectionné pour reafficher la combobox avec la reference correspondant au deuxieme index.
    Si ça peut fonctionner je veux bien essayer mais je ne sais pas recuperer l'index de la reference selectionné.


    Merci

  13. #13
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir

    en lisant tes précédents messages , j'avais interprété que tu voulais récuperer le résultat d'un combobox dans une variable. Maintenant je comprend (peut etre à tort) que tu souhaites seulement recupérer l'index de ce ComboBox

    dans ce cas, tu places dans un module standard :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public maVariable As Integer

    puis dans l'UserForm "Zone de saisie" , tu ajoutes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ComboBox1_Change()
    maVariable = Combobox1.Listindex
    End Sub

    bonne soiree
    michel

  14. #14
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 509
    Par défaut
    Bonsoir SilkyRoad

    je me demande si mon probleme n'est pas unload sur ma user form comment pourrais je effacer le contenu des textebox de la user form sans utiliser unload.

    merci

  15. #15
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    comment pourrais je effacer le contenu des textebox 
    de la user form sans utiliser unload
    tu peux essayer



    et pour boucler sur tous les TextBox du UserForm afin de les vider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton2_Click()
    Dim Ctrl As Control
     
    For Each Ctrl In Me.Controls
        If TypeOf Ctrl Is MSForms.TextBox Then Ctrl.Value = ""
    Next
    End Sub


    bonne journée
    michel

  16. #16
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 509
    Par défaut
    bonjour SilkyRoad

    Ca fonctionne mais j'ai un autre souci avec le code de la façon dont il a ete modifié.

    Mon probleme est que quand j'utisais unload et que je relançais la user form je redemarrais automatiquement sur ma combobox reference qui etait active.

    Alors que la quand je click sur mon bouton ok je reste dessus et je ne bouge plus, tous cela parceque je me deplace dans ma user form par la touche du clavier entrée car je trouve plus facile que la touche tabulation.

    Donc apres avoir clicker sur le bouton ok est qu'il est possible de reactivé Ma combobox reference ?
    Peut etre en utilisant la propriete tabindex qui la valeur de 1 dans ma user form ?

  17. #17
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    comboboxReference.setfocus
    après la vidange des textbox... en modifiant "comboboxreference" par le nom du contrôle qui doit recevoir le focus.

    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  18. #18
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 509
    Par défaut
    Merci Pierre Fauconnier c'est exactement ce qui me fallait pour completer les informations que ma donnée SilkyRoad.

    La je pense que ça fonctionne parfaitement.

    Encore merci à vous deux.

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

Discussions similaires

  1. TableComboBox se rappelle de la derniere valeur selectionnée
    Par khalid_kha dans le forum Composants
    Réponses: 1
    Dernier message: 21/04/2009, 15h13
  2. conserver la valeur selectionnée d'une liste déroulante affichée
    Par med_alpa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 28/10/2008, 14h13
  3. [VBA-E] 2 ListBox avec valeurs "dépendantes l'une de l'autre"
    Par dado91400 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/03/2007, 09h51
  4. Réponses: 1
    Dernier message: 28/07/2006, 09h17
  5. Réponses: 1
    Dernier message: 25/04/2006, 21h29

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