Combobox qu'avec les cellules pleines

Fermé
Usgpa - 21 janv. 2010 à 14:25
 Usgpa - 21 janv. 2010 à 15:45
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 6293 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 29 avril 2020 1 365
21 janv. 2010 à 14:43
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
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 6293 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 29 avril 2020 1 365
21 janv. 2010 à 14:52
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 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
21 janv. 2010 à 14:57
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 6293 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 29 avril 2020 1 365
21 janv. 2010 à 15:24
Admirable. Ca marche parfaitement chez moi
0

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

Posez votre question
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 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745
21 janv. 2010 à 15:25
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 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024
21 janv. 2010 à 15:31
Apparament : Valeur de propriété non valide. erreur d'execution "380".
0
Farfadet88 Messages postés 6293 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 29 avril 2020 1 365 > Usgpa
21 janv. 2010 à 15:35
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 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 745 > Usgpa
21 janv. 2010 à 15:36
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 6293 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 29 avril 2020 1 365 > pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024
21 janv. 2010 à 15:39
Peut-on avoir une petite explication du problème et de ce que tu viens d'écrire pour corriger?
0
Iama Messages postés 319 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 27 mars 2020 14
21 janv. 2010 à 15:18
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