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 :

Extraire une valeur d'une ListBox pour l'afficher dans une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Extraire une valeur d'une ListBox pour l'afficher dans une cellule
    Bonjour,

    J'effectue un satge sous Excel et j'ai un petit soucis : j'aimerai que lorsque l'utilisateur double clic dans une cellule, un formulaire s'ouvre. Ensuite, il sélectionne une valeur dans une liste déroulante puis clic sur un bouton OK. Une fenetre s'ouvre lui demandant de confirmer son choix. S'il confirme, j'aimerai que la valeur sélectionnée dans la liste soit copiée/collée dans la cellule où l'utilisateur a double cliqué.

    Voici le code VB :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    Public cible As String
     
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        cible = Target.Address
        UserForm1.Show
    End Sub
    Private Sub BoutonOK_Click()
     
        If MsgBox("Voulez-vous appliquer le motif " & ListBox1.Value & "?", vbYesNo) = vbYes Then
            ActiveSheet.Range(cible).Value = ListBox1.Value
        End If
     
        SendKeys "{ESC}"
        UserForm.Hide
     
    End Sub
     
    Private Sub UserForm_Initialize()
     
    'remplissage de la zone de liste
    With ListBox1
        .AddItem "ALM"
        .AddItem "ASA"
        .AddItem "ASAI"
        .AddItem "ATA"
        .AddItem "ATM"
        .AddItem "CA"
        .AddItem "CFS"
        .AddItem "CGM"
        .AddItem "FORM"
        .AddItem "GREV"
        .AddItem "JAS"
        .AddItem "MAT"
        .AddItem "QS"
    End With
     
    'sélectionner le premier élément de la liste
    ListBox1.ListIndex = 0
     
    End Sub
    Le problème se trouve dans la partie Private Sub BoutonOK_Click(). Comment faire pour que la valeur sélectionnée dans la liste soit copiée/collée dans la cellule où l'utilisateur à double cliqué ?

    MErci d'avance de votre aide

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonsoir,
    à mon avis, dans un module, déclare une variable public, exemple :
    ensuite, dans ta feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    adres = Target.Address
    'ton code
    End Sub
    et dans l'evenenement click de ta listbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range(adres)=listbox1.text
    un truc dans ce gout là

    a +
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut
    Pourquoi ne pas utiliser directement ActiveCell.
    Dans la gestion du double clique tu appelles ta UserForm qui contient ta listbox.
    Apres choix dans la listebox, si OK ->
    activecell.value = listbox.text
    Si Annuler -> ben rien tu fermes juste la userForm

    [Edit]
    Pardon j'avais pas lut le code (les balises!!, a bienvenue d'ailleur, les balises code, tu sélectionnes ton code et tu cliques sur le bouton en haut #)
    Donc a la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Range(Cible).value
    , tu met directement [/Edit]
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  4. #4
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonsoir Qwaz,

    C'est de ma faute, il faut toujours que je complique les codes
    mais tu as raison
    a +
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Re
    Ben disons que tu as voulu garder l'esprit du code de départ proposé, ce qui n'est pas toujours pour bien faire J'avoue j'avais pas lu sont code .
    Bonne continuation à toi .
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/06/2014, 11h02
  2. [XL-2007] Extraire toutes les valeurs d'une Listbox pour les afficher dans un commentaire
    Par Didpa dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 16/07/2013, 18h12
  3. [MySQL] Récupération d'une valeur d'un formulaire pour la mettre dans une requête
    Par lala24 dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 30/04/2010, 17h42
  4. Réponses: 5
    Dernier message: 18/11/2009, 11h25
  5. valeur d'un champ pour l'utiliser dans une requete
    Par bachilbouzouk dans le forum ASP
    Réponses: 4
    Dernier message: 08/04/2005, 16h58

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