Bonjour, bien qu'il y ai deja pas mal de chose sur le sujet, je n'ai pas
trouvé encore chaussure a mon pied!
Je voudrais, par macro affecter la propriétés "RowSource" d'un combobox a
partir de données extraite d'une colonne d'une feuille comportant environ
15000 lignes mais sans doublons et si possible sans les cellules vides non
plus?!
D'avance, merci a vous tous
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JB
Bonsoir,
Liste en A2:A20000
Private Sub UserForm_Initialize() Dim TempCol As New Collection Sheets("ListeSansDoublonsTriéCollection").[a2:A20000].Sort Key1:=[A2] On Error Resume Next For Each c In Range([A2], [A65000].End(xlUp)) TempCol.Add Item:=c, key:=CStr(c) Next c On Error GoTo 0 For Each i In TempCol Me.ComboBox1.AddItem i Next i End Sub
http://cjoint.com/?ksu71xfljn
Cordialement JB
Bonjour, bien qu'il y ai deja pas mal de chose sur le sujet, je n'ai pas trouvé encore chaussure a mon pied! Je voudrais, par macro affecter la propriétés "RowSource" d'un combob ox a partir de données extraite d'une colonne d'une feuille comportant envir on 15000 lignes mais sans doublons et si possible sans les cellules vides non plus?! D'avance, merci a vous tous
Bonsoir,
Liste en A2:A20000
Private Sub UserForm_Initialize()
Dim TempCol As New Collection
Sheets("ListeSansDoublonsTriéCollection").[a2:A20000].Sort
Key1:=[A2]
On Error Resume Next
For Each c In Range([A2], [A65000].End(xlUp))
TempCol.Add Item:=c, key:=CStr(c)
Next c
On Error GoTo 0
For Each i In TempCol
Me.ComboBox1.AddItem i
Next i
End Sub
http://cjoint.com/?ksu71xfljn
Cordialement JB
Bonjour, bien qu'il y ai deja pas mal de chose sur le sujet, je n'ai pas
trouvé encore chaussure a mon pied!
Je voudrais, par macro affecter la propriétés "RowSource" d'un combob ox a
partir de données extraite d'une colonne d'une feuille comportant envir on
15000 lignes mais sans doublons et si possible sans les cellules vides non
plus?!
D'avance, merci a vous tous
Private Sub UserForm_Initialize() Dim TempCol As New Collection Sheets("ListeSansDoublonsTriéCollection").[a2:A20000].Sort Key1:=[A2] On Error Resume Next For Each c In Range([A2], [A65000].End(xlUp)) TempCol.Add Item:=c, key:=CStr(c) Next c On Error GoTo 0 For Each i In TempCol Me.ComboBox1.AddItem i Next i End Sub
http://cjoint.com/?ksu71xfljn
Cordialement JB
Bonjour, bien qu'il y ai deja pas mal de chose sur le sujet, je n'ai pas trouvé encore chaussure a mon pied! Je voudrais, par macro affecter la propriétés "RowSource" d'un combob ox a partir de données extraite d'une colonne d'une feuille comportant envir on 15000 lignes mais sans doublons et si possible sans les cellules vides non plus?! D'avance, merci a vous tous
Daniel
Bonjour. Essaie :
Private Sub UserForm_Initialize() Range("A1", Range("A65536").End(xlUp)).AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=Range("B1"), Unique:=True Range("B1", Range("B65536").End(xlUp)).Sort key1:=Range("B1") Me.ComboBox1.RowSource = Range("B2", Range("B65536").End(xlUp)).Address End Sub
Cordialement. Daniel
Bonjour, bien qu'il y ai deja pas mal de chose sur le sujet, je n'ai pas trouvé encore chaussure a mon pied! Je voudrais, par macro affecter la propriétés "RowSource" d'un combobox a partir de données extraite d'une colonne d'une feuille comportant environ 15000 lignes mais sans doublons et si possible sans les cellules vides non plus?! D'avance, merci a vous tous
Bonjour.
Essaie :
Private Sub UserForm_Initialize()
Range("A1", Range("A65536").End(xlUp)).AdvancedFilter
Action:=xlFilterCopy, _
CopyToRange:=Range("B1"), Unique:=True
Range("B1", Range("B65536").End(xlUp)).Sort key1:=Range("B1")
Me.ComboBox1.RowSource = Range("B2", Range("B65536").End(xlUp)).Address
End Sub
Cordialement.
Daniel
Bonjour, bien qu'il y ai deja pas mal de chose sur le sujet, je n'ai pas
trouvé encore chaussure a mon pied!
Je voudrais, par macro affecter la propriétés "RowSource" d'un combobox a
partir de données extraite d'une colonne d'une feuille comportant environ
15000 lignes mais sans doublons et si possible sans les cellules vides non
plus?!
D'avance, merci a vous tous
Private Sub UserForm_Initialize() Range("A1", Range("A65536").End(xlUp)).AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=Range("B1"), Unique:=True Range("B1", Range("B65536").End(xlUp)).Sort key1:=Range("B1") Me.ComboBox1.RowSource = Range("B2", Range("B65536").End(xlUp)).Address End Sub
Cordialement. Daniel
Bonjour, bien qu'il y ai deja pas mal de chose sur le sujet, je n'ai pas trouvé encore chaussure a mon pied! Je voudrais, par macro affecter la propriétés "RowSource" d'un combobox a partir de données extraite d'une colonne d'une feuille comportant environ 15000 lignes mais sans doublons et si possible sans les cellules vides non plus?! D'avance, merci a vous tous
StDonat
Merci JB, pour la réponse ainsi que pour le fichier plein d'astuces qui me seront trés utiles. Mais malgé ça, comme je ne suis pas bien doué je n'arrive pas a modifier ta solution de facon a ce que le trie n'affecte pas les données presente sur la feuille sans passer par la solution du copier coller que je ne trouve pas trés éllégante!! Merci à tous
Bonsoir,
Liste en A2:A20000
Private Sub UserForm_Initialize() Dim TempCol As New Collection Sheets("ListeSansDoublonsTriéCollection").[a2:A20000].Sort Key1:=[A2] On Error Resume Next For Each c In Range([A2], [A65000].End(xlUp)) TempCol.Add Item:=c, key:=CStr(c) Next c On Error GoTo 0 For Each i In TempCol Me.ComboBox1.AddItem i Next i End Sub
http://cjoint.com/?ksu71xfljn
Cordialement JB
Bonjour, bien qu'il y ai deja pas mal de chose sur le sujet, je n'ai pas trouvé encore chaussure a mon pied! Je voudrais, par macro affecter la propriétés "RowSource" d'un combobox a partir de données extraite d'une colonne d'une feuille comportant environ 15000 lignes mais sans doublons et si possible sans les cellules vides non plus?! D'avance, merci a vous tous
Merci JB, pour la réponse ainsi que pour le fichier plein d'astuces qui me
seront trés utiles. Mais malgé ça, comme je ne suis pas bien doué je n'arrive
pas a modifier ta solution de facon a ce que le trie n'affecte pas les
données presente sur la feuille sans passer par la solution du copier coller
que je ne trouve pas trés éllégante!!
Merci à tous
Bonsoir,
Liste en A2:A20000
Private Sub UserForm_Initialize()
Dim TempCol As New Collection
Sheets("ListeSansDoublonsTriéCollection").[a2:A20000].Sort
Key1:=[A2]
On Error Resume Next
For Each c In Range([A2], [A65000].End(xlUp))
TempCol.Add Item:=c, key:=CStr(c)
Next c
On Error GoTo 0
For Each i In TempCol
Me.ComboBox1.AddItem i
Next i
End Sub
http://cjoint.com/?ksu71xfljn
Cordialement JB
Bonjour, bien qu'il y ai deja pas mal de chose sur le sujet, je n'ai pas
trouvé encore chaussure a mon pied!
Je voudrais, par macro affecter la propriétés "RowSource" d'un combobox a
partir de données extraite d'une colonne d'une feuille comportant environ
15000 lignes mais sans doublons et si possible sans les cellules vides non
plus?!
D'avance, merci a vous tous
Merci JB, pour la réponse ainsi que pour le fichier plein d'astuces qui me seront trés utiles. Mais malgé ça, comme je ne suis pas bien doué je n'arrive pas a modifier ta solution de facon a ce que le trie n'affecte pas les données presente sur la feuille sans passer par la solution du copier coller que je ne trouve pas trés éllégante!! Merci à tous
Bonsoir,
Liste en A2:A20000
Private Sub UserForm_Initialize() Dim TempCol As New Collection Sheets("ListeSansDoublonsTriéCollection").[a2:A20000].Sort Key1:=[A2] On Error Resume Next For Each c In Range([A2], [A65000].End(xlUp)) TempCol.Add Item:=c, key:=CStr(c) Next c On Error GoTo 0 For Each i In TempCol Me.ComboBox1.AddItem i Next i End Sub
http://cjoint.com/?ksu71xfljn
Cordialement JB
Bonjour, bien qu'il y ai deja pas mal de chose sur le sujet, je n'ai pas trouvé encore chaussure a mon pied! Je voudrais, par macro affecter la propriétés "RowSource" d'un combobox a partir de données extraite d'une colonne d'une feuille comportant environ 15000 lignes mais sans doublons et si possible sans les cellules vides non plus?! D'avance, merci a vous tous
JB
1/ Avec liste intermédiaire dans le tableur:
On récupère une liste sans doublons à l'aide du filtre élaroré
La liste d'origine est en colonne A:
Col A Col C Liste Liste Compta Compta Etudes Etudes Marketing Marketing Etudes Production Compta Etudes
Private Sub UserForm_Initialize() [A1:A20000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:= _ Sheets("ListeSansDoublonsTriéFiltre").[c1], Unique:=True [C2:C20000].Sort Key1:=Range("c2") Me.ComboBox1.RowSource = "C2:C" & [C65000].End(xlUp).Row End Sub
2/ Sans liste intermédiaire dans le tableur:
Liste sans doublons triée avec collection -on ne tri pas dans le tableur -le tri se fait dans un tableau (0,9 s pour 10.000 éléments)
Private Sub UserForm_Initialize() Dim TempCol As New Collection On Error Resume Next For Each c In Range([A2], [A65000].End(xlUp)) TempCol.Add Item:=c, key:=CStr(c) Next c On Error GoTo 0 '-- transfert dans un tableau Dim TempTab() ReDim TempTab(1 To TempCol.Count) For i = 1 To TempCol.Count TempTab(i) = TempCol(i) Next Call Tri(TempTab, 1, UBound(TempTab, 1)) Me.ComboBox1.List = TempTab End Sub
Sub Tri(a, gauc, droi) ' Quick sort ref = a((gauc + droi) 2) g = gauc: d = droi Do Do While a(g) < ref: g = g + 1: Loop Do While ref < a(d): d = d - 1: Loop If g <= d Then temp = a(g): a(g) = a(d): a(d) = temp g = g + 1: d = d - 1 End If Loop While g <= d If g < droi Then Call Tri(a, g, droi) If gauc < d Then Call Tri(a, gauc, d) End Sub
JB
Merci JB, pour la réponse ainsi que pour le fichier plein d'astuces qui me seront trés utiles. Mais malgé ça, comme je ne suis pas bien doué je n'arrive pas a modifier ta solution de facon a ce que le trie n'affecte pas les données presente sur la feuille sans passer par la solution du copier c oller que je ne trouve pas trés éllégante!! Merci à tous
Bonsoir,
Liste en A2:A20000
Private Sub UserForm_Initialize() Dim TempCol As New Collection Sheets("ListeSansDoublonsTriéCollection").[a2:A20000].Sort Key1:=[A2] On Error Resume Next For Each c In Range([A2], [A65000].End(xlUp)) TempCol.Add Item:=c, key:=CStr(c) Next c On Error GoTo 0 For Each i In TempCol Me.ComboBox1.AddItem i Next i End Sub
http://cjoint.com/?ksu71xfljn
Cordialement JB
Bonjour, bien qu'il y ai deja pas mal de chose sur le sujet, je n'ai pas trouvé encore chaussure a mon pied! Je voudrais, par macro affecter la propriétés "RowSource" d'un co mbobox a partir de données extraite d'une colonne d'une feuille comportant e nviron 15000 lignes mais sans doublons et si possible sans les cellules vide s non plus?! D'avance, merci a vous tous
1/ Avec liste intermédiaire dans le tableur:
On récupère une liste sans doublons à l'aide du filtre élaroré
La liste d'origine est en colonne A:
Col A Col C
Liste Liste
Compta Compta
Etudes Etudes
Marketing Marketing
Etudes Production
Compta
Etudes
Private Sub UserForm_Initialize()
[A1:A20000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:= _
Sheets("ListeSansDoublonsTriéFiltre").[c1], Unique:=True
[C2:C20000].Sort Key1:=Range("c2")
Me.ComboBox1.RowSource = "C2:C" & [C65000].End(xlUp).Row
End Sub
2/ Sans liste intermédiaire dans le tableur:
Liste sans doublons triée avec collection
-on ne tri pas dans le tableur
-le tri se fait dans un tableau (0,9 s pour 10.000 éléments)
Private Sub UserForm_Initialize()
Dim TempCol As New Collection
On Error Resume Next
For Each c In Range([A2], [A65000].End(xlUp))
TempCol.Add Item:=c, key:=CStr(c)
Next c
On Error GoTo 0
'-- transfert dans un tableau
Dim TempTab()
ReDim TempTab(1 To TempCol.Count)
For i = 1 To TempCol.Count
TempTab(i) = TempCol(i)
Next
Call Tri(TempTab, 1, UBound(TempTab, 1))
Me.ComboBox1.List = TempTab
End Sub
Sub Tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call Tri(a, g, droi)
If gauc < d Then Call Tri(a, gauc, d)
End Sub
JB
Merci JB, pour la réponse ainsi que pour le fichier plein d'astuces qui me
seront trés utiles. Mais malgé ça, comme je ne suis pas bien doué je n'arrive
pas a modifier ta solution de facon a ce que le trie n'affecte pas les
données presente sur la feuille sans passer par la solution du copier c oller
que je ne trouve pas trés éllégante!!
Merci à tous
Bonsoir,
Liste en A2:A20000
Private Sub UserForm_Initialize()
Dim TempCol As New Collection
Sheets("ListeSansDoublonsTriéCollection").[a2:A20000].Sort
Key1:=[A2]
On Error Resume Next
For Each c In Range([A2], [A65000].End(xlUp))
TempCol.Add Item:=c, key:=CStr(c)
Next c
On Error GoTo 0
For Each i In TempCol
Me.ComboBox1.AddItem i
Next i
End Sub
http://cjoint.com/?ksu71xfljn
Cordialement JB
Bonjour, bien qu'il y ai deja pas mal de chose sur le sujet, je n'ai pas
trouvé encore chaussure a mon pied!
Je voudrais, par macro affecter la propriétés "RowSource" d'un co mbobox a
partir de données extraite d'une colonne d'une feuille comportant e nviron
15000 lignes mais sans doublons et si possible sans les cellules vide s non
plus?!
D'avance, merci a vous tous
On récupère une liste sans doublons à l'aide du filtre élaroré
La liste d'origine est en colonne A:
Col A Col C Liste Liste Compta Compta Etudes Etudes Marketing Marketing Etudes Production Compta Etudes
Private Sub UserForm_Initialize() [A1:A20000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:= _ Sheets("ListeSansDoublonsTriéFiltre").[c1], Unique:=True [C2:C20000].Sort Key1:=Range("c2") Me.ComboBox1.RowSource = "C2:C" & [C65000].End(xlUp).Row End Sub
2/ Sans liste intermédiaire dans le tableur:
Liste sans doublons triée avec collection -on ne tri pas dans le tableur -le tri se fait dans un tableau (0,9 s pour 10.000 éléments)
Private Sub UserForm_Initialize() Dim TempCol As New Collection On Error Resume Next For Each c In Range([A2], [A65000].End(xlUp)) TempCol.Add Item:=c, key:=CStr(c) Next c On Error GoTo 0 '-- transfert dans un tableau Dim TempTab() ReDim TempTab(1 To TempCol.Count) For i = 1 To TempCol.Count TempTab(i) = TempCol(i) Next Call Tri(TempTab, 1, UBound(TempTab, 1)) Me.ComboBox1.List = TempTab End Sub
Sub Tri(a, gauc, droi) ' Quick sort ref = a((gauc + droi) 2) g = gauc: d = droi Do Do While a(g) < ref: g = g + 1: Loop Do While ref < a(d): d = d - 1: Loop If g <= d Then temp = a(g): a(g) = a(d): a(d) = temp g = g + 1: d = d - 1 End If Loop While g <= d If g < droi Then Call Tri(a, g, droi) If gauc < d Then Call Tri(a, gauc, d) End Sub
JB
Merci JB, pour la réponse ainsi que pour le fichier plein d'astuces qui me seront trés utiles. Mais malgé ça, comme je ne suis pas bien doué je n'arrive pas a modifier ta solution de facon a ce que le trie n'affecte pas les données presente sur la feuille sans passer par la solution du copier c oller que je ne trouve pas trés éllégante!! Merci à tous
Bonsoir,
Liste en A2:A20000
Private Sub UserForm_Initialize() Dim TempCol As New Collection Sheets("ListeSansDoublonsTriéCollection").[a2:A20000].Sort Key1:=[A2] On Error Resume Next For Each c In Range([A2], [A65000].End(xlUp)) TempCol.Add Item:=c, key:=CStr(c) Next c On Error GoTo 0 For Each i In TempCol Me.ComboBox1.AddItem i Next i End Sub
http://cjoint.com/?ksu71xfljn
Cordialement JB
Bonjour, bien qu'il y ai deja pas mal de chose sur le sujet, je n'ai pas trouvé encore chaussure a mon pied! Je voudrais, par macro affecter la propriétés "RowSource" d'un co mbobox a partir de données extraite d'une colonne d'une feuille comportant e nviron 15000 lignes mais sans doublons et si possible sans les cellules vide s non plus?! D'avance, merci a vous tous