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

6 réponses

Farfadet88 Messages postés 7780 Date d'inscription   Statut Membre Dernière intervention   1 370
 
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
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
Farfadet88 Messages postés 7780 Date d'inscription   Statut Membre Dernière intervention   1 370
 
Ah pour ça je ne saurai pas faire mais c'est réalisable.

Je tente quand même quelque chose
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 768
 
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
Farfadet88 Messages postés 7780 Date d'inscription   Statut Membre Dernière intervention   1 370
 
Admirable. Ca marche parfaitement chez moi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 768
 
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
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
Farfadet88 Messages postés 7780 Date d'inscription   Statut Membre Dernière intervention   1 370 > Usgpa
 
en mettant ton fichier sur cijoint peut-être que quelqu'un trouvera où ton fichier coince?
http://www.cijoint.fr/
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 768 > 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
Farfadet88 Messages postés 7780 Date d'inscription   Statut Membre Dernière intervention   1 370 > 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
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