Combobox qu'avec les cellules pleines

Usgpa -  
 Usgpa -
Bonjour,

Une petite question : je sais alimenter une combobox avec une colonne excel mais je ne sais pas comment limiter cela aux seules cellules pleines. Comment la faire s'arrêter à la dernière ligne remplie... je ne suis pas un pro du Vba et j'ai tenté pas mal de choses sans succès. Pour vous donner une idée des dégats, voilà ma dernière tentative :

Private Sub Userform_Activate()
I = 1
While Feuil1.Range("D" & I) <> ""
I = I
UserForm3.ComboBox1.RowSource = "Feuil1!D:D & I"
Wend
End Sub

Merci d'avance
Configuration: Windows XP Internet Explorer 6.0

6 réponses

  1. Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1 402
     
    Il y a plus simple.

    Dans la colonne propriétés de VBA quand tu est sur ta Combobox tu as une ligne row source!

    Tappes Feuil1!D1:D4

    pour les données de d1 a d4
    0
  2. Usgpa
     
    Le problème c'est que la liste va fluctuer dans le temps. Je voulais donc savoir si il y avait un moyen de mettre un truc du genre Feuil1!D1:DI.
    0
  3. Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1 402
     
    Ah pour ça je ne saurai pas faire mais c'est réalisable.

    Je tente quand même quelque chose
    0
  4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Salut,
    Personnellement, je fais comme cela :

    Private Sub Userform_Activate() 
    Dim I As Integer, lig As Integer 
    With Sheets(1)
    lig = .Range("D65536").End(xlUp).Row
    For I = 1 to lig 
    UserForm3.ComboBox1.AddItem .Cells(I, 4) 
    Next
    End With
    End Sub

    0
    1. Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1 402
       
      Admirable. Ca marche parfaitement chez moi
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Usgpa
     
    Merci de votre aide ! Pijaku ta solution provoque une erreur d'execution "70", la ligne
    UserForm3.ComboBox1.AddItem .Cells(I, 4)
    est surligné en jaune.
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Je viens de tester... Fonctionne ben chez moi.
      Dans ton code (post 1) change :
      UserForm3.ComboBox1.RowSource = "Feuil1!D:D & I"

      par :
      UserForm3.ComboBox1.RowSource = "Feuil1!D:D" & I


      et si cela bloque encore reviens ici...
      0
    2. Usgpa > pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Apparament : Valeur de propriété non valide. erreur d'execution "380".
      0
    3. Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1 402 > Usgpa
       
      en mettant ton fichier sur cijoint peut-être que quelqu'un trouvera où ton fichier coince?
      http://www.cijoint.fr/
      0
    4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > Usgpa
       
      evidemment...

      Private Sub Userform_Activate()
      I = 1
      While Sheets("Feuil1").Range("D" & I) <> ""
      UserForm3.ComboBox1.AddItem Sheets("Feuil1").Range("D" & I)
      I = I + 1
      Wend
      End Sub

      0
    5. Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1 402 > pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Peut-on avoir une petite explication du problème et de ce que tu viens d'écrire pour corriger?
      0
  7. Iama Messages postés 324 Statut Membre 14
     
    Si cela peu te donner des idées, j'ai fait un truc comme ça. Ne pas oubluer la réjeneration a chaque entée dans le tableau

    'Ordre_Val.Caption : N° Enregistrement des données => orgine Un Label

    'FeuilPiece : Nom feuille
    'TableauR : Nom de cellules

    'Modification de la longueur du tableaux des valeurs calculé Adresse type : "=Piéce!R1C1:R20C15"
    ActiveWorkbook.Names("TableauR").RefersTo = "=" & FeuilPiece & "!R7C1:R" & 6 + Ordre_Val.Caption & "C15"

    6 = Ligen e
    0