Peut-on, SVP, utiliser les données d'un tableau seulement en mémoire (sans
écriture sur aucune feuille) comme RowSource d'une ComboBox
Si oui, ex. de code VBA.
merci
accessoirement , Ex. de code VBA pour trier toujours en mémoire un tableau à
2 dimensions (200 lignes, 15 col)
avec choix possible de la colonne de ref. pour le tri.
Le tableau ne doit pas etre écrit sur une feuille.
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
Denis Michon
Bonjour Chris,
Question 1
Oui si ton combobox provient de la barre d'outils "Contrôle" ou dans un formulaire
En utilisant un tableau (array)
'------------------------- Sub MonCombobox() Dim Tblo(1 To 10), A as Integer
For A = LBound(Tblo) To UBound(Tblo) Tblo(A) = "Toto" & A Next Me.ComboBox1.List = Tblo
End Sub '-------------------------
Question 2
En provenance du forum anglais . Réponse donnée par "tom Ogilvy"
Cette procédure trie sur la première colonne d'un tableau, Comme tu vas l'adapter pour trier sur une colonne au choix, j'espère que tu publieras les transformations apportées à la procédure pour la réalisation de ton projet...
'------------------------------------------------ Sub Test()
'Trier une plage ayant plusieurs colonnes 'sur la première colonne de cette plage
Worksheets("Feuil1").ComboBox1.Clear
varr = Range(Cells(1, 1), Cells(10, 3))
'Pour une plage ayant plusieurs colonnes QuickSort2 varr, 1, LBound(varr, 1), UBound(varr, 1)
Worksheets("Feuil1").ComboBox1.List = varr
End Sub '------------------------------------------------
Sub QuickSort2(SortArray, col, L, R) 'Originally Posted by Jim Rech 10/20/98 Excel.Programming 'Modified to sort on first column of a two dimensional array 'Modified to handle a a second dimension greater than 1 (or zero) Dim i, j, X, Y, mm
i = L j = R X = SortArray((L + R) / 2, col)
While (i <= j) While (SortArray(i, col) < X And i < R) i = i + 1 Wend While (X < SortArray(j, col) And j > L) j = j - 1 Wend If (i <= j) Then For mm = LBound(SortArray, 2) To UBound(SortArray, 2) Y = SortArray(i, mm) SortArray(i, mm) = SortArray(j, mm) SortArray(j, mm) = Y Next mm i = i + 1 j = j - 1 End If Wend If (L < j) Then Call QuickSort2(SortArray, col, L, j) If (i < R) Then Call QuickSort2(SortArray, col, i, R) End Sub '------------------------------------------------
Salutations!
"chris.col" a écrit dans le message de news:3fb6468f$0$235$ Peut-on, SVP, utiliser les données d'un tableau seulement en mémoire (sans écriture sur aucune feuille) comme RowSource d'une ComboBox Si oui, ex. de code VBA. merci
accessoirement , Ex. de code VBA pour trier toujours en mémoire un tableau à 2 dimensions (200 lignes, 15 col) avec choix possible de la colonne de ref. pour le tri.
Le tableau ne doit pas etre écrit sur une feuille.
re-merci.
Bonjour Chris,
Question 1
Oui si ton combobox provient de la barre d'outils "Contrôle" ou dans un formulaire
En utilisant un tableau (array)
'-------------------------
Sub MonCombobox()
Dim Tblo(1 To 10), A as Integer
For A = LBound(Tblo) To UBound(Tblo)
Tblo(A) = "Toto" & A
Next
Me.ComboBox1.List = Tblo
End Sub
'-------------------------
Question 2
En provenance du forum anglais . Réponse donnée par "tom Ogilvy"
Cette procédure trie sur la première colonne d'un tableau, Comme tu
vas l'adapter pour trier sur une colonne au choix, j'espère que tu publieras les
transformations apportées à la procédure pour la réalisation de ton projet...
'------------------------------------------------
Sub Test()
'Trier une plage ayant plusieurs colonnes
'sur la première colonne de cette plage
Worksheets("Feuil1").ComboBox1.Clear
varr = Range(Cells(1, 1), Cells(10, 3))
'Pour une plage ayant plusieurs colonnes
QuickSort2 varr, 1, LBound(varr, 1), UBound(varr, 1)
Worksheets("Feuil1").ComboBox1.List = varr
End Sub
'------------------------------------------------
Sub QuickSort2(SortArray, col, L, R)
'Originally Posted by Jim Rech 10/20/98 Excel.Programming
'Modified to sort on first column of a two dimensional array
'Modified to handle a a second dimension greater than 1 (or zero)
Dim i, j, X, Y, mm
i = L
j = R
X = SortArray((L + R) / 2, col)
While (i <= j)
While (SortArray(i, col) < X And i < R)
i = i + 1
Wend
While (X < SortArray(j, col) And j > L)
j = j - 1
Wend
If (i <= j) Then
For mm = LBound(SortArray, 2) To UBound(SortArray, 2)
Y = SortArray(i, mm)
SortArray(i, mm) = SortArray(j, mm)
SortArray(j, mm) = Y
Next mm
i = i + 1
j = j - 1
End If
Wend
If (L < j) Then Call QuickSort2(SortArray, col, L, j)
If (i < R) Then Call QuickSort2(SortArray, col, i, R)
End Sub
'------------------------------------------------
Salutations!
"chris.col" <chris.col@free.fr> a écrit dans le message de news:3fb6468f$0$235$636a55ce@news.free.fr...
Peut-on, SVP, utiliser les données d'un tableau seulement en mémoire (sans
écriture sur aucune feuille) comme RowSource d'une ComboBox
Si oui, ex. de code VBA.
merci
accessoirement , Ex. de code VBA pour trier toujours en mémoire un tableau à
2 dimensions (200 lignes, 15 col)
avec choix possible de la colonne de ref. pour le tri.
Le tableau ne doit pas etre écrit sur une feuille.
Oui si ton combobox provient de la barre d'outils "Contrôle" ou dans un formulaire
En utilisant un tableau (array)
'------------------------- Sub MonCombobox() Dim Tblo(1 To 10), A as Integer
For A = LBound(Tblo) To UBound(Tblo) Tblo(A) = "Toto" & A Next Me.ComboBox1.List = Tblo
End Sub '-------------------------
Question 2
En provenance du forum anglais . Réponse donnée par "tom Ogilvy"
Cette procédure trie sur la première colonne d'un tableau, Comme tu vas l'adapter pour trier sur une colonne au choix, j'espère que tu publieras les transformations apportées à la procédure pour la réalisation de ton projet...
'------------------------------------------------ Sub Test()
'Trier une plage ayant plusieurs colonnes 'sur la première colonne de cette plage
Worksheets("Feuil1").ComboBox1.Clear
varr = Range(Cells(1, 1), Cells(10, 3))
'Pour une plage ayant plusieurs colonnes QuickSort2 varr, 1, LBound(varr, 1), UBound(varr, 1)
Worksheets("Feuil1").ComboBox1.List = varr
End Sub '------------------------------------------------
Sub QuickSort2(SortArray, col, L, R) 'Originally Posted by Jim Rech 10/20/98 Excel.Programming 'Modified to sort on first column of a two dimensional array 'Modified to handle a a second dimension greater than 1 (or zero) Dim i, j, X, Y, mm
i = L j = R X = SortArray((L + R) / 2, col)
While (i <= j) While (SortArray(i, col) < X And i < R) i = i + 1 Wend While (X < SortArray(j, col) And j > L) j = j - 1 Wend If (i <= j) Then For mm = LBound(SortArray, 2) To UBound(SortArray, 2) Y = SortArray(i, mm) SortArray(i, mm) = SortArray(j, mm) SortArray(j, mm) = Y Next mm i = i + 1 j = j - 1 End If Wend If (L < j) Then Call QuickSort2(SortArray, col, L, j) If (i < R) Then Call QuickSort2(SortArray, col, i, R) End Sub '------------------------------------------------
Salutations!
"chris.col" a écrit dans le message de news:3fb6468f$0$235$ Peut-on, SVP, utiliser les données d'un tableau seulement en mémoire (sans écriture sur aucune feuille) comme RowSource d'une ComboBox Si oui, ex. de code VBA. merci
accessoirement , Ex. de code VBA pour trier toujours en mémoire un tableau à 2 dimensions (200 lignes, 15 col) avec choix possible de la colonne de ref. pour le tri.
Le tableau ne doit pas etre écrit sur une feuille.
re-merci.
garnote
Salut chris,
Supposons qu'une plage de cellules contiguës se nomme «tableau». Cette macro met en mémoire ledit tableau et donne l'élément contenu dans la 2ième ligne et 3ième colonne de «tableau»..
Sub Identifie_Élément_Tableau() Set ici = Range("tableau") MsgBox ici(2, 3) End Sub
Serge
"chris.col" a écrit dans le message de news: 3fb6468f$0$235$
Peut-on, SVP, utiliser les données d'un tableau seulement en mémoire (sans écriture sur aucune feuille) comme RowSource d'une ComboBox Si oui, ex. de code VBA. merci
Salut chris,
Supposons qu'une plage de cellules contiguës se
nomme «tableau». Cette macro met en mémoire
ledit tableau et donne l'élément contenu dans la
2ième ligne et 3ième colonne de «tableau»..
Sub Identifie_Élément_Tableau()
Set ici = Range("tableau")
MsgBox ici(2, 3)
End Sub
Serge
"chris.col" <chris.col@free.fr> a écrit dans le message de news:
3fb6468f$0$235$636a55ce@news.free.fr...
Peut-on, SVP, utiliser les données d'un tableau seulement en mémoire (sans
écriture sur aucune feuille) comme RowSource d'une ComboBox
Si oui, ex. de code VBA.
merci
Supposons qu'une plage de cellules contiguës se nomme «tableau». Cette macro met en mémoire ledit tableau et donne l'élément contenu dans la 2ième ligne et 3ième colonne de «tableau»..
Sub Identifie_Élément_Tableau() Set ici = Range("tableau") MsgBox ici(2, 3) End Sub
Serge
"chris.col" a écrit dans le message de news: 3fb6468f$0$235$
Peut-on, SVP, utiliser les données d'un tableau seulement en mémoire (sans écriture sur aucune feuille) comme RowSource d'une ComboBox Si oui, ex. de code VBA. merci