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 :

Faire une liste et récupérer la valeur choisie


Sujet :

Macros et VBA Excel

  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 148
    Par défaut Faire une liste et récupérer la valeur choisie
    Bonjour,

    j'aimerais que quand j'exécute ma macro ça me propose une liste de villes prédéfinies du genre : Lyon, Paris et Marseille

    Et quand je sélectionne Paris par exemple, ça enregistre cette valeur dans une variable.

    Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour sebfch,

    Etant donné que la demande n'est pas du tout explicite, je te propose ce bout de code qu'il te restera à adapter.

    J'ai créé un UF avec une ComboBox et un CommandButton.

    Voici le code :
    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
    Option Explicit
     
    Private Sub CommandButton1_Click()
     
    If Me.ComboBox1.Value <> "" Then
        With Worksheets("Feuil1")
            .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0) = Me.ComboBox1.Value
            Me.Hide
        End With
    Else
        MsgBox "Veuillez sélectionner une valeur."
    End If
     
    End Sub
     
    Private Sub UserForm_Initialize()
    Dim i As Integer, n As Integer
    Dim oTable() As String
     
    n = 3
     
    ReDim oTable(1 To n)
    oTable(1) = "Paris"
    oTable(2) = "Marseille"
    oTable(3) = "Lyon"
     
     
    For i = LBound(oTable) To UBound(oTable)
        Me.ComboBox1.AddItem oTable(i)
    Next i
     
    Me.ComboBox1.ListIndex = -1
    End Sub
    Cela enregistre tout simplement sur Feuil1, en dernière ligne vide de la colonne A, la valeur sélectionnée après un clic sur le CommandButton.

    Pour ouvrir le UF, tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Option Explicit
     
    Sub Ouvrir_UF()
     
    UserForm1.Show
     
    End Sub
    Je reste disponible.

    Cordialement,
    Kimy

  3. #3
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 148
    Par défaut
    Salut Kimy,
    j'ai ce code pour l'instant :
    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
    Option Explicit
     
    Private Sub CommandButton1_Click()
    Dim ValeurARetourner As String
        ValeurARetourner = ListBox1.Value
        MsgBox (ValeurARetourner)
    Sites.Hide
    Unload Sites
    End Sub
     
     
    Private Sub CommandButton2_Click()
    Sites.Hide
    Unload Sites
    End Sub
     
    Private Sub UserForm_Initialize()
    Dim i As Integer, Derlig As Integer
    ListBox1.Clear
     
    Derlig = Sheets("Feuil2").Cells(65536, 3).End(xlUp).Row
        For i = 2 To Derlig
            ListBox1.AddItem Cells(i, 1).Value
        Next i
        For i = 0 To ListBox1.ListCount - 1
            If ListBox1.Selected(i) = True Then
                ListBox1.Selected(i) = False
            End If
        Next i
    End Sub
    J'ai créé un UF (listbox). Donc j'ai la liste de ma colonne mais j'ai les doublons aussi que j'aimerais enlever.
    Exemple : col 1 : Paris, lyon, marseille, lyon, paris
    Dans ma liste j'ai les 2 paris et lyon et j'aimerais en avoir qu'un si possible

    Une fois la variable stockée dans "ValeurARetourner", je vais m'en servir pour autre chose.

  4. #4
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Salut,

    si les éléments que tu ajoutes à ta combobox sont dans une plage de cellules,
    tu peux copier cette plage sur une zone libre, et la préparer en supprimant
    les doublons grâce à la méthode RemoveDuplicates

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range("A1").CurrentRegion.RemoveDuplicates

  5. #5
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 148
    Par défaut
    Bonjour Philippe,
    je n'arrive à inclure ta formule dans mon code.
    Un petit coup de main serait le bien venu.

    Merci !

  6. #6
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    sebfch,

    Voici un petit exemple pour initialiser ton UF en créant une feuille et en y supprimant les doublons.
    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
    Private Sub UserForm_Initialize()
    Dim i As Long, j As Long
    Dim oTable() As String
    Me.ComboBox1.Clear
     
    Worksheets.Add.Name = "ToRemove"
     
    With Worksheets("Feuil2")
        For i = 2 To .Cells(.Rows.Count, 3).End(xlUp).Row
            Worksheets("ToRemove").Cells(i, 1) = .Cells(i, 3)
        Next i
     
        With Worksheets("ToRemove")
            Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)).RemoveDuplicates Columns:=1, Header:=xlNo
            For j = 0 To .Cells(.Rows.Count, 1).End(xlUp).Row - 1
                If .Range("A1").Offset(j, 0) <> "" Then
                    Me.ComboBox1.AddItem .Range("A1").Offset(j, 0).Value
                End If
            Next j
        End With
    End With
     
    Application.DisplayAlerts = False
    Worksheets("ToRemove").Delete
    Application.DisplayAlerts = True
     
    Me.ComboBox1.ListIndex = -1
    End Sub
    Je reste disponible.

    Cordialement,
    Kimy

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Avec un dictionnaire pour filtrer :
    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
     
    Private Sub UserForm_Initialize()
     
        Dim Dico As Object
        Dim Plage As Range
        Dim Cel As Range
     
        With Worksheets("Feuil2")
     
            Set Plage = .Range(.Cells(2, 3), .Cells(.Rows.Count, 3).End(xlUp))
     
        End With
     
        Set Dico = CreateObject("Scripting.Dictionary")
     
        For Each Cel In Plage
     
            If Dico.exists(Cel.Value) = False Then
     
                Dico.Add Cel.Value, Cel.Value
                ListBox1.AddItem Cel.Value
     
            End If
     
        Next Cel
     
    End Sub

Discussions similaires

  1. [LibreOffice][Base de données] déclarer une combobox et récupérer la valeur choisie
    Par jacques14 dans le forum OpenOffice & LibreOffice
    Réponses: 7
    Dernier message: 30/10/2014, 20h00
  2. Réponses: 1
    Dernier message: 05/04/2012, 20h04
  3. Réponses: 12
    Dernier message: 08/06/2007, 10h11
  4. Récupérer la valeur choisie ds une liste
    Par taroudant dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 08/08/2006, 10h53
  5. valeur d'une list box -> récupérer l'id
    Par Mucsy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/05/2006, 17h56

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