Bonjour à tous,
je suis parent d'élève depuis longtemps et je souhaitais mettre en place un fichier avec un TCD qui recenserait les documents transmis par éléve.
Jusque là je me servais de segments, mais compte tenu du grand nombre d’élèves c'est... pénible.
je voudrais rentrer le nom de l'élève dans une texbox et que le tcd se filtre automatiquement sur son nom avec l'ensemble des documents remis en vert et manquant en rouge.
Merci et profitez bien de vos vacances!!!
j'ai ça comme ébauche :
pour la texbox :
Private Sub TextBox1_Change()
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim searchStr As String
Set ws = ThisWorkbook.Sheets("Collège...")
Set pt = ws.PivotTables("TCDélèves")
Set pf = pt.PivotFields("Noms")
searchStr = TextBox1.Text
For Each pi In pf.PivotItems
If LCase(pi.Name) Like LCase("*" & searchStr & "*") Then
pi.Visible = True
Else
pi.Visible = False
End If
Next pi
End Sub
pour le bouton :
Sub FilterPivotTable()
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim searchStr As String
Set ws = ThisWorkbook.Sheets("Collège...")
Set pt = ws.PivotTables("TCDélèves")
Set pf = pt.PivotFields("Noms")
searchStr = ws.OLEObjects("TextBox1").Object.Text
For Each pi In pf.PivotItems
If LCase(pi.Name) Like LCase("*" & searchStr & "*") Then
pi.Visible = True
Else
pi.Visible = False
End If
Next pi
End Sub
je suis parent d'élève depuis longtemps et je souhaitais mettre en place un fichier avec un TCD qui recenserait les documents transmis par éléve.
Jusque là je me servais de segments, mais compte tenu du grand nombre d’élèves c'est... pénible.
je voudrais rentrer le nom de l'élève dans une texbox et que le tcd se filtre automatiquement sur son nom avec l'ensemble des documents remis en vert et manquant en rouge.
Merci et profitez bien de vos vacances!!!
j'ai ça comme ébauche :
pour la texbox :
Private Sub TextBox1_Change()
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim searchStr As String
Set ws = ThisWorkbook.Sheets("Collège...")
Set pt = ws.PivotTables("TCDélèves")
Set pf = pt.PivotFields("Noms")
searchStr = TextBox1.Text
For Each pi In pf.PivotItems
If LCase(pi.Name) Like LCase("*" & searchStr & "*") Then
pi.Visible = True
Else
pi.Visible = False
End If
Next pi
End Sub
pour le bouton :
Sub FilterPivotTable()
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim searchStr As String
Set ws = ThisWorkbook.Sheets("Collège...")
Set pt = ws.PivotTables("TCDélèves")
Set pf = pt.PivotFields("Noms")
searchStr = ws.OLEObjects("TextBox1").Object.Text
For Each pi In pf.PivotItems
If LCase(pi.Name) Like LCase("*" & searchStr & "*") Then
pi.Visible = True
Else
pi.Visible = False
End If
Next pi
End Sub
Pièces jointes
Dernière édition: