OVH Cloud OVH Cloud

Combo sans doublons

32 réponses
Avatar
David
Bonjour à tous


J'utilise ceci pour remplir mes 4 combos.

Comment faire pour remplir sans doublon.
J'ai bien regardé sur le excelabo et autre mais je n'arrive pas à l'adapter
à mon projet

Merci de votre aide

Private Sub Ini()
Dim L, M, N, O As Integer
Dim Plage1, Plage2, Plage3, Plage4 As String
L = Sheets("BD").Range("A65536").End(xlUp).Row
M = Sheets("BD").Range("B65536").End(xlUp).Row
N = Sheets("BD").Range("D65536").End(xlUp).Row
O = Sheets("BD").Range("F65536").End(xlUp).Row
Plage1 = Sheets("BD").Range("A2:A" & L).Address
Plage2 = Sheets("BD").Range("B2:B" & M).Address
Plage3 = Sheets("BD").Range("D2:D" & N).Address
Plage4 = Sheets("BD").Range("F2:F" & O).Address
cmbCaisse.RowSource = "'BD'!" & Plage2
cmbMutuelle.RowSource = "'BD'!" & Plage3
cmbMode.RowSource = "'BD'!" & Plage4
cmbClient.RowSource = "'BD'!" & Plage1
End Sub

10 réponses

1 2 3 4
Avatar
Claude Trouet
Re bonsoir,
Pas tout à fait :
Le copier/coller sert uniquement à mettre le nom de la colonne de la base de
données
pour définir les zones de critère et d'extraction nécessaires pour le
fonctionnement du filtre.
Les données restent à leur place.
Les données résultant du filtre viennent se placer sous la zone d'extraction
( en G4 )
Elles sont lues en séquences pour alimenter les combobox.
Dans mon exemple j'ai placé les zones en colonne G de la même feuille que
les données,
il était évidemment possible de les mettre ailleurs voire dans une autre
feuille.

Il pourrait y avoir 100 combobox la procdure fonctionnerait de même. Seule
la valeur de
fin de la boucle For ... Next serait à changer.

Quant à voir ce que propose AV, cela ne me dérange en aucune façon. C'est le
but de ce forum.
C'est même là qu'est, à mon avis, tout son intérêt. Souvent je me suis rendu
compte que j'allais
chercher midi à quatorze heure faute de connaissance. J'apprends énormément
à la lecture des solutions
proposées par tous les contributeurs.

Bonne soirée
Claude


"David" <(Pas de Spam) a écrit dans le message
de news: %
Bonjour et merci Claude

Si je comprend,

Faire un copier, coller vers une autre colonne (G) et exécuter un filtre
dessus puis effacer la colonne.

L'idée est bonne.

Délicat avec 4 (voir plus) combos dans le même User.

Je vais voir ce que AV me propose si cela ne te dérange pas.

Merci quand même pour ton aide.

David




Avatar
Clément Marcotte
Bonjour,

J'ai bien regardé sur le excelabo et


T'as manqué celui-là ;-)

(Dans ce cas, ListBox ou Combobox = même combat)

http://www.excelabo.net/xl/listes.php#listesansdoublon


"David" <(Pas de Spam) a écrit dans le
message de news:
Bonjour à tous


J'utilise ceci pour remplir mes 4 combos.

Comment faire pour remplir sans doublon.
autre mais je n'arrive pas à l'adapter

à mon projet

Merci de votre aide

Private Sub Ini()
Dim L, M, N, O As Integer
Dim Plage1, Plage2, Plage3, Plage4 As String
L = Sheets("BD").Range("A65536").End(xlUp).Row
M = Sheets("BD").Range("B65536").End(xlUp).Row
N = Sheets("BD").Range("D65536").End(xlUp).Row
O = Sheets("BD").Range("F65536").End(xlUp).Row
Plage1 = Sheets("BD").Range("A2:A" & L).Address
Plage2 = Sheets("BD").Range("B2:B" & M).Address
Plage3 = Sheets("BD").Range("D2:D" & N).Address
Plage4 = Sheets("BD").Range("F2:F" & O).Address
cmbCaisse.RowSource = "'BD'!" & Plage2
cmbMutuelle.RowSource = "'BD'!" & Plage3
cmbMode.RowSource = "'BD'!" & Plage4
cmbClient.RowSource = "'BD'!" & Plage1
End Sub




Avatar
Claude Trouet
Bonsoir,
Excelabo, c'est comme Le Louvre, on ne peut pas tout visiter en un jour.
J'y retourne !
Merci
Claude

"Clément Marcotte" a écrit dans le message
de news:
Bonjour,

J'ai bien regardé sur le excelabo et


T'as manqué celui-là ;-)

(Dans ce cas, ListBox ou Combobox = même combat)

http://www.excelabo.net/xl/listes.php#listesansdoublon


"David" <(Pas de Spam) a écrit dans le
message de news:
Bonjour à tous


J'utilise ceci pour remplir mes 4 combos.

Comment faire pour remplir sans doublon.
autre mais je n'arrive pas à l'adapter

à mon projet

Merci de votre aide

Private Sub Ini()
Dim L, M, N, O As Integer
Dim Plage1, Plage2, Plage3, Plage4 As String
L = Sheets("BD").Range("A65536").End(xlUp).Row
M = Sheets("BD").Range("B65536").End(xlUp).Row
N = Sheets("BD").Range("D65536").End(xlUp).Row
O = Sheets("BD").Range("F65536").End(xlUp).Row
Plage1 = Sheets("BD").Range("A2:A" & L).Address
Plage2 = Sheets("BD").Range("B2:B" & M).Address
Plage3 = Sheets("BD").Range("D2:D" & N).Address
Plage4 = Sheets("BD").Range("F2:F" & O).Address
cmbCaisse.RowSource = "'BD'!" & Plage2
cmbMutuelle.RowSource = "'BD'!" & Plage3
cmbMode.RowSource = "'BD'!" & Plage4
cmbClient.RowSource = "'BD'!" & Plage1
End Sub







