Microsoft 365 ListBox Multipage

eric72

XLDnaute Accro
Bonjour à tous,
je fais un essai sur un userform "multipage", ma listbox de l'onglet "pot" s'alimente bien mais j'ai un souci sur la listbox de l'onglet "plaque", j'ai tout essayé en vain.
Mais je suis bien sur que l'un d'entre vous va trouver le bug en 15 secondes.
Merci pour votre aide
Eric
 

Pièces jointes

ChTi160

XLDnaute Barbatruc
Re Patrick
dans conception de la Table tu as "Ligne Total" en dessous de "ligne d'entêtes" !
il va dire : "aujourd'hui, j'ai appris quelque chose (donc bonne journée
Lol
)
Bon je n'ai rien dit Lol
Moi c'est tous les jours Lol
jean marie
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
Bonjour @ChTi160
bon ben voila vous l'avez avec la ligne "Total"

j'en ai même fait une fonction utilitaire
je l'ai appelé "IsEmpty_After_Filter" c'est suffisamment explicite je crois
c'est bo' la vie non ?
VB:
Sub test()
    With ActiveSheet.ListObjects("Tableau1").Range
        .AutoFilter Field:=1, Criteria1:="efrez"
    End With
        MsgBox IsEmpty_After_Filter(Range("Tableau1[#all]"), "Total")
End Sub


Function IsEmpty_After_Filter(rng As Range, title$)
   Dim t&
   With rng
        t = Abs(.Columns(1).Cells(.Columns(1).Cells.Count).Value = title)
        IsEmpty_After_Filter = Not .Columns(1).SpecialCells(xlVisible).Cells.Count - t > 1
    End With
End Function

demo7.gif
 

patricktoulon

XLDnaute Barbatruc
re
@ChTi160
et bien soit si on a accès a cette propriété alors
on prend les mêmes et on recommence
je precise que j'ai testé sur un tableau avec ligne total et un sans
VB:
Sub test()
    With ActiveSheet.ListObjects("Tableau1").Range
        .AutoFilter Field:=1, Criteria1:="cefrez"
    End With
        MsgBox IsEmpty_After_Filter(Range("Tableau1[#all]"), "Total")
End Sub

Sub test2()
    With ActiveSheet.ListObjects("Tableau2").Range
        .AutoFilter Field:=1, Criteria1:="cefrez"
    End With
        MsgBox IsEmpty_After_Filter(Range("Tableau2[#all]"), "Total")
End Sub

Function IsEmpty_After_Filter(rng As Range, title$)
   Dim t&
   With rng
        t = Abs(rng.ListObject.ShowTotals)
        IsEmpty_After_Filter = Not .Columns(1).SpecialCells(xlVisible).Cells.Count - t > 1
    End With
End Function
😁
 

ChTi160

XLDnaute Barbatruc
euh
Je sais pas si je me suis bien fait comprendre Lol
je parlais de ça !
On supprime "Total" et donc "title$"
VB:
Sub test()
    With ActiveSheet.ListObjects("Tableau1").Range
        .AutoFilter Field:=1, Criteria1:="cefrez"
    End With
        MsgBox IsEmpty_After_Filter(Range("Tableau1[#all]"))
End Sub

Sub test2()
    With ActiveSheet.ListObjects("Tableau2").Range
        .AutoFilter Field:=1, Criteria1:="cefrez"
    End With
        MsgBox IsEmpty_After_Filter(Range("Tableau2[#all]"))
End Sub

Function IsEmpty_After_Filter(rng As Range)
   Dim t&
   With rng
        t = Abs(rng.ListObject.ShowTotals)
        IsEmpty_After_Filter = Not .Columns(1).SpecialCells(xlVisible).Cells.Count - t > 1
    End With
End Function
Bonne journée
jean marie
 

Discussions similaires

Réponses
16
Affichages
769
Réponses
16
Affichages
744
Réponses
9
Affichages
903
  • Question Question
Microsoft 365 Code listbox
Réponses
4
Affichages
517
Réponses
18
Affichages
1 K
Réponses
15
Affichages
701
Réponses
6
Affichages
708
  • Question Question
Microsoft 365 gestion des listbox
Réponses
21
Affichages
2 K

Membres actuellement en ligne

Statistiques des forums

Discussions
315 283
Messages
2 118 013
Membres
113 408
dernier inscrit
lausablk