Avec une ListBox sur un Userform (à défaut de précision)
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
With Sheets("Feuil3") 'à adapter !
.[A:B].AutoFilter Field:=2, Criteria1:="oui"
For Each C In .Range("A2",
[A65536].End(3)).SpecialCells(xlCellTypeVisible)
ListBox1.AddItem C Text
Next
.[A:B].AutoFilter
End With
End Sub
AV
AV
Avec une ListBox sur un Userform (à défaut de précision)
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
With Sheets("Feuil3") 'à adapter !
.[A:B].AutoFilter Field:=2, Criteria1:="oui"
For Each C In .Range("A2",
[A65536].End(3)).SpecialCells(xlCellTypeVisible)
ListBox1.AddItem C Text
Next
.[A:B].AutoFilter
End With
End Sub
AV
AV
Avec une ListBox sur un Userform (à défaut de précision)
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
With Sheets("Feuil3") 'à adapter !
.[A:B].AutoFilter Field:=2, Criteria1:="oui"
For Each C In .Range("A2",
[A65536].End(3)).SpecialCells(xlCellTypeVisible)
ListBox1.AddItem C Text
Next
.[A:B].AutoFilter
End With
End Sub
AV
AV
Bonjour Pfval,
Une autre alternative....si ta liste est longue
1 ) n'affiche que les données répondant aux critères
1 ) trie par ordre alphabétique les données affichées dans le combobox
2 ) évite la présence des doublons le cas échéant
Pour ce faire, tu dois charger la bibliothèque :
"Microsoft DAO 3.6 objects librairy"
J'ai donnée à la colonne A1, B1 les étiquettes de colonnes Titre1 et
Titre2
Le combobox s'appelle Combobox1 et il est situé sur la feuil1 de même que
les données.
'------------------------------------
Sub RequêteExcel()
Dim bd As Database, Rst As Recordset, Rg As Range
Dim Requete As String
'définir la plage de cellule: Ne pas inclure la ligne d'étiquette de
colonne
With Worksheets("Feuil1")
.Range("A1:B" & .Range("A65356").End(xlUp).Row).Name = "NomColonne"
End With
'Ouvrir la base de données
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
'Définir la requête formant le recordset
Requete = "SELECT titre1 From NomColonne " & vbCrLf & _
"Where Ucase(titre2) = 'OUI'" & vbCrLf & _
"Group By titre1 ORDER By titre1"
'Création du recordset
Set Rst = bd.OpenRecordset(Requete)
Rst.MoveLast
Rst.MoveFirst
'Initialistation du Combobox1 en Feuil1
Do Until Rst.EOF
Feuil1.ComboBox1.AddItem Rst(0)
Rst.MoveNext
Loop
'Élimination du NOM de la plage
ThisWorkbook.Names("NomColonne").Delete
Rst.Close 'ferme le recordset
bd.Close 'Ferme la base de données
'Libère la mémoire des objets
Set Rst = Nothing: Set bd = Nothing
End Sub
'------------------------------------
Salutations!
"pfval" a écrit dans le message de
news:
Bonjour,
J'arrive pas à faire la procédure suivante
des noms en colonne a, des "oui" et des "non" en colonne b
a b
toto oui
tata oui
titi non
pop oui
je voudrai faire apparaitre que les noms qui ont "oui" dans une listbox.
Qui va être mon sauveur ??
Merci en tout cas de vos réponses
Bonjour Pfval,
Une autre alternative....si ta liste est longue
1 ) n'affiche que les données répondant aux critères
1 ) trie par ordre alphabétique les données affichées dans le combobox
2 ) évite la présence des doublons le cas échéant
Pour ce faire, tu dois charger la bibliothèque :
"Microsoft DAO 3.6 objects librairy"
J'ai donnée à la colonne A1, B1 les étiquettes de colonnes Titre1 et
Titre2
Le combobox s'appelle Combobox1 et il est situé sur la feuil1 de même que
les données.
'------------------------------------
Sub RequêteExcel()
Dim bd As Database, Rst As Recordset, Rg As Range
Dim Requete As String
'définir la plage de cellule: Ne pas inclure la ligne d'étiquette de
colonne
With Worksheets("Feuil1")
.Range("A1:B" & .Range("A65356").End(xlUp).Row).Name = "NomColonne"
End With
'Ouvrir la base de données
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
'Définir la requête formant le recordset
Requete = "SELECT titre1 From NomColonne " & vbCrLf & _
"Where Ucase(titre2) = 'OUI'" & vbCrLf & _
"Group By titre1 ORDER By titre1"
'Création du recordset
Set Rst = bd.OpenRecordset(Requete)
Rst.MoveLast
Rst.MoveFirst
'Initialistation du Combobox1 en Feuil1
Do Until Rst.EOF
Feuil1.ComboBox1.AddItem Rst(0)
Rst.MoveNext
Loop
'Élimination du NOM de la plage
ThisWorkbook.Names("NomColonne").Delete
Rst.Close 'ferme le recordset
bd.Close 'Ferme la base de données
'Libère la mémoire des objets
Set Rst = Nothing: Set bd = Nothing
End Sub
'------------------------------------
Salutations!
"pfval" <pfval@wanadoo.fr> a écrit dans le message de
news:uv4sbk1hEHA.1972@TK2MSFTNGP09.phx.gbl...
Bonjour,
J'arrive pas à faire la procédure suivante
des noms en colonne a, des "oui" et des "non" en colonne b
a b
toto oui
tata oui
titi non
pop oui
je voudrai faire apparaitre que les noms qui ont "oui" dans une listbox.
Qui va être mon sauveur ??
Merci en tout cas de vos réponses
Bonjour Pfval,
Une autre alternative....si ta liste est longue
1 ) n'affiche que les données répondant aux critères
1 ) trie par ordre alphabétique les données affichées dans le combobox
2 ) évite la présence des doublons le cas échéant
Pour ce faire, tu dois charger la bibliothèque :
"Microsoft DAO 3.6 objects librairy"
J'ai donnée à la colonne A1, B1 les étiquettes de colonnes Titre1 et
Titre2
Le combobox s'appelle Combobox1 et il est situé sur la feuil1 de même que
les données.
'------------------------------------
Sub RequêteExcel()
Dim bd As Database, Rst As Recordset, Rg As Range
Dim Requete As String
'définir la plage de cellule: Ne pas inclure la ligne d'étiquette de
colonne
With Worksheets("Feuil1")
.Range("A1:B" & .Range("A65356").End(xlUp).Row).Name = "NomColonne"
End With
'Ouvrir la base de données
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
'Définir la requête formant le recordset
Requete = "SELECT titre1 From NomColonne " & vbCrLf & _
"Where Ucase(titre2) = 'OUI'" & vbCrLf & _
"Group By titre1 ORDER By titre1"
'Création du recordset
Set Rst = bd.OpenRecordset(Requete)
Rst.MoveLast
Rst.MoveFirst
'Initialistation du Combobox1 en Feuil1
Do Until Rst.EOF
Feuil1.ComboBox1.AddItem Rst(0)
Rst.MoveNext
Loop
'Élimination du NOM de la plage
ThisWorkbook.Names("NomColonne").Delete
Rst.Close 'ferme le recordset
bd.Close 'Ferme la base de données
'Libère la mémoire des objets
Set Rst = Nothing: Set bd = Nothing
End Sub
'------------------------------------
Salutations!
"pfval" a écrit dans le message de
news:
Bonjour,
J'arrive pas à faire la procédure suivante
des noms en colonne a, des "oui" et des "non" en colonne b
a b
toto oui
tata oui
titi non
pop oui
je voudrai faire apparaitre que les noms qui ont "oui" dans une listbox.
Qui va être mon sauveur ??
Merci en tout cas de vos réponses
UserForm1.ComboBox1.AddItem c Text
UserForm1.ComboBox1.AddItem c Text
UserForm1.ComboBox1.AddItem c Text
Bonjour Pfval,
Une autre alternative....si ta liste est longue
1 ) n'affiche que les données répondant aux critères
1 ) trie par ordre alphabétique les données affichées dans le combobox
2 ) évite la présence des doublons le cas échéant
Pour ce faire, tu dois charger la bibliothèque :
"Microsoft DAO 3.6 objects librairy"
J'ai donnée à la colonne A1, B1 les étiquettes de colonnes Titre1 et
Titre2
Le combobox s'appelle Combobox1 et il est situé sur la feuil1 de même que
les données.
'------------------------------------
Sub RequêteExcel()
Dim bd As Database, Rst As Recordset, Rg As Range
Dim Requete As String
'définir la plage de cellule: Ne pas inclure la ligne d'étiquette de
colonne
With Worksheets("Feuil1")
.Range("A1:B" & .Range("A65356").End(xlUp).Row).Name = "NomColonne"
End With
'Ouvrir la base de données
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
'Définir la requête formant le recordset
Requete = "SELECT titre1 From NomColonne " & vbCrLf & _
"Where Ucase(titre2) = 'OUI'" & vbCrLf & _
"Group By titre1 ORDER By titre1"
'Création du recordset
Set Rst = bd.OpenRecordset(Requete)
Rst.MoveLast
Rst.MoveFirst
'Initialistation du Combobox1 en Feuil1
Do Until Rst.EOF
Feuil1.ComboBox1.AddItem Rst(0)
Rst.MoveNext
Loop
'Élimination du NOM de la plage
ThisWorkbook.Names("NomColonne").Delete
Rst.Close 'ferme le recordset
bd.Close 'Ferme la base de données
'Libère la mémoire des objets
Set Rst = Nothing: Set bd = Nothing
End Sub
'------------------------------------
Salutations!
"pfval" a écrit dans le message de
news:
Bonjour,
J'arrive pas à faire la procédure suivante
des noms en colonne a, des "oui" et des "non" en colonne b
a b
toto oui
tata oui
titi non
pop oui
je voudrai faire apparaitre que les noms qui ont "oui" dans une listbox.
Qui va être mon sauveur ??
Merci en tout cas de vos réponses
Bonjour Pfval,
Une autre alternative....si ta liste est longue
1 ) n'affiche que les données répondant aux critères
1 ) trie par ordre alphabétique les données affichées dans le combobox
2 ) évite la présence des doublons le cas échéant
Pour ce faire, tu dois charger la bibliothèque :
"Microsoft DAO 3.6 objects librairy"
J'ai donnée à la colonne A1, B1 les étiquettes de colonnes Titre1 et
Titre2
Le combobox s'appelle Combobox1 et il est situé sur la feuil1 de même que
les données.
'------------------------------------
Sub RequêteExcel()
Dim bd As Database, Rst As Recordset, Rg As Range
Dim Requete As String
'définir la plage de cellule: Ne pas inclure la ligne d'étiquette de
colonne
With Worksheets("Feuil1")
.Range("A1:B" & .Range("A65356").End(xlUp).Row).Name = "NomColonne"
End With
'Ouvrir la base de données
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
'Définir la requête formant le recordset
Requete = "SELECT titre1 From NomColonne " & vbCrLf & _
"Where Ucase(titre2) = 'OUI'" & vbCrLf & _
"Group By titre1 ORDER By titre1"
'Création du recordset
Set Rst = bd.OpenRecordset(Requete)
Rst.MoveLast
Rst.MoveFirst
'Initialistation du Combobox1 en Feuil1
Do Until Rst.EOF
Feuil1.ComboBox1.AddItem Rst(0)
Rst.MoveNext
Loop
'Élimination du NOM de la plage
ThisWorkbook.Names("NomColonne").Delete
Rst.Close 'ferme le recordset
bd.Close 'Ferme la base de données
'Libère la mémoire des objets
Set Rst = Nothing: Set bd = Nothing
End Sub
'------------------------------------
Salutations!
"pfval" <pfval@wanadoo.fr> a écrit dans le message de
news:uv4sbk1hEHA.1972@TK2MSFTNGP09.phx.gbl...
Bonjour,
J'arrive pas à faire la procédure suivante
des noms en colonne a, des "oui" et des "non" en colonne b
a b
toto oui
tata oui
titi non
pop oui
je voudrai faire apparaitre que les noms qui ont "oui" dans une listbox.
Qui va être mon sauveur ??
Merci en tout cas de vos réponses
Bonjour Pfval,
Une autre alternative....si ta liste est longue
1 ) n'affiche que les données répondant aux critères
1 ) trie par ordre alphabétique les données affichées dans le combobox
2 ) évite la présence des doublons le cas échéant
Pour ce faire, tu dois charger la bibliothèque :
"Microsoft DAO 3.6 objects librairy"
J'ai donnée à la colonne A1, B1 les étiquettes de colonnes Titre1 et
Titre2
Le combobox s'appelle Combobox1 et il est situé sur la feuil1 de même que
les données.
'------------------------------------
Sub RequêteExcel()
Dim bd As Database, Rst As Recordset, Rg As Range
Dim Requete As String
'définir la plage de cellule: Ne pas inclure la ligne d'étiquette de
colonne
With Worksheets("Feuil1")
.Range("A1:B" & .Range("A65356").End(xlUp).Row).Name = "NomColonne"
End With
'Ouvrir la base de données
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
'Définir la requête formant le recordset
Requete = "SELECT titre1 From NomColonne " & vbCrLf & _
"Where Ucase(titre2) = 'OUI'" & vbCrLf & _
"Group By titre1 ORDER By titre1"
'Création du recordset
Set Rst = bd.OpenRecordset(Requete)
Rst.MoveLast
Rst.MoveFirst
'Initialistation du Combobox1 en Feuil1
Do Until Rst.EOF
Feuil1.ComboBox1.AddItem Rst(0)
Rst.MoveNext
Loop
'Élimination du NOM de la plage
ThisWorkbook.Names("NomColonne").Delete
Rst.Close 'ferme le recordset
bd.Close 'Ferme la base de données
'Libère la mémoire des objets
Set Rst = Nothing: Set bd = Nothing
End Sub
'------------------------------------
Salutations!
"pfval" a écrit dans le message de
news:
Bonjour,
J'arrive pas à faire la procédure suivante
des noms en colonne a, des "oui" et des "non" en colonne b
a b
toto oui
tata oui
titi non
pop oui
je voudrai faire apparaitre que les noms qui ont "oui" dans une listbox.
Qui va être mon sauveur ??
Merci en tout cas de vos réponses
UserForm1.ComboBox1.AddItem c Text
Le problème est que cette ligne n'existe pas dans l'exemple de code fourni
!
Par ailleurs tu parles de ListBox dans l'objet de la question et
maintenant de
Combo...
Quid de tout ça ?
Si ton adresse est valide (sinon...ben tant pis...), je t'envoie un
exemple en
bal perso
AV
UserForm1.ComboBox1.AddItem c Text
Le problème est que cette ligne n'existe pas dans l'exemple de code fourni
!
Par ailleurs tu parles de ListBox dans l'objet de la question et
maintenant de
Combo...
Quid de tout ça ?
Si ton adresse est valide (sinon...ben tant pis...), je t'envoie un
exemple en
bal perso
AV
UserForm1.ComboBox1.AddItem c Text
Le problème est que cette ligne n'existe pas dans l'exemple de code fourni
!
Par ailleurs tu parles de ListBox dans l'objet de la question et
maintenant de
Combo...
Quid de tout ça ?
Si ton adresse est valide (sinon...ben tant pis...), je t'envoie un
exemple en
bal perso
AV
Bonjour Pfval,
Une autre alternative....si ta liste est longue
1 ) n'affiche que les données répondant aux critères
1 ) trie par ordre alphabétique les données affichées dans le combobox
2 ) évite la présence des doublons le cas échéant
Pour ce faire, tu dois charger la bibliothèque :
"Microsoft DAO 3.6 objects librairy"
J'ai donnée à la colonne A1, B1 les étiquettes de colonnes Titre1 et
Titre2
Le combobox s'appelle Combobox1 et il est situé sur la feuil1 de même que
les données.
'------------------------------------
Sub RequêteExcel()
Dim bd As Database, Rst As Recordset, Rg As Range
Dim Requete As String
'définir la plage de cellule: Ne pas inclure la ligne d'étiquette de
colonne
With Worksheets("Feuil1")
.Range("A1:B" & .Range("A65356").End(xlUp).Row).Name = "NomColonne"
End With
'Ouvrir la base de données
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
'Définir la requête formant le recordset
Requete = "SELECT titre1 From NomColonne " & vbCrLf & _
"Where Ucase(titre2) = 'OUI'" & vbCrLf & _
"Group By titre1 ORDER By titre1"
'Création du recordset
Set Rst = bd.OpenRecordset(Requete)
Rst.MoveLast
Rst.MoveFirst
'Initialistation du Combobox1 en Feuil1
Do Until Rst.EOF
Feuil1.ComboBox1.AddItem Rst(0)
Rst.MoveNext
Loop
'Élimination du NOM de la plage
ThisWorkbook.Names("NomColonne").Delete
Rst.Close 'ferme le recordset
bd.Close 'Ferme la base de données
'Libère la mémoire des objets
Set Rst = Nothing: Set bd = Nothing
End Sub
'------------------------------------
Salutations!
"pfval" a écrit dans le message de
news:
Bonjour,
J'arrive pas à faire la procédure suivante
des noms en colonne a, des "oui" et des "non" en colonne b
a b
toto oui
tata oui
titi non
pop oui
je voudrai faire apparaitre que les noms qui ont "oui" dans une listbox.
Qui va être mon sauveur ??
Merci en tout cas de vos réponses
Bonjour Pfval,
Une autre alternative....si ta liste est longue
1 ) n'affiche que les données répondant aux critères
1 ) trie par ordre alphabétique les données affichées dans le combobox
2 ) évite la présence des doublons le cas échéant
Pour ce faire, tu dois charger la bibliothèque :
"Microsoft DAO 3.6 objects librairy"
J'ai donnée à la colonne A1, B1 les étiquettes de colonnes Titre1 et
Titre2
Le combobox s'appelle Combobox1 et il est situé sur la feuil1 de même que
les données.
'------------------------------------
Sub RequêteExcel()
Dim bd As Database, Rst As Recordset, Rg As Range
Dim Requete As String
'définir la plage de cellule: Ne pas inclure la ligne d'étiquette de
colonne
With Worksheets("Feuil1")
.Range("A1:B" & .Range("A65356").End(xlUp).Row).Name = "NomColonne"
End With
'Ouvrir la base de données
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
'Définir la requête formant le recordset
Requete = "SELECT titre1 From NomColonne " & vbCrLf & _
"Where Ucase(titre2) = 'OUI'" & vbCrLf & _
"Group By titre1 ORDER By titre1"
'Création du recordset
Set Rst = bd.OpenRecordset(Requete)
Rst.MoveLast
Rst.MoveFirst
'Initialistation du Combobox1 en Feuil1
Do Until Rst.EOF
Feuil1.ComboBox1.AddItem Rst(0)
Rst.MoveNext
Loop
'Élimination du NOM de la plage
ThisWorkbook.Names("NomColonne").Delete
Rst.Close 'ferme le recordset
bd.Close 'Ferme la base de données
'Libère la mémoire des objets
Set Rst = Nothing: Set bd = Nothing
End Sub
'------------------------------------
Salutations!
"pfval" <pfval@wanadoo.fr> a écrit dans le message de
news:uv4sbk1hEHA.1972@TK2MSFTNGP09.phx.gbl...
Bonjour,
J'arrive pas à faire la procédure suivante
des noms en colonne a, des "oui" et des "non" en colonne b
a b
toto oui
tata oui
titi non
pop oui
je voudrai faire apparaitre que les noms qui ont "oui" dans une listbox.
Qui va être mon sauveur ??
Merci en tout cas de vos réponses
Bonjour Pfval,
Une autre alternative....si ta liste est longue
1 ) n'affiche que les données répondant aux critères
1 ) trie par ordre alphabétique les données affichées dans le combobox
2 ) évite la présence des doublons le cas échéant
Pour ce faire, tu dois charger la bibliothèque :
"Microsoft DAO 3.6 objects librairy"
J'ai donnée à la colonne A1, B1 les étiquettes de colonnes Titre1 et
Titre2
Le combobox s'appelle Combobox1 et il est situé sur la feuil1 de même que
les données.
'------------------------------------
Sub RequêteExcel()
Dim bd As Database, Rst As Recordset, Rg As Range
Dim Requete As String
'définir la plage de cellule: Ne pas inclure la ligne d'étiquette de
colonne
With Worksheets("Feuil1")
.Range("A1:B" & .Range("A65356").End(xlUp).Row).Name = "NomColonne"
End With
'Ouvrir la base de données
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
'Définir la requête formant le recordset
Requete = "SELECT titre1 From NomColonne " & vbCrLf & _
"Where Ucase(titre2) = 'OUI'" & vbCrLf & _
"Group By titre1 ORDER By titre1"
'Création du recordset
Set Rst = bd.OpenRecordset(Requete)
Rst.MoveLast
Rst.MoveFirst
'Initialistation du Combobox1 en Feuil1
Do Until Rst.EOF
Feuil1.ComboBox1.AddItem Rst(0)
Rst.MoveNext
Loop
'Élimination du NOM de la plage
ThisWorkbook.Names("NomColonne").Delete
Rst.Close 'ferme le recordset
bd.Close 'Ferme la base de données
'Libère la mémoire des objets
Set Rst = Nothing: Set bd = Nothing
End Sub
'------------------------------------
Salutations!
"pfval" a écrit dans le message de
news:
Bonjour,
J'arrive pas à faire la procédure suivante
des noms en colonne a, des "oui" et des "non" en colonne b
a b
toto oui
tata oui
titi non
pop oui
je voudrai faire apparaitre que les noms qui ont "oui" dans une listbox.
Qui va être mon sauveur ??
Merci en tout cas de vos réponses
Merci pour ta réponse mais le fichier .xls que je dois faire sera installé
sur un serveur et plusieurs utilisateurs y auront accés , donc ma question
est faudra t' il que j'installe "Microsoft DAO 3.6 objects librairy" sur
chacun des postes? Cela étant impossible, trop de postes
a +
"michdenis" a écrit dans le message de
news:%Bonjour Pfval,
Une autre alternative....si ta liste est longue
1 ) n'affiche que les données répondant aux critères
1 ) trie par ordre alphabétique les données affichées dans le combobox
2 ) évite la présence des doublons le cas échéant
Pour ce faire, tu dois charger la bibliothèque :
"Microsoft DAO 3.6 objects librairy"
J'ai donnée à la colonne A1, B1 les étiquettes de colonnes Titre1 et
Titre2
Le combobox s'appelle Combobox1 et il est situé sur la feuil1 de même que
les données.
'------------------------------------
Sub RequêteExcel()
Dim bd As Database, Rst As Recordset, Rg As Range
Dim Requete As String
'définir la plage de cellule: Ne pas inclure la ligne d'étiquette de
colonneWith Worksheets("Feuil1")
.Range("A1:B" & .Range("A65356").End(xlUp).Row).Name = "NomColonne"
End With
'Ouvrir la base de données
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
'Définir la requête formant le recordset
Requete = "SELECT titre1 From NomColonne " & vbCrLf & _
"Where Ucase(titre2) = 'OUI'" & vbCrLf & _
"Group By titre1 ORDER By titre1"
'Création du recordset
Set Rst = bd.OpenRecordset(Requete)
Rst.MoveLast
Rst.MoveFirst
'Initialistation du Combobox1 en Feuil1
Do Until Rst.EOF
Feuil1.ComboBox1.AddItem Rst(0)
Rst.MoveNext
Loop
'Élimination du NOM de la plage
ThisWorkbook.Names("NomColonne").Delete
Rst.Close 'ferme le recordset
bd.Close 'Ferme la base de données
'Libère la mémoire des objets
Set Rst = Nothing: Set bd = Nothing
End Sub
'------------------------------------
Salutations!
"pfval" a écrit dans le message de
news:Bonjour,
J'arrive pas à faire la procédure suivante
des noms en colonne a, des "oui" et des "non" en colonne b
a b
toto oui
tata oui
titi non
pop oui
je voudrai faire apparaitre que les noms qui ont "oui" dans une listbox.
Qui va être mon sauveur ??
Merci en tout cas de vos réponses
Merci pour ta réponse mais le fichier .xls que je dois faire sera installé
sur un serveur et plusieurs utilisateurs y auront accés , donc ma question
est faudra t' il que j'installe "Microsoft DAO 3.6 objects librairy" sur
chacun des postes? Cela étant impossible, trop de postes
a +
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:%23wWMvk3hEHA.2764@TK2MSFTNGP11.phx.gbl...
Bonjour Pfval,
Une autre alternative....si ta liste est longue
1 ) n'affiche que les données répondant aux critères
1 ) trie par ordre alphabétique les données affichées dans le combobox
2 ) évite la présence des doublons le cas échéant
Pour ce faire, tu dois charger la bibliothèque :
"Microsoft DAO 3.6 objects librairy"
J'ai donnée à la colonne A1, B1 les étiquettes de colonnes Titre1 et
Titre2
Le combobox s'appelle Combobox1 et il est situé sur la feuil1 de même que
les données.
'------------------------------------
Sub RequêteExcel()
Dim bd As Database, Rst As Recordset, Rg As Range
Dim Requete As String
'définir la plage de cellule: Ne pas inclure la ligne d'étiquette de
colonne
With Worksheets("Feuil1")
.Range("A1:B" & .Range("A65356").End(xlUp).Row).Name = "NomColonne"
End With
'Ouvrir la base de données
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
'Définir la requête formant le recordset
Requete = "SELECT titre1 From NomColonne " & vbCrLf & _
"Where Ucase(titre2) = 'OUI'" & vbCrLf & _
"Group By titre1 ORDER By titre1"
'Création du recordset
Set Rst = bd.OpenRecordset(Requete)
Rst.MoveLast
Rst.MoveFirst
'Initialistation du Combobox1 en Feuil1
Do Until Rst.EOF
Feuil1.ComboBox1.AddItem Rst(0)
Rst.MoveNext
Loop
'Élimination du NOM de la plage
ThisWorkbook.Names("NomColonne").Delete
Rst.Close 'ferme le recordset
bd.Close 'Ferme la base de données
'Libère la mémoire des objets
Set Rst = Nothing: Set bd = Nothing
End Sub
'------------------------------------
Salutations!
"pfval" <pfval@wanadoo.fr> a écrit dans le message de
news:uv4sbk1hEHA.1972@TK2MSFTNGP09.phx.gbl...
Bonjour,
J'arrive pas à faire la procédure suivante
des noms en colonne a, des "oui" et des "non" en colonne b
a b
toto oui
tata oui
titi non
pop oui
je voudrai faire apparaitre que les noms qui ont "oui" dans une listbox.
Qui va être mon sauveur ??
Merci en tout cas de vos réponses
Merci pour ta réponse mais le fichier .xls que je dois faire sera installé
sur un serveur et plusieurs utilisateurs y auront accés , donc ma question
est faudra t' il que j'installe "Microsoft DAO 3.6 objects librairy" sur
chacun des postes? Cela étant impossible, trop de postes
a +
"michdenis" a écrit dans le message de
news:%Bonjour Pfval,
Une autre alternative....si ta liste est longue
1 ) n'affiche que les données répondant aux critères
1 ) trie par ordre alphabétique les données affichées dans le combobox
2 ) évite la présence des doublons le cas échéant
Pour ce faire, tu dois charger la bibliothèque :
"Microsoft DAO 3.6 objects librairy"
J'ai donnée à la colonne A1, B1 les étiquettes de colonnes Titre1 et
Titre2
Le combobox s'appelle Combobox1 et il est situé sur la feuil1 de même que
les données.
'------------------------------------
Sub RequêteExcel()
Dim bd As Database, Rst As Recordset, Rg As Range
Dim Requete As String
'définir la plage de cellule: Ne pas inclure la ligne d'étiquette de
colonneWith Worksheets("Feuil1")
.Range("A1:B" & .Range("A65356").End(xlUp).Row).Name = "NomColonne"
End With
'Ouvrir la base de données
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
'Définir la requête formant le recordset
Requete = "SELECT titre1 From NomColonne " & vbCrLf & _
"Where Ucase(titre2) = 'OUI'" & vbCrLf & _
"Group By titre1 ORDER By titre1"
'Création du recordset
Set Rst = bd.OpenRecordset(Requete)
Rst.MoveLast
Rst.MoveFirst
'Initialistation du Combobox1 en Feuil1
Do Until Rst.EOF
Feuil1.ComboBox1.AddItem Rst(0)
Rst.MoveNext
Loop
'Élimination du NOM de la plage
ThisWorkbook.Names("NomColonne").Delete
Rst.Close 'ferme le recordset
bd.Close 'Ferme la base de données
'Libère la mémoire des objets
Set Rst = Nothing: Set bd = Nothing
End Sub
'------------------------------------
Salutations!
"pfval" a écrit dans le message de
news:Bonjour,
J'arrive pas à faire la procédure suivante
des noms en colonne a, des "oui" et des "non" en colonne b
a b
toto oui
tata oui
titi non
pop oui
je voudrai faire apparaitre que les noms qui ont "oui" dans une listbox.
Qui va être mon sauveur ??
Merci en tout cas de vos réponses