Avatar
Daniel.M
Salut,

Voici un exemple basé sur le code fourni par Alain, où 3 combobox sont remplis
en fonction des données en colonne A, B, C.

Pour en remplir d'autres, tu invoques RempliComboUnik avec les deux bons
paramètres: la plage source et le combo de destination.


Sub EssaiComboFillUniq()
RempliComboUnik Sheets("Feuil1").Range("A1:A" & _
Sheets("Feuil1").Range("A65536").End(xlUp).Row), _
Worksheets("BD").ComboBox1
RempliComboUnik Sheets("Feuil1").Range("B1:B" & _
Sheets("Feuil1").Range("B65536").End(xlUp).Row), _
Worksheets("BD").ComboBox2
RempliComboUnik Sheets("Feuil1").Range("C1:C" & _
Sheets("Feuil1").Range("C65536").End(xlUp).Row), _
Worksheets("BD").ComboBox3
End Sub

Sub RempliComboUnik(Plage As Range, QuelCombo As MSForms.ComboBox)

Dim C As Range
Dim Tbl As New Collection
Dim i As Integer

On Error Resume Next
For Each C In Plage
If Not IsError(C) Then Tbl.Add C.Value, CStr(C.Value)
Next C
On Error GoTo 0

With QuelCombo
.Clear
For i = 1 To Tbl.Count
.AddItem Tbl(i)
Next i
.ListIndex = 0
End With

Set Tbl = Nothing

End Sub

Salutations,

Daniel M.
Avatar
Misange
;-)
Je dirai ça à ma fille... Une copie américaine en visite à paris lui a
dit la même chose. Résultat elles ont "fait" le Louvre en 3 jours ... De
suite ! de quoi vous dégouter de l'art pour un bon moment. Je voudrais
pas que tu t'écoeures Claude !
J'ai commencé à mettre la proc d'AV en forme pour excelabo et pan, faut
déjà que j'ajoute la modif sympa de Daniel, et j'avais oublié qu'il y
avait déjà la proc de Clément et Daniel (encore !)...
Pffft...

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

on 05/11/2004 18:50:
Bonsoir,
Excelabo, c'est comme Le Louvre, on ne peut pas tout visiter en un jour.
J'y retourne !
Merci
Claude

"Clément Marcotte" a écrit dans le message
de news:

Bonjour,


J'ai bien regardé sur le excelabo et


T'as manqué celui-là ;-)

(Dans ce cas, ListBox ou Combobox = même combat)

http://www.excelabo.net/xl/listes.php#listesansdoublon


"David" <(Pas de Spam) a écrit dans le
message de news:

Bonjour à tous


J'utilise ceci pour remplir mes 4 combos.

Comment faire pour remplir sans doublon.


autre mais je n'arrive pas à l'adapter

à mon projet

Merci de votre aide

Private Sub Ini()
Dim L, M, N, O As Integer
Dim Plage1, Plage2, Plage3, Plage4 As String
L = Sheets("BD").Range("A65536").End(xlUp).Row
M = Sheets("BD").Range("B65536").End(xlUp).Row
N = Sheets("BD").Range("D65536").End(xlUp).Row
O = Sheets("BD").Range("F65536").End(xlUp).Row
Plage1 = Sheets("BD").Range("A2:A" & L).Address
Plage2 = Sheets("BD").Range("B2:B" & M).Address
Plage3 = Sheets("BD").Range("D2:D" & N).Address
Plage4 = Sheets("BD").Range("F2:F" & O).Address
cmbCaisse.RowSource = "'BD'!" & Plage2
cmbMutuelle.RowSource = "'BD'!" & Plage3
cmbMode.RowSource = "'BD'!" & Plage4
cmbClient.RowSource = "'BD'!" & Plage1
End Sub











Avatar
David
Merci pour ton aide

Le pb (pour moi ! ) c'est que les combos sont dans un UserForm, je modifie
comment ?
Cette ligne je pense : Worksheets("BD").ComboBox1

Encore merci
Avatar
Daniel.M
En effet, c'est la seule ligne à changer.

As-tu essayé
RempliComboUnik UnePlagePeuImporte, UserForm1.ComboBox1

ou quelquechose de semblable (selon le nom de l'objet UI).

Salutations,

Daniel M.

"David" <(Pas de Spam) wrote in message
news:
Merci pour ton aide

Le pb (pour moi ! ) c'est que les combos sont dans un UserForm, je modifie
comment ?
Cette ligne je pense : Worksheets("BD").ComboBox1

Encore merci




Avatar
AV
.....AV pour rester mystérieux n'aurait peut-être
pas répondu.


Mais si, mais si mais de temps en temps je m'octroie qques temps de repos !

AV

Avatar
AV
Je constate que tu as pallier mon absence avec efficacité !
Tu marques des points pour la prochaine vague de promotions ;-)

AV
Avatar
sabatier
tu as totafi raison, starwing et il y a 4 chiffres possibles : 1, 2, 3, 4
mais bizarrement, ils ne sont pas dans l'ordre d'affichage du choix qui
t'est proposé dans VBE quand tu ouvres la parenthèse juste après End...
encore un coup à laisser AV mystérieux, je pense, lui qui adore user de ces
chiffres qui marquent le fossé qui existe entre les MVPs et la valetaille...
jps

"Starwing" a écrit dans le message de
news:
Je divine donc que .End(2).Row ou .End(1).Row
veut sûrement dire xldown ou autres gadgets du genre...


1 2 3 4