Voilà mon problème.
- J’ai trois ListBox dans un Mutipage 3 pages : GroupeEntree,
GroupePlatPrincipal, GroupeDessert qui sont alimentées par les données d’une
seule feuille "Groupes", Colonne A = Entrée, Plat principal ou Dessert /
Colonne B = Mets
- la macro ci-dessous existe également pour le filtre plat principal et
filtre dessert, les seules données qui changent sont Criteria1 et le nom des
ListBox
- dans mon Userform j’ai la macro suivante :
Sub Userform_Initialize ()
filtre_groupe_entree00
filtre_groupe_platprincipal00
filtre_groupe_dessert
End Sub
ce qui alimente mes troix ListBox avec les données de la colonne B
- après chaque filtre, chaque ListBox respectives est alimentée en fonction
de chaque résultat de filtre pour chacun des trois critères (entrée, plat
principal et dessert).
- quand le resultat du filtre renvoi des données (lignes visibles) ou aucun
résultat, la macro marche à merveille
- le problème survient quand il n’y a qu’une seule ligne visible, ceci
occasionne que ma ListBox est alimentée par la donnée en question, ce qui est
normal mais suivi des 65000 lignes vides.
Comment faire pour que si le résultat du filtre = 1 ligne => qu’une seule
donnée soit répercutée dans le LisbBox et non pas la totalité de la colonne
Merci pour votre aide.
Sub filtre_groupe_entree00()
Dim i As Integer
Dim r As Range
Dim cell As Range
Dim temp() As String
With Worksheets("Groupes")
.Columns("A:A").AutoFilter Field:=1, Criteria1:="Entrée"
End With
If Application.Subtotal(3, Range("A2:A1000")) > 0 Then
Set r = Range("Groupes!B2:" &
Worksheets("Groupes").Range("B2").End(xlDown).Address)
Set r = r.SpecialCells(xlCellTypeVisible)
ReDim temp(100)
For Each cell In r
If IsError(Application.Match(cell, temp, 0)) Then
On Error Resume Next
temp(i) = cell
i = i + 1
End If
Next cell
ReDim Preserve temp(i - 1)
Groupes.GroupeEntrees.List = temp
Else
Exit Sub
End If
End Sub
Feuille:
Colonne A Colonne B
________ ________
Dessert Coupe Danemark
Dessert Sorbet vanille
Dessert Fruit frais
Entrée Consommé au Porto
Entrée Soupe paysanne
Entrée Potage aux légumes
Plat principal Cotelettes d'agneau
Plat principal Gratin de pommes de terre
etc..
etc..
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
lSteph
Bonjour,
Dans ces circonstances, il semble qu'avec 1 entrée 1plat principal et un dessert tes listbox soient bien alimentées. Toutefois, si je m'en tiens à l'initialize il faudrait dire au serveur de ne pas tout apporter en même temps et si j'ai bien compris utiliser le change de chaque listbox pour maj de la suivante. Pour l'instant , n'ayant vu ni domaine ni château, je te laisse réagir à cette première proposition, car ayant en ce châleureux 14 Juillet le gosier bien à sec , je ne puis poursuivre.
Cordialement.
lSteph "Xavier" a écrit dans le message de news:
Bonjour à tous,
Voilà mon problème. - J'ai trois ListBox dans un Mutipage 3 pages : GroupeEntree, GroupePlatPrincipal, GroupeDessert qui sont alimentées par les données d'une seule feuille "Groupes", Colonne A = Entrée, Plat principal ou Dessert / Colonne B = Mets - la macro ci-dessous existe également pour le filtre plat principal et filtre dessert, les seules données qui changent sont Criteria1 et le nom des ListBox - dans mon Userform j'ai la macro suivante : Sub Userform_Initialize () filtre_groupe_entree00 filtre_groupe_platprincipal00 filtre_groupe_dessert End Sub
ce qui alimente mes troix ListBox avec les données de la colonne B
- après chaque filtre, chaque ListBox respectives est alimentée en fonction de chaque résultat de filtre pour chacun des trois critères (entrée, plat principal et dessert). - quand le resultat du filtre renvoi des données (lignes visibles) ou aucun résultat, la macro marche à merveille
- le problème survient quand il n'y a qu'une seule ligne visible, ceci occasionne que ma ListBox est alimentée par la donnée en question, ce qui est normal mais suivi des 65000 lignes vides.
Comment faire pour que si le résultat du filtre = 1 ligne => qu'une seule donnée soit répercutée dans le LisbBox et non pas la totalité de la colonne
Merci pour votre aide.
Sub filtre_groupe_entree00() Dim i As Integer Dim r As Range Dim cell As Range Dim temp() As String
With Worksheets("Groupes") .Columns("A:A").AutoFilter Field:=1, Criteria1:="Entrée" End With
If Application.Subtotal(3, Range("A2:A1000")) > 0 Then
Set r = Range("Groupes!B2:" & Worksheets("Groupes").Range("B2").End(xlDown).Address) Set r = r.SpecialCells(xlCellTypeVisible)
ReDim temp(100) For Each cell In r If IsError(Application.Match(cell, temp, 0)) Then On Error Resume Next temp(i) = cell i = i + 1 End If Next cell ReDim Preserve temp(i - 1) Groupes.GroupeEntrees.List = temp Else Exit Sub End If End Sub
Feuille: Colonne A Colonne B ________ ________ Dessert Coupe Danemark Dessert Sorbet vanille Dessert Fruit frais Entrée Consommé au Porto Entrée Soupe paysanne Entrée Potage aux légumes Plat principal Cotelettes d'agneau Plat principal Gratin de pommes de terre etc.. etc..
Bonjour,
Dans ces circonstances, il semble qu'avec 1 entrée 1plat principal et un
dessert tes listbox soient bien alimentées. Toutefois, si je m'en tiens à
l'initialize il faudrait dire au serveur de ne pas tout apporter en même
temps et si j'ai bien compris utiliser le change de chaque listbox pour maj
de la suivante.
Pour l'instant , n'ayant vu ni domaine ni château, je te laisse réagir à
cette première proposition, car ayant en ce châleureux 14 Juillet le gosier
bien à sec , je ne puis poursuivre.
Cordialement.
lSteph
"Xavier" <Xavier@discussions.microsoft.com> a écrit dans le message de news:
EBE83023-E98E-4541-8648-4F98569B44EB@microsoft.com...
Bonjour à tous,
Voilà mon problème.
- J'ai trois ListBox dans un Mutipage 3 pages : GroupeEntree,
GroupePlatPrincipal, GroupeDessert qui sont alimentées par les données d'une
seule feuille "Groupes", Colonne A = Entrée, Plat principal ou Dessert /
Colonne B = Mets
- la macro ci-dessous existe également pour le filtre plat principal et
filtre dessert, les seules données qui changent sont Criteria1 et le nom
des
ListBox
- dans mon Userform j'ai la macro suivante :
Sub Userform_Initialize ()
filtre_groupe_entree00
filtre_groupe_platprincipal00
filtre_groupe_dessert
End Sub
ce qui alimente mes troix ListBox avec les données de la colonne B
- après chaque filtre, chaque ListBox respectives est alimentée en
fonction
de chaque résultat de filtre pour chacun des trois critères (entrée, plat
principal et dessert).
- quand le resultat du filtre renvoi des données (lignes visibles) ou
aucun
résultat, la macro marche à merveille
- le problème survient quand il n'y a qu'une seule ligne visible, ceci
occasionne que ma ListBox est alimentée par la donnée en question, ce qui
est
normal mais suivi des 65000 lignes vides.
Comment faire pour que si le résultat du filtre = 1 ligne => qu'une seule
donnée soit répercutée dans le LisbBox et non pas la totalité de la
colonne
Merci pour votre aide.
Sub filtre_groupe_entree00()
Dim i As Integer
Dim r As Range
Dim cell As Range
Dim temp() As String
With Worksheets("Groupes")
.Columns("A:A").AutoFilter Field:=1, Criteria1:="Entrée"
End With
If Application.Subtotal(3, Range("A2:A1000")) > 0 Then
Set r = Range("Groupes!B2:" &
Worksheets("Groupes").Range("B2").End(xlDown).Address)
Set r = r.SpecialCells(xlCellTypeVisible)
ReDim temp(100)
For Each cell In r
If IsError(Application.Match(cell, temp, 0)) Then
On Error Resume Next
temp(i) = cell
i = i + 1
End If
Next cell
ReDim Preserve temp(i - 1)
Groupes.GroupeEntrees.List = temp
Else
Exit Sub
End If
End Sub
Feuille:
Colonne A Colonne B
________ ________
Dessert Coupe Danemark
Dessert Sorbet vanille
Dessert Fruit frais
Entrée Consommé au Porto
Entrée Soupe paysanne
Entrée Potage aux légumes
Plat principal Cotelettes d'agneau
Plat principal Gratin de pommes de terre
etc..
etc..
Dans ces circonstances, il semble qu'avec 1 entrée 1plat principal et un dessert tes listbox soient bien alimentées. Toutefois, si je m'en tiens à l'initialize il faudrait dire au serveur de ne pas tout apporter en même temps et si j'ai bien compris utiliser le change de chaque listbox pour maj de la suivante. Pour l'instant , n'ayant vu ni domaine ni château, je te laisse réagir à cette première proposition, car ayant en ce châleureux 14 Juillet le gosier bien à sec , je ne puis poursuivre.
Cordialement.
lSteph "Xavier" a écrit dans le message de news:
Bonjour à tous,
Voilà mon problème. - J'ai trois ListBox dans un Mutipage 3 pages : GroupeEntree, GroupePlatPrincipal, GroupeDessert qui sont alimentées par les données d'une seule feuille "Groupes", Colonne A = Entrée, Plat principal ou Dessert / Colonne B = Mets - la macro ci-dessous existe également pour le filtre plat principal et filtre dessert, les seules données qui changent sont Criteria1 et le nom des ListBox - dans mon Userform j'ai la macro suivante : Sub Userform_Initialize () filtre_groupe_entree00 filtre_groupe_platprincipal00 filtre_groupe_dessert End Sub
ce qui alimente mes troix ListBox avec les données de la colonne B
- après chaque filtre, chaque ListBox respectives est alimentée en fonction de chaque résultat de filtre pour chacun des trois critères (entrée, plat principal et dessert). - quand le resultat du filtre renvoi des données (lignes visibles) ou aucun résultat, la macro marche à merveille
- le problème survient quand il n'y a qu'une seule ligne visible, ceci occasionne que ma ListBox est alimentée par la donnée en question, ce qui est normal mais suivi des 65000 lignes vides.
Comment faire pour que si le résultat du filtre = 1 ligne => qu'une seule donnée soit répercutée dans le LisbBox et non pas la totalité de la colonne
Merci pour votre aide.
Sub filtre_groupe_entree00() Dim i As Integer Dim r As Range Dim cell As Range Dim temp() As String
With Worksheets("Groupes") .Columns("A:A").AutoFilter Field:=1, Criteria1:="Entrée" End With
If Application.Subtotal(3, Range("A2:A1000")) > 0 Then
Set r = Range("Groupes!B2:" & Worksheets("Groupes").Range("B2").End(xlDown).Address) Set r = r.SpecialCells(xlCellTypeVisible)
ReDim temp(100) For Each cell In r If IsError(Application.Match(cell, temp, 0)) Then On Error Resume Next temp(i) = cell i = i + 1 End If Next cell ReDim Preserve temp(i - 1) Groupes.GroupeEntrees.List = temp Else Exit Sub End If End Sub
Feuille: Colonne A Colonne B ________ ________ Dessert Coupe Danemark Dessert Sorbet vanille Dessert Fruit frais Entrée Consommé au Porto Entrée Soupe paysanne Entrée Potage aux légumes Plat principal Cotelettes d'agneau Plat principal Gratin de pommes de terre etc.. etc..
Youky
Ben....La carte des vins ...Elle est où..??? C'est primordial... Je pense que Jps le confirmera... Youky "Xavier" a écrit dans le message de news:
Bonjour à tous,
Voilà mon problème. - J'ai trois ListBox dans un Mutipage 3 pages : GroupeEntree, GroupePlatPrincipal, GroupeDessert qui sont alimentées par les données d' une
seule feuille "Groupes", Colonne A = Entrée, Plat principal ou Dessert / Colonne B = Mets - la macro ci-dessous existe également pour le filtre plat principal et filtre dessert, les seules données qui changent sont Criteria1 et le nom des
ListBox - dans mon Userform j'ai la macro suivante : Sub Userform_Initialize () filtre_groupe_entree00 filtre_groupe_platprincipal00 filtre_groupe_dessert End Sub
ce qui alimente mes troix ListBox avec les données de la colonne B
- après chaque filtre, chaque ListBox respectives est alimentée en fonction
de chaque résultat de filtre pour chacun des trois critères (entrée, plat principal et dessert). - quand le resultat du filtre renvoi des données (lignes visibles) ou aucun
résultat, la macro marche à merveille
- le problème survient quand il n'y a qu'une seule ligne visible, ceci occasionne que ma ListBox est alimentée par la donnée en question, ce qui est
normal mais suivi des 65000 lignes vides.
Comment faire pour que si le résultat du filtre = 1 ligne => qu'une seule donnée soit répercutée dans le LisbBox et non pas la totalité de la colonne
Merci pour votre aide.
Sub filtre_groupe_entree00() Dim i As Integer Dim r As Range Dim cell As Range Dim temp() As String
With Worksheets("Groupes") .Columns("A:A").AutoFilter Field:=1, Criteria1:="Entrée" End With
If Application.Subtotal(3, Range("A2:A1000")) > 0 Then
Set r = Range("Groupes!B2:" & Worksheets("Groupes").Range("B2").End(xlDown).Address) Set r = r.SpecialCells(xlCellTypeVisible)
ReDim temp(100) For Each cell In r If IsError(Application.Match(cell, temp, 0)) Then On Error Resume Next temp(i) = cell i = i + 1 End If Next cell ReDim Preserve temp(i - 1) Groupes.GroupeEntrees.List = temp Else Exit Sub End If End Sub
Feuille: Colonne A Colonne B ________ ________ Dessert Coupe Danemark Dessert Sorbet vanille Dessert Fruit frais Entrée Consommé au Porto Entrée Soupe paysanne Entrée Potage aux légumes Plat principal Cotelettes d'agneau Plat principal Gratin de pommes de terre etc.. etc..
Ben....La carte des vins ...Elle est où..???
C'est primordial...
Je pense que Jps le confirmera...
Youky
"Xavier" <Xavier@discussions.microsoft.com> a écrit dans le message de news:
EBE83023-E98E-4541-8648-4F98569B44EB@microsoft.com...
Bonjour à tous,
Voilà mon problème.
- J'ai trois ListBox dans un Mutipage 3 pages : GroupeEntree,
GroupePlatPrincipal, GroupeDessert qui sont alimentées par les données d'
une
seule feuille "Groupes", Colonne A = Entrée, Plat principal ou Dessert /
Colonne B = Mets
- la macro ci-dessous existe également pour le filtre plat principal et
filtre dessert, les seules données qui changent sont Criteria1 et le nom
des
ListBox
- dans mon Userform j'ai la macro suivante :
Sub Userform_Initialize ()
filtre_groupe_entree00
filtre_groupe_platprincipal00
filtre_groupe_dessert
End Sub
ce qui alimente mes troix ListBox avec les données de la colonne B
- après chaque filtre, chaque ListBox respectives est alimentée en
fonction
de chaque résultat de filtre pour chacun des trois critères (entrée, plat
principal et dessert).
- quand le resultat du filtre renvoi des données (lignes visibles) ou
aucun
résultat, la macro marche à merveille
- le problème survient quand il n'y a qu'une seule ligne visible, ceci
occasionne que ma ListBox est alimentée par la donnée en question, ce qui
est
normal mais suivi des 65000 lignes vides.
Comment faire pour que si le résultat du filtre = 1 ligne => qu'une seule
donnée soit répercutée dans le LisbBox et non pas la totalité de la
colonne
Merci pour votre aide.
Sub filtre_groupe_entree00()
Dim i As Integer
Dim r As Range
Dim cell As Range
Dim temp() As String
With Worksheets("Groupes")
.Columns("A:A").AutoFilter Field:=1, Criteria1:="Entrée"
End With
If Application.Subtotal(3, Range("A2:A1000")) > 0 Then
Set r = Range("Groupes!B2:" &
Worksheets("Groupes").Range("B2").End(xlDown).Address)
Set r = r.SpecialCells(xlCellTypeVisible)
ReDim temp(100)
For Each cell In r
If IsError(Application.Match(cell, temp, 0)) Then
On Error Resume Next
temp(i) = cell
i = i + 1
End If
Next cell
ReDim Preserve temp(i - 1)
Groupes.GroupeEntrees.List = temp
Else
Exit Sub
End If
End Sub
Feuille:
Colonne A Colonne B
________ ________
Dessert Coupe Danemark
Dessert Sorbet vanille
Dessert Fruit frais
Entrée Consommé au Porto
Entrée Soupe paysanne
Entrée Potage aux légumes
Plat principal Cotelettes d'agneau
Plat principal Gratin de pommes de terre
etc..
etc..
Ben....La carte des vins ...Elle est où..??? C'est primordial... Je pense que Jps le confirmera... Youky "Xavier" a écrit dans le message de news:
Bonjour à tous,
Voilà mon problème. - J'ai trois ListBox dans un Mutipage 3 pages : GroupeEntree, GroupePlatPrincipal, GroupeDessert qui sont alimentées par les données d' une
seule feuille "Groupes", Colonne A = Entrée, Plat principal ou Dessert / Colonne B = Mets - la macro ci-dessous existe également pour le filtre plat principal et filtre dessert, les seules données qui changent sont Criteria1 et le nom des
ListBox - dans mon Userform j'ai la macro suivante : Sub Userform_Initialize () filtre_groupe_entree00 filtre_groupe_platprincipal00 filtre_groupe_dessert End Sub
ce qui alimente mes troix ListBox avec les données de la colonne B
- après chaque filtre, chaque ListBox respectives est alimentée en fonction
de chaque résultat de filtre pour chacun des trois critères (entrée, plat principal et dessert). - quand le resultat du filtre renvoi des données (lignes visibles) ou aucun
résultat, la macro marche à merveille
- le problème survient quand il n'y a qu'une seule ligne visible, ceci occasionne que ma ListBox est alimentée par la donnée en question, ce qui est
normal mais suivi des 65000 lignes vides.
Comment faire pour que si le résultat du filtre = 1 ligne => qu'une seule donnée soit répercutée dans le LisbBox et non pas la totalité de la colonne
Merci pour votre aide.
Sub filtre_groupe_entree00() Dim i As Integer Dim r As Range Dim cell As Range Dim temp() As String
With Worksheets("Groupes") .Columns("A:A").AutoFilter Field:=1, Criteria1:="Entrée" End With
If Application.Subtotal(3, Range("A2:A1000")) > 0 Then
Set r = Range("Groupes!B2:" & Worksheets("Groupes").Range("B2").End(xlDown).Address) Set r = r.SpecialCells(xlCellTypeVisible)
ReDim temp(100) For Each cell In r If IsError(Application.Match(cell, temp, 0)) Then On Error Resume Next temp(i) = cell i = i + 1 End If Next cell ReDim Preserve temp(i - 1) Groupes.GroupeEntrees.List = temp Else Exit Sub End If End Sub
Feuille: Colonne A Colonne B ________ ________ Dessert Coupe Danemark Dessert Sorbet vanille Dessert Fruit frais Entrée Consommé au Porto Entrée Soupe paysanne Entrée Potage aux légumes Plat principal Cotelettes d'agneau Plat principal Gratin de pommes de terre etc.. etc..
Youky
Re Fait un essai avec ceci(sans filtre)cela alimente les 3 listbox à mettre en initialize
ListBox1.Clear 'Entrée ListBox2.Clear 'Plat principal ListBox3.Clear 'Dessert For k = 2 To Feuil1.[A65536].End(xlUp).Row If Feuil1.Cells(k, 1) = "Entrée" Then ListBox1.AddItem Feuil1.Cells(k, 2) If Feuil1.Cells(k, 1) = "Plat principal" Then ListBox2.AddItem Feuil1.Cells(k, 2) If Feuil1.Cells(k, 1) = "Dessert" Then ListBox3.AddItem Feuil1.Cells(k, 2) Next
Youky
"Xavier" a écrit dans le message de news:
Bonjour à tous,
Voilà mon problème. - J'ai trois ListBox dans un Mutipage 3 pages : GroupeEntree, GroupePlatPrincipal, GroupeDessert qui sont alimentées par les données d' une
seule feuille "Groupes", Colonne A = Entrée, Plat principal ou Dessert / Colonne B = Mets - la macro ci-dessous existe également pour le filtre plat principal et filtre dessert, les seules données qui changent sont Criteria1 et le nom des
ListBox - dans mon Userform j'ai la macro suivante : Sub Userform_Initialize () filtre_groupe_entree00 filtre_groupe_platprincipal00 filtre_groupe_dessert End Sub
ce qui alimente mes troix ListBox avec les données de la colonne B
- après chaque filtre, chaque ListBox respectives est alimentée en fonction
de chaque résultat de filtre pour chacun des trois critères (entrée, plat principal et dessert). - quand le resultat du filtre renvoi des données (lignes visibles) ou aucun
résultat, la macro marche à merveille
- le problème survient quand il n'y a qu'une seule ligne visible, ceci occasionne que ma ListBox est alimentée par la donnée en question, ce qui est
normal mais suivi des 65000 lignes vides.
Comment faire pour que si le résultat du filtre = 1 ligne => qu'une seule donnée soit répercutée dans le LisbBox et non pas la totalité de la colonne
Merci pour votre aide.
Sub filtre_groupe_entree00() Dim i As Integer Dim r As Range Dim cell As Range Dim temp() As String
With Worksheets("Groupes") .Columns("A:A").AutoFilter Field:=1, Criteria1:="Entrée" End With
If Application.Subtotal(3, Range("A2:A1000")) > 0 Then
Set r = Range("Groupes!B2:" & Worksheets("Groupes").Range("B2").End(xlDown).Address) Set r = r.SpecialCells(xlCellTypeVisible)
ReDim temp(100) For Each cell In r If IsError(Application.Match(cell, temp, 0)) Then On Error Resume Next temp(i) = cell i = i + 1 End If Next cell ReDim Preserve temp(i - 1) Groupes.GroupeEntrees.List = temp Else Exit Sub End If End Sub
Feuille: Colonne A Colonne B ________ ________ Dessert Coupe Danemark Dessert Sorbet vanille Dessert Fruit frais Entrée Consommé au Porto Entrée Soupe paysanne Entrée Potage aux légumes Plat principal Cotelettes d'agneau Plat principal Gratin de pommes de terre etc.. etc..
Re
Fait un essai avec ceci(sans filtre)cela alimente les 3 listbox
à mettre en initialize
ListBox1.Clear 'Entrée
ListBox2.Clear 'Plat principal
ListBox3.Clear 'Dessert
For k = 2 To Feuil1.[A65536].End(xlUp).Row
If Feuil1.Cells(k, 1) = "Entrée" Then ListBox1.AddItem Feuil1.Cells(k, 2)
If Feuil1.Cells(k, 1) = "Plat principal" Then ListBox2.AddItem
Feuil1.Cells(k, 2)
If Feuil1.Cells(k, 1) = "Dessert" Then ListBox3.AddItem Feuil1.Cells(k, 2)
Next
Youky
"Xavier" <Xavier@discussions.microsoft.com> a écrit dans le message de news:
EBE83023-E98E-4541-8648-4F98569B44EB@microsoft.com...
Bonjour à tous,
Voilà mon problème.
- J'ai trois ListBox dans un Mutipage 3 pages : GroupeEntree,
GroupePlatPrincipal, GroupeDessert qui sont alimentées par les données d'
une
seule feuille "Groupes", Colonne A = Entrée, Plat principal ou Dessert /
Colonne B = Mets
- la macro ci-dessous existe également pour le filtre plat principal et
filtre dessert, les seules données qui changent sont Criteria1 et le nom
des
ListBox
- dans mon Userform j'ai la macro suivante :
Sub Userform_Initialize ()
filtre_groupe_entree00
filtre_groupe_platprincipal00
filtre_groupe_dessert
End Sub
ce qui alimente mes troix ListBox avec les données de la colonne B
- après chaque filtre, chaque ListBox respectives est alimentée en
fonction
de chaque résultat de filtre pour chacun des trois critères (entrée, plat
principal et dessert).
- quand le resultat du filtre renvoi des données (lignes visibles) ou
aucun
résultat, la macro marche à merveille
- le problème survient quand il n'y a qu'une seule ligne visible, ceci
occasionne que ma ListBox est alimentée par la donnée en question, ce qui
est
normal mais suivi des 65000 lignes vides.
Comment faire pour que si le résultat du filtre = 1 ligne => qu'une seule
donnée soit répercutée dans le LisbBox et non pas la totalité de la
colonne
Merci pour votre aide.
Sub filtre_groupe_entree00()
Dim i As Integer
Dim r As Range
Dim cell As Range
Dim temp() As String
With Worksheets("Groupes")
.Columns("A:A").AutoFilter Field:=1, Criteria1:="Entrée"
End With
If Application.Subtotal(3, Range("A2:A1000")) > 0 Then
Set r = Range("Groupes!B2:" &
Worksheets("Groupes").Range("B2").End(xlDown).Address)
Set r = r.SpecialCells(xlCellTypeVisible)
ReDim temp(100)
For Each cell In r
If IsError(Application.Match(cell, temp, 0)) Then
On Error Resume Next
temp(i) = cell
i = i + 1
End If
Next cell
ReDim Preserve temp(i - 1)
Groupes.GroupeEntrees.List = temp
Else
Exit Sub
End If
End Sub
Feuille:
Colonne A Colonne B
________ ________
Dessert Coupe Danemark
Dessert Sorbet vanille
Dessert Fruit frais
Entrée Consommé au Porto
Entrée Soupe paysanne
Entrée Potage aux légumes
Plat principal Cotelettes d'agneau
Plat principal Gratin de pommes de terre
etc..
etc..
Re Fait un essai avec ceci(sans filtre)cela alimente les 3 listbox à mettre en initialize
ListBox1.Clear 'Entrée ListBox2.Clear 'Plat principal ListBox3.Clear 'Dessert For k = 2 To Feuil1.[A65536].End(xlUp).Row If Feuil1.Cells(k, 1) = "Entrée" Then ListBox1.AddItem Feuil1.Cells(k, 2) If Feuil1.Cells(k, 1) = "Plat principal" Then ListBox2.AddItem Feuil1.Cells(k, 2) If Feuil1.Cells(k, 1) = "Dessert" Then ListBox3.AddItem Feuil1.Cells(k, 2) Next
Youky
"Xavier" a écrit dans le message de news:
Bonjour à tous,
Voilà mon problème. - J'ai trois ListBox dans un Mutipage 3 pages : GroupeEntree, GroupePlatPrincipal, GroupeDessert qui sont alimentées par les données d' une
seule feuille "Groupes", Colonne A = Entrée, Plat principal ou Dessert / Colonne B = Mets - la macro ci-dessous existe également pour le filtre plat principal et filtre dessert, les seules données qui changent sont Criteria1 et le nom des
ListBox - dans mon Userform j'ai la macro suivante : Sub Userform_Initialize () filtre_groupe_entree00 filtre_groupe_platprincipal00 filtre_groupe_dessert End Sub
ce qui alimente mes troix ListBox avec les données de la colonne B
- après chaque filtre, chaque ListBox respectives est alimentée en fonction
de chaque résultat de filtre pour chacun des trois critères (entrée, plat principal et dessert). - quand le resultat du filtre renvoi des données (lignes visibles) ou aucun
résultat, la macro marche à merveille
- le problème survient quand il n'y a qu'une seule ligne visible, ceci occasionne que ma ListBox est alimentée par la donnée en question, ce qui est
normal mais suivi des 65000 lignes vides.
Comment faire pour que si le résultat du filtre = 1 ligne => qu'une seule donnée soit répercutée dans le LisbBox et non pas la totalité de la colonne
Merci pour votre aide.
Sub filtre_groupe_entree00() Dim i As Integer Dim r As Range Dim cell As Range Dim temp() As String
With Worksheets("Groupes") .Columns("A:A").AutoFilter Field:=1, Criteria1:="Entrée" End With
If Application.Subtotal(3, Range("A2:A1000")) > 0 Then
Set r = Range("Groupes!B2:" & Worksheets("Groupes").Range("B2").End(xlDown).Address) Set r = r.SpecialCells(xlCellTypeVisible)
ReDim temp(100) For Each cell In r If IsError(Application.Match(cell, temp, 0)) Then On Error Resume Next temp(i) = cell i = i + 1 End If Next cell ReDim Preserve temp(i - 1) Groupes.GroupeEntrees.List = temp Else Exit Sub End If End Sub
Feuille: Colonne A Colonne B ________ ________ Dessert Coupe Danemark Dessert Sorbet vanille Dessert Fruit frais Entrée Consommé au Porto Entrée Soupe paysanne Entrée Potage aux légumes Plat principal Cotelettes d'agneau Plat principal Gratin de pommes de terre etc.. etc..
lSteph
c'est bien ce que je dis! "Youky" a écrit dans le message de news: 44b7bff1$0$858$
Ben....La carte des vins ...Elle est où..??? C'est primordial... Je pense que Jps le confirmera... Youky "Xavier" a écrit dans le message de news:
Bonjour à tous,
Voilà mon problème. - J'ai trois ListBox dans un Mutipage 3 pages : GroupeEntree, GroupePlatPrincipal, GroupeDessert qui sont alimentées par les données d' une
seule feuille "Groupes", Colonne A = Entrée, Plat principal ou Dessert / Colonne B = Mets - la macro ci-dessous existe également pour le filtre plat principal et filtre dessert, les seules données qui changent sont Criteria1 et le nom des
ListBox - dans mon Userform j'ai la macro suivante : Sub Userform_Initialize () filtre_groupe_entree00 filtre_groupe_platprincipal00 filtre_groupe_dessert End Sub
ce qui alimente mes troix ListBox avec les données de la colonne B
- après chaque filtre, chaque ListBox respectives est alimentée en fonction
de chaque résultat de filtre pour chacun des trois critères (entrée, plat principal et dessert). - quand le resultat du filtre renvoi des données (lignes visibles) ou aucun
résultat, la macro marche à merveille
- le problème survient quand il n'y a qu'une seule ligne visible, ceci occasionne que ma ListBox est alimentée par la donnée en question, ce qui est
normal mais suivi des 65000 lignes vides.
Comment faire pour que si le résultat du filtre = 1 ligne => qu'une seule donnée soit répercutée dans le LisbBox et non pas la totalité de la colonne
Merci pour votre aide.
Sub filtre_groupe_entree00() Dim i As Integer Dim r As Range Dim cell As Range Dim temp() As String
With Worksheets("Groupes") .Columns("A:A").AutoFilter Field:=1, Criteria1:="Entrée" End With
If Application.Subtotal(3, Range("A2:A1000")) > 0 Then
Set r = Range("Groupes!B2:" & Worksheets("Groupes").Range("B2").End(xlDown).Address) Set r = r.SpecialCells(xlCellTypeVisible)
ReDim temp(100) For Each cell In r If IsError(Application.Match(cell, temp, 0)) Then On Error Resume Next temp(i) = cell i = i + 1 End If Next cell ReDim Preserve temp(i - 1) Groupes.GroupeEntrees.List = temp Else Exit Sub End If End Sub
Feuille: Colonne A Colonne B ________ ________ Dessert Coupe Danemark Dessert Sorbet vanille Dessert Fruit frais Entrée Consommé au Porto Entrée Soupe paysanne Entrée Potage aux légumes Plat principal Cotelettes d'agneau Plat principal Gratin de pommes de terre etc.. etc..
c'est bien ce que je dis!
"Youky" <bruno.jeune@wanadoo.fr> a écrit dans le message de news:
44b7bff1$0$858$ba4acef3@news.orange.fr...
Ben....La carte des vins ...Elle est où..???
C'est primordial...
Je pense que Jps le confirmera...
Youky
"Xavier" <Xavier@discussions.microsoft.com> a écrit dans le message de
news:
EBE83023-E98E-4541-8648-4F98569B44EB@microsoft.com...
Bonjour à tous,
Voilà mon problème.
- J'ai trois ListBox dans un Mutipage 3 pages : GroupeEntree,
GroupePlatPrincipal, GroupeDessert qui sont alimentées par les données d'
une
seule feuille "Groupes", Colonne A = Entrée, Plat principal ou Dessert /
Colonne B = Mets
- la macro ci-dessous existe également pour le filtre plat principal et
filtre dessert, les seules données qui changent sont Criteria1 et le nom
des
ListBox
- dans mon Userform j'ai la macro suivante :
Sub Userform_Initialize ()
filtre_groupe_entree00
filtre_groupe_platprincipal00
filtre_groupe_dessert
End Sub
ce qui alimente mes troix ListBox avec les données de la colonne B
- après chaque filtre, chaque ListBox respectives est alimentée en
fonction
de chaque résultat de filtre pour chacun des trois critères (entrée, plat
principal et dessert).
- quand le resultat du filtre renvoi des données (lignes visibles) ou
aucun
résultat, la macro marche à merveille
- le problème survient quand il n'y a qu'une seule ligne visible, ceci
occasionne que ma ListBox est alimentée par la donnée en question, ce qui
est
normal mais suivi des 65000 lignes vides.
Comment faire pour que si le résultat du filtre = 1 ligne => qu'une seule
donnée soit répercutée dans le LisbBox et non pas la totalité de la
colonne
Merci pour votre aide.
Sub filtre_groupe_entree00()
Dim i As Integer
Dim r As Range
Dim cell As Range
Dim temp() As String
With Worksheets("Groupes")
.Columns("A:A").AutoFilter Field:=1, Criteria1:="Entrée"
End With
If Application.Subtotal(3, Range("A2:A1000")) > 0 Then
Set r = Range("Groupes!B2:" &
Worksheets("Groupes").Range("B2").End(xlDown).Address)
Set r = r.SpecialCells(xlCellTypeVisible)
ReDim temp(100)
For Each cell In r
If IsError(Application.Match(cell, temp, 0)) Then
On Error Resume Next
temp(i) = cell
i = i + 1
End If
Next cell
ReDim Preserve temp(i - 1)
Groupes.GroupeEntrees.List = temp
Else
Exit Sub
End If
End Sub
Feuille:
Colonne A Colonne B
________ ________
Dessert Coupe Danemark
Dessert Sorbet vanille
Dessert Fruit frais
Entrée Consommé au Porto
Entrée Soupe paysanne
Entrée Potage aux légumes
Plat principal Cotelettes d'agneau
Plat principal Gratin de pommes de terre
etc..
etc..
c'est bien ce que je dis! "Youky" a écrit dans le message de news: 44b7bff1$0$858$
Ben....La carte des vins ...Elle est où..??? C'est primordial... Je pense que Jps le confirmera... Youky "Xavier" a écrit dans le message de news:
Bonjour à tous,
Voilà mon problème. - J'ai trois ListBox dans un Mutipage 3 pages : GroupeEntree, GroupePlatPrincipal, GroupeDessert qui sont alimentées par les données d' une
seule feuille "Groupes", Colonne A = Entrée, Plat principal ou Dessert / Colonne B = Mets - la macro ci-dessous existe également pour le filtre plat principal et filtre dessert, les seules données qui changent sont Criteria1 et le nom des
ListBox - dans mon Userform j'ai la macro suivante : Sub Userform_Initialize () filtre_groupe_entree00 filtre_groupe_platprincipal00 filtre_groupe_dessert End Sub
ce qui alimente mes troix ListBox avec les données de la colonne B
- après chaque filtre, chaque ListBox respectives est alimentée en fonction
de chaque résultat de filtre pour chacun des trois critères (entrée, plat principal et dessert). - quand le resultat du filtre renvoi des données (lignes visibles) ou aucun
résultat, la macro marche à merveille
- le problème survient quand il n'y a qu'une seule ligne visible, ceci occasionne que ma ListBox est alimentée par la donnée en question, ce qui est
normal mais suivi des 65000 lignes vides.
Comment faire pour que si le résultat du filtre = 1 ligne => qu'une seule donnée soit répercutée dans le LisbBox et non pas la totalité de la colonne
Merci pour votre aide.
Sub filtre_groupe_entree00() Dim i As Integer Dim r As Range Dim cell As Range Dim temp() As String
With Worksheets("Groupes") .Columns("A:A").AutoFilter Field:=1, Criteria1:="Entrée" End With
If Application.Subtotal(3, Range("A2:A1000")) > 0 Then
Set r = Range("Groupes!B2:" & Worksheets("Groupes").Range("B2").End(xlDown).Address) Set r = r.SpecialCells(xlCellTypeVisible)
ReDim temp(100) For Each cell In r If IsError(Application.Match(cell, temp, 0)) Then On Error Resume Next temp(i) = cell i = i + 1 End If Next cell ReDim Preserve temp(i - 1) Groupes.GroupeEntrees.List = temp Else Exit Sub End If End Sub
Feuille: Colonne A Colonne B ________ ________ Dessert Coupe Danemark Dessert Sorbet vanille Dessert Fruit frais Entrée Consommé au Porto Entrée Soupe paysanne Entrée Potage aux légumes Plat principal Cotelettes d'agneau Plat principal Gratin de pommes de terre etc.. etc..