ComboBox qui liste les colonnes dynamiquement

Olaf -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,

Je cherche comment faire pour lister dans combo box, le nom des colonnes d'un tableau sur Excel et ceci de façon dynamique.

C'est à dire, si j'ai 4 colonnes dans lesquelles j'ai des données (peu importe la longueur des colonnes), j'aimerai que dans ma combo box figure "a", "b", "c", "d".

Quelqu'un peut-il m'aider...

Grand merci
Configuration: Windows XP
Internet Explorer 6.0

7 réponses

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Aucune idée, je l'ai testé ici avec Excel 2003 et Excel 2007 et le code fonction. Il y a un problème ailleur, ça ne vient pas de ce code.

    ;o)
    1
  2. Olaf
     
    Salut Polux31

    J'ai essayé de copier ce code et de l'adapter à mes besoin, mais ça ne fonctionne pas.
    Il me fait une erreur d'exécution 438 à l'ouverture de mon formulaire !

    Tu as une idée
    0
  3. Olaf
     
    Alors en fait ce que j'aimerai c'est que si dans la colonne A il y a des données, un "A" viendrait se lister dans ma Combobox et ainsi de suite pour chaque colonne où j'ai des données.
    Maintenant si après la colonne G je n'ai plus de données et bien la dernière lettre dans ma Combobox serait le "G"

    Si vous avez pas compris, dites le moi et j'essaierai d'expliquer mieux

    Merci encore
    0
  4. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

    Voilà un exemple de code :

    Dim i As Long
    Dim numcol As Long
    Dim cl As Range
    
        Sheets(1).Activate
    
        For Each cl In Worksheets(1).Range("A1:IV1")
            If cl.Value <> "" Then
                numcol = cl.Column
                Sheets(1).ComboBox1.AddItem IIf(numcol > 26, Chr(64 + numcol \ 26) & Chr(64 + numcol Mod 26), Chr(64 + numcol))
            End If
        Next cl


    ;o)
    -1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour, Bonjour Polux,
    Je ne comprend pas bien ce que tu veux avoir dans le combo, d'après tes explications tu veux le titre de tes colonnes ? mais apparement ce n'est pas ça.
    Puis, tu parle de formulaire ! Sur Excel ?
    A+
    -1
    1. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Salut lermite,

      J'ai cru comprendre qu'il voulait la lettre de la colonne dans le combo (colonne 1 = A) ... mais ce n'est peut être pas ça.

      ;o)
      -1
  7. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Huuum, en revenant sur sa question, je pense que ce qu'il veux c'est qu'il y ai un test sur une certaine quantité de colonnes (toutes peut-être) et que celles qui contiennent des données soient reprise dans le combo.
    Mais il faut attendre la réponse si ont veux pas tourner en rond .
    A+
    -1
    1. Polux31 Messages postés 7219 Statut Membre 1 204
       
      C'est ce que j'avais cru comprendre ... attendons la suite.

      ;o)
      -1
  8. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    C'est bien ce que j'avais compris.
    Essaye...
    Sub AjoutLettreColonne()
    Dim C As Integer
    Dim A As String
    Dim LastC As Integer
    Dim S
        Sheets("feuil1").Select
        A = Range("A1").SpecialCells(xlCellTypeLastCell).Address
        LastC = Range(A).Column
        For C = 1 To LastC
            'le 1 à adapter à la première ligne à tester
            If Range(Cells(65536, C), Cells(65536, C)).End(xlUp).Row > 1 Then
                S = Split(A, "$") 'Si plusieurs lettres
                Sheets("feuil1").ComboBox1.AddItem S(1)
            End If
        Next C
    End Sub

    A+
    -1