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 :

Combobox dans une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Mai 2012
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 39
    Par défaut Combobox dans une cellule
    Bonjour
    Comment Initialiser un ComboBox dans une cellule en VBA ( un peu comme si on faisait une validation avec une liste)

    MERCI

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Tu peux créer ta liste de validation avec VBA (la liste sera alors dans la cellule)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub CreerListe()
        With Worksheets("Feuil1").Range("A1").Validation
            .Delete
            .Add Type:=xlValidateList, Formula1:="Toto,Titi,Tutu,Tata"
        End With
    End Sub
    Sinon, tu peux créer une ComboBox dans ta feuille (la liste ne sera pas dans la cellule) ou dans un UserForm.
    http://silkyroad.developpez.com/VBA/ControlesUserForm/

    Cordialement.

  3. #3
    Membre averti
    Inscrit en
    Mai 2012
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 39
    Par défaut
    et on peut remplir la liste par une variable?

  4. #4
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Je suppose que tu as déjà essayé cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub CreerListe()
    Dim ListeValid As String
        ListeValid = "Toto,Titi,Tutu,Tata"
        With Worksheets("Feuil1").Range("A1").Validation
            .Delete
            .Add Type:=xlValidateList, Formula1:=ListeValid
        End With
    End Sub
    Cordialement.

  5. #5
    Membre averti
    Inscrit en
    Mai 2012
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 39
    Par défaut
    voila la solution
    il fait une liste de validation par colonne du array
    si >200caracteres il va creer une feuille et installe toutes les valeurs uniques et permet donc de faire une liste
    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
    Dim Tblo()
    Dim a As Integer, b As Integer
     
    With ActiveSheet.Range("a1").CurrentRegion
        ReDim Tblo(.Rows.Count, .Columns.Count)
        Tblo = .Value
    End With
    Windows("Historic Prices.xls").Close False
     
    ThisWorkbook.Activate
    Range(Cells(1, 1), Cells(1, UBound(Tblo, 2))).Value = Tblo
    For j = 1 To UBound(Tblo, 2)
    temp = ""
    For k = 2 To UBound(Tblo, 1)
    If InStr(temp, Tblo(k, j)) = 0 And Tblo(k, j) <> "" Then temp = temp & Tblo(k, j) & ","
    Next
     
    Cells(2, j).Select
    If Len(temp) > 0 And Len(temp) <= 200 Then
    ActiveCell.Validation.Delete
    ActiveCell.Validation.Add xlValidateList, Formula1:=Left(temp, Len(temp) - 1)
    End If
    If Len(temp) > 200 Then
     
    On Error Resume Next
    Sheets("Search_Data").Select
    If Err = 9 Then
    Sheets.Add
    ActiveSheet.Name = "Search_Data"
    End If
    On Error GoTo 0
     
        Dim Tableau() As String
        Dim i As Integer
        Tableau = Split(temp, ",")
     
    Sheets("Search_Data").Select
    Range(Cells(1, j), Cells(UBound(Tableau), j)).Value = Application.WorksheetFunction.Transpose(Tableau)
        Dim maplage As Range
    Set maplage = Range(Cells(1, j), Cells(UBound(Tableau), j))
    ActiveWorkbook.Names.Add Name:="valeur" & j, RefersTo:=maplage

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

Discussions similaires

  1. Combobox dans une cellule d'un datagridview
    Par mhamdi45 dans le forum VB.NET
    Réponses: 4
    Dernier message: 31/03/2009, 21h14
  2. Réponses: 2
    Dernier message: 30/10/2008, 14h28
  3. [JTable] Ajouter un combobox dans une cellule
    Par monpseudonom dans le forum Composants
    Réponses: 1
    Dernier message: 08/04/2008, 01h34
  4. jtable, combobox dans une cellule
    Par fraco dans le forum Composants
    Réponses: 8
    Dernier message: 27/10/2007, 12h20
  5. combobox dans une cellule
    Par norkoffire dans le forum AWT/Swing
    Réponses: 16
    Dernier message: 13/06/2007, 19h36

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