Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Je désire un éclaircissement sur le pourquoi le userform filtres ne fonctionne pas ,
Détail ; j'ai récupérer un classeur de (Partick toulon) je les mis à mon gout tout fonctionne ah j'ai mis dans le userform avec une listview à la place d'une listBox plus agréable à la vue, Pour Patrick quand on valide une ligne de la listview normalement la cellule index ce met en jaune les premières jusqu’à 21 cela est aléatoire soit cet sur la date ou une autre cellule,
J'ai voulu le transposer sur le nouveau classeur avec ses modules et là il ne fonctionne plus, dans les modules j'ai changer le nom du tableau et de la feuille,
Bonjour el Fil ,
les méandres de VBA ! Lol
j'ai mis :
VB:
Combo.Value = ListView_List.ListItems(Lg)
LigneSel = CLng(Combo.Value)
' Set r = Range("Tbl_ListBowling[Index]").Find(CLng(LigneSel)) 'ancienne Ligne
Set r = Range("Tbl_ListBowling[Index]").Find(what:=CLng(LigneSel), LookIn:=xlValues, lookat:=xlWhole) 'Nouvelle Ligne
r.Interior.ColorIndex = 27 ' 42 est le code couleur qui permet de changer la couleur de la cellule sélectionnée
et cela Fonctionne , l'ajout des deux arguments de la Fonction .Find() soit LookIn:=xlValues, lookat:=xlWhole assure la recherche de la valeur exacte et Non comme ca ce produit 10,11,00
a voir donc
Bonne fin de Journée
Jean marie
J'ai modifier le code de jean marie il y a un petit problème quand tu sélectionne une ligne de la listview cela fonctionne l'index se met en jaune mais quand tu change de ligne l'index car tu à cliquer sur la mauvaise ligne l'index précédent reste en jaune,
De plus il n'y à plus le scroling de l'index sur la feuille cela veut dire que sur la listview tu sélectionne un index cela ne le met pas en visuel sur la feuille j’espère que je me suis bien exprimer ,
Re ,
Pour la première demande .
Il doit y avoir dans la procédure avant de Colorer (dans le Tableau Structuré) la ligne sélectionnée (dans la ListView) une ligne qui efface toutes les couleurs présentent dans le Tableau Structuré.
VB:
.DataBodyRange.Interior.ColorIndex=xlNone
'Efface la couleur précédente
Pour la deuxième demande .
Je pense qu'il devrait y avoir un "Goto" quelque part. Lol
Depuis mon téléphone
Jean marie
Il doit y avoir dans la procédure avant de Colorer (dans le Tableau Structuré) la ligne sélectionnée (dans la ListView) une ligne qui efface toutes les couleurs présentent dans le Tableau Structuré.
Bonjour a vous tous,
j'ai rajouter la ligne entre /// cela fonctionne ,
Les couleurs sont effacer en fermant par le bouton fermer de userform
VB:
Combo.Value = ListView_List.ListItems(Lg)
LigneSel = CLng(Combo.Value)
' Set r = Range("Tbl_ListBowling[Index]").Find(CLng(LigneSel)) 'ancienne Ligne
Set r = Range("Tbl_ListBowling[Index]").Find(what:=CLng(LigneSel), LookIn:=xlValues, lookat:=xlWhole) 'Nouvelle Ligne
'////
Range("Tbl_ListBowling").ListObject.Range.Interior.Color = xlNone ' Avec le tableau structuré on efface les Couleurs 'Nouvelle Ligne rajouter jcf
'////
r.Interior.ColorIndex = 27 ' 42 est le code couleur qui permet de changer la couleur de la cellule sélectionnée
De plus il n'y à plus le scroling de l'index sur la feuille cela veut dire que sur la listview tu sélectionne un index cela ne le met pas en visuel sur la feuille j’espère que je me suis bien exprimer ,
Si tu veux que les couleurs soient supprimées lors de la fermeture du UserFrm, c'est peut-être plutôt dans "UserForm_QueryClose" qu'il faut supprimer lesdites couleurs.
VB:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Range("Tbl_ListBowling").Interior.ColorIndex = xlNone
End Sub
Et tu dois pouvoir remplacer
VB:
Private Sub Cdb_Fermer_Click()
'
Dim ws As Worksheet
Dim tbl As ListObject
Dim cell As Range
' Spécifiez le nom de votre feuille de calcul
Set ws = Sheets("ListeBowling") ' Remplacez par le nom de votre feuille
' Spécifiez le nom de votre tableau
Set tbl = ws.ListObjects("Tbl_ListBowling") ' Remplacez par le nom de votre tableau
' Effacez la couleur de remplissage de toutes les cellules du tableau
For Each cell In tbl.DataBodyRange
cell.Interior.ColorIndex = xlNone
Next cell
Range("G1").Select
Unload Me
End Sub
par
VB:
Private Sub Cdb_Fermer_Click()
'
Range("Tbl_ListBowling").Interior.ColorIndex = xlNone
Range("G1").Select
Unload Me
End Sub
Il faut surtout le laisser là où il était déjà inscrit dans la macro donnée, entre autre, en #22 (corrigée par #29, bien sûr)..
VB:
Private Sub ListView_List_ItemClick(ByVal Item As MSComctlLib.ListItem)
'
Dim LigneSel As Long, r, Lg
Application.ScreenUpdating = False
Lg = ListView_List.SelectedItem.Index
' *****************Alimenter les Textbox"*************************
Me.Txt_NumC = Item ' Numéro Ligne
Me.Txt_Date = Item.ListSubItems(1) ' Date
Me.CmbLieux = Item.ListSubItems(2) ' Lieux
Me.TextDepDivers = Item.ListSubItems(3) ' Dépenses diverses
Me.TextInscription = Item.ListSubItems(4) ' Inscription
Me.TextMtParties = Item.ListSubItems(5) ' MtPartie
Me.TextBoisson = Item.ListSubItems(6) ' Boisson
Me.CmbMode = Item.ListSubItems(7) ' Mode
Me.TextObservation = Item.ListSubItems(8) ' Observation
Me.TextAutre = Item.ListSubItems(9) ' Autre
Me.TextCompet = Item.ListSubItems(10) ' Compet
Me.TextPau = Item.ListSubItems(11) ' Pau
Me.TextQLIbre = Item.ListSubItems(12) ' QLibre
Me.CmbDescripCompet = Item.ListSubItems(13) ' DescripCompet
Range("Tbl_ListBowling").ListObject.Range.Interior.Color = xlNone ' Avec le tableau structuré
Combo.Value = Format(ListView_List.ListItems(Lg), "0")
LigneSel = CLng(Combo.Value) ' ListView_List.SelectedItem
Set r = Range("Tbl_ListBowling[Index]").Find(what:=CLng(LigneSel), LookIn:=xlValues, lookat:=xlWhole)
r.Interior.ColorIndex = 27 ' 42 est le code couleur qui permet de changer la couleur de la cellule sélectionnée
Application.ScreenUpdating = True
End Sub
Si tu veux que les couleurs soient supprimées lors de la fermeture du UserFrm, c'est peut-être plutôt dans "UserForm_QueryClose" qu'il faut supprimer lesdites couleurs.
VB:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Range("Tbl_ListBowling").Interior.ColorIndex = xlNone
End Sub
Et tu dois pouvoir remplacer
VB:
Private Sub Cdb_Fermer_Click()
'
Dim ws As Worksheet
Dim tbl As ListObject
Dim cell As Range
' Spécifiez le nom de votre feuille de calcul
Set ws = Sheets("ListeBowling") ' Remplacez par le nom de votre feuille
' Spécifiez le nom de votre tableau
Set tbl = ws.ListObjects("Tbl_ListBowling") ' Remplacez par le nom de votre tableau
' Effacez la couleur de remplissage de toutes les cellules du tableau
For Each cell In tbl.DataBodyRange
cell.Interior.ColorIndex = xlNone
Next cell
Range("G1").Select
Unload Me
End Sub
par
VB:
Private Sub Cdb_Fermer_Click()
'
Range("Tbl_ListBowling").Interior.ColorIndex = xlNone
Range("G1").Select
Unload Me
End Sub
désolé pour ce retard le dernier classeur fonctionne bien,
pour le filtre je l'ai supprimer dans ce classeur pas besoin la personne n'en veut pas mais conserve le classeur de jean marie,
Re
Jean Claude
de quel filtre parles tu et qu'a tu supprimer donc ?
j'ai travaillé sur un Userform "Liste_Bowling" n'hésite pas si besoin d'amélioration !
Bonne Journée
Jean marie
Re
Jean Claude
de quel filtre parles tu et qu'a tu supprimer donc ?
j'ai travaillé sur un Userform "Liste_Bowling" n'hésite pas si besoin d'amélioration !
Bonne Journée
Jean marie
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD