Microsoft 365 Problème affichage multipage dans un tabstrip

troki74

XLDnaute Nouveau
Bien le Bonjour,
Je sollicite votre aide concernant un problème lié à l'utilisation d'un multipage dans un tabstrip.
Le tabstrip est alimenté par un tableau avec une liste de projet.
Pour chacun de ces projets, il y a un plan de financement avec différents financeurs mobilisés selon les projets.
J'ai donc inséré un multipage, avec une page par financeur.
Ce que je souhaite que c'est que seules les pages des financeurs mobilisés apparaissent selon les projets.
Sauf que visiblement l'affichage des multipages ne réagit pas.
Je peux masquer le multipage mais pas les pages.
J'ai un autre userform de recherche avec ce même multipage et formule à peut près identique et cela fonctionne, mais ici avec le tabstrip, cela ne marche pas.
En outre lors du changement de tabstrip, dans certains cas, les valeurs ne sont pas modifiées, cela concerne surtout la premières page quand on passe d'une page à l'autre, les montants semblent figés.
Par ailleurs, j'ai eu du mal à démarrer le tabstrip à partir de la ligne 6, j'ai du contourner en masquant les premières pages du tabstrip, mais il y a peut être plus propre.
Pourriez vous jeter un œil à mon problème?
Je joins un tableau anonymisé

Si besoin le code :

VB:
Option Explicit 'oblige à déclarer toutes les variable
Private i As Integer 'déclare la variable I (Incréments)


Private Sub TabStrip1_Change()

Dim i As Integer


For i = 0 To TabStrip1.Tabs.Count - 1


  Select Case TabStrip1.Value
                Case i
Axestrat = Sheets("Liste Projet").Cells(i + 1, 2).Value
Thème = Sheets("Liste Projet").Cells(i + 1, 3).Value
NomRéduit = Sheets("Liste Projet").Cells(i + 1, 5).Value
Réferent = Sheets("Liste Projet").Cells(i + 1, 6).Value
Datedébutprojet = Sheets("Liste Projet").Cells(i + 1, 9).Value
Datefinprojet = Sheets("Liste Projet").Cells(i + 1, 10).Value
Description = Sheets("Liste Projet").Cells(i + 1, 4).Value
TauxAutofin = Sheets("Liste Projet").Cells(i + 1, 42)
TauxAutofin = Format(TauxAutofin, "0.00 %")
MontantAutofin = Sheets("Liste Projet").Cells(i + 1, 43)
MontantAutofin = Format(MontantAutofin, "# ##0.00 €")
  

     If Sheets("Liste Projet").Cells(i + 1, 16).Value = "Non" Then
Me.MultiPage1.Pages(0).Visible = False
End If
    If Sheets("Liste Projet").Cells(i + 1, 16).Value = "Oui" Then
Me.MultiPage1.Pages(0).Visible = True
Fin1Dispo = Sheets("Liste Projet").Cells(i + 1, 11)
TauxFin1 = Sheets("Liste Projet").Cells(i + 1, 12)
MontantSubFin1 = Sheets("Liste Projet").Cells(i + 1, 14)
StatutFin1 = Sheets("Liste Projet").Cells(i + 1, 15)
MontantEnAttenteFin1 = Sheets("Liste Projet").Cells(i + 1, 45)
TauxFin1 = Format(TauxFin1, "0.00 %")
MontantSubFin1 = Format(MontantSubFin1, "# ##0.00 €")
MontantEnAttenteFin1 = Format(MontantEnAttenteFin1, "# ##0.00 €")

Me.MultiPage1.Value = 0

    End If
'Fin2

If Sheets("Liste Projet").Cells(i + 1, 21).Value = "Non" Then
Me.MultiPage1.Pages(1).Visible = False
End If
If Sheets("Liste Projet").Cells(i + 1, 21).Value = "Oui" Then
Me.MultiPage1.Pages(1).Visible = True
Me.Controls("Fin2Dispo") = Sheets("Liste Projet").Cells(i + 1, 17)
Me.Controls("TauxFin2") = Sheets("Liste Projet").Cells(i + 1, 18)
Me.Controls("MontantSubFin2") = Sheets("Liste Projet").Cells(i + 1, 19)
Me.Controls("StatutFin2") = Sheets("Liste Projet").Cells(i + 1, 20)
Me.Controls("MontantEnAttenteFin2") = Sheets("Liste Projet").Cells(i + 1, 46)
Me.Controls("TauxFin2") = Format(Me.Controls("TauxFin2"), "0.00 %")
Me.Controls("MontantSubFin2") = Format(Me.Controls("MontantSubFin2"), "# ##0.00 €")
Me.Controls("MontantEnAttenteFin2") = Format(Me.Controls("MontantEnAttenteFin2"), "# ##0.00 €")

Me.MultiPage1.Value = 1
    End If
'Fin3
If Sheets("Liste Projet").Cells(i + 1, 26).Value = "Non" Then
Me.MultiPage1.Pages(2).Visible = False
End If
 If Sheets("Liste Projet").Cells(i + 1, 26).Value = "Oui" Then
Me.MultiPage1.Pages(2).Visible = True
Me.Controls("Fin3Dispo") = Sheets("Liste Projet").Cells(i + 1, 22)
Me.Controls("TauxFin3") = Sheets("Liste Projet").Cells(i + 1, 23)
Me.Controls("MontantSubFin3") = Sheets("Liste Projet").Cells(i + 1, 24)
Me.Controls("StatutFin3") = Sheets("Liste Projet").Cells(i + 1, 25)
Me.Controls("MontantEnAttenteFin3") = Sheets("Liste Projet").Cells(i + 1, 47)
Me.Controls("TauxFin3") = Format(Me.Controls("TauxFin3"), "0.00 %")
Me.Controls("MontantSubFin3") = Format(Me.Controls("MontantSubFin3"), "# ##0.00 €")
Me.Controls("MontantEnAttenteFin3") = Format(Me.Controls("MontantEnAttenteFin3"), "# ##0.00 €")

Me.MultiPage1.Value = 2
    End If
'Fin4
If Sheets("Liste Projet").Cells(i + 1, 31).Value = "Non" Then
Me.MultiPage1.Pages(3).Visible = False
End If
If Sheets("Liste Projet").Cells(i + 1, 31).Value = "Oui" Then
Me.MultiPage1.Pages(3).Visible = True
Me.Controls("Fin4Dispo") = Sheets("Liste Projet").Cells(i + 1, 27)
Me.Controls("TauxFin4") = Sheets("Liste Projet").Cells(i + 1, 28)
Me.Controls("MontantSubFin4") = Sheets("Liste Projet").Cells(i + 1, 29)
Me.Controls("StatutFin4") = Sheets("Liste Projet").Cells(i + 1, 30)
Me.Controls("MontantEnAttenteFin4") = Sheets("Liste Projet").Cells(i + 1, 48)
Me.Controls("TauxFin4") = Format(Me.Controls("TauxFin4"), "0.00 %")
Me.Controls("MontantSubFin4") = Format(Me.Controls("MontantSubFin4"), "# ##0.00 €")
Me.Controls("MontantEnAttenteFin4") = Format(Me.Controls("MontantEnAttenteFin4"), "# ##0.00 €")

Me.MultiPage1.Value = 3
    End If
'Fin5
If Sheets("Liste Projet").Cells(i + 1, 36).Value = "Non" Then
Me.MultiPage1.Pages(4).Visible = False

End If
If Sheets("Liste Projet").Cells(i + 1, 36).Value = "Oui" Then
Me.MultiPage1.Pages(4).Visible = True
Me.Controls("Fin5Dispo") = Sheets("Liste Projet").Cells(i + 1, 32)
Me.Controls("TauxFin5") = Sheets("Liste Projet").Cells(i + 1, 33)
Me.Controls("MontantSubFin5") = Sheets("Liste Projet").Cells(i + 1, 34)
Me.Controls("StatutFin5") = Sheets("Liste Projet").Cells(i + 1, 35)
Me.Controls("MontantEnAttenteFin5") = Sheets("Liste Projet").Cells(i + 1, 49)
Me.Controls("TauxFin5") = Format(Me.Controls("TauxFin5"), "0.00 %")
Me.Controls("MontantSubFin5") = Format(Me.Controls("MontantSubFin5"), "# ##0.00 €")
Me.Controls("MontantEnAttenteFin5") = Format(Me.Controls("MontantEnAttenteFin5"), "# ##0.00 €")
Me.MultiPage1.Pages(4).Caption = Sheets("Liste Projet").Cells(i + 1, 125)
Me.MultiPage1.Value = 4
    End If
'Fin6
If Sheets("Liste Projet").Cells(i + 1, 41).Value = "Non" Then
Me.MultiPage1.Pages(5).Visible = False
End If
If Sheets("Liste Projet").Cells(i + 1, 41).Value = "Oui" Then
Me.MultiPage1.Pages(5).Visible = True
Me.Controls("Fin6Dispo") = Sheets("Liste Projet").Cells(i + 1, 37)
Me.Controls("TauxFin6") = Sheets("Liste Projet").Cells(i + 1, 38)
Me.Controls("MontantSubFin6") = Sheets("Liste Projet").Cells(i + 1, 39)
Me.Controls("StatutFin6") = Sheets("Liste Projet").Cells(i + 1, 40)
Me.Controls("MontantEnAttenteFin6") = Sheets("Liste Projet").Cells(i + 1, 50)
Me.Controls("TauxFin6") = Format(Me.Controls("TauxFin6"), "0.00 %")
Me.Controls("MontantSubFin6") = Format(Me.Controls("MontantSubFin6"), "# ##0.00 €")
Me.Controls("MontantEnAttenteFin6") = Format(Me.Controls("MontantEnAttenteFin6"), "# ##0.00 €")

Me.MultiPage1.Pages(5).Caption = Sheets("Liste Projet").Cells(i + 1, 126)
Me.MultiPage1.Value = 5
    End If

       
End Select
Next i
End Sub



Private Sub UserForm_Initialize()
Workbooks("TableauSubvention.xlsm").Worksheets("Liste Projet").Activate
For i = 0 To Cells(Rows.Count, 1).End(xlUp).Row - 1 'boucle 1  = boucle sur tous les projets de la liste
 With GestionProjet.TabStrip1
              .Tabs.Add
              .Tabs(i).Caption = Sheets("Liste Projet").Cells(i + 1, 5).Value
GestionProjet.MultiPage1.Pages(0).Visible = False
End With
If Sheets("Liste Projet").Cells(i + 1, 16).Value = "Non" Then
GestionProjet.MultiPage1.Pages(0).Visible = False
End If
    If Sheets("Liste Projet").Cells(i + 1, 16).Value = "Oui" Then
GestionProjet.MultiPage1.Pages(0).Visible = True
Fin1Dispo = Sheets("Liste Projet").Cells(i + 1, 11)
TauxFin1 = Sheets("Liste Projet").Cells(i + 1, 12)
MontantSubFin1 = Sheets("Liste Projet").Cells(i + 1, 14)
StatutFin1 = Sheets("Liste Projet").Cells(i + 1, 15)
MontantEnAttenteFin1 = Sheets("Liste Projet").Cells(i + 1, 45)
TauxFin1 = Format(TauxFin1, "0.00 %")
MontantSubFin1 = Format(MontantSubFin1, "# ##0.00 €")
MontantEnAttenteFin1 = Format(MontantEnAttenteFin1, "# ##0.00 €")

GestionProjet.MultiPage1.Value = 0

    End If
'Fin2

If Sheets("Liste Projet").Cells(i + 1, 21).Value = "Non" Then
GestionProjet.MultiPage1.Pages(1).Visible = False
End If
If Sheets("Liste Projet").Cells(i + 1, 21).Value = "Oui" Then
GestionProjet.MultiPage1.Pages(1).Visible = True
GestionProjet.Controls("Fin2Dispo") = Sheets("Liste Projet").Cells(i + 1, 17)
GestionProjet.Controls("TauxFin2") = Sheets("Liste Projet").Cells(i + 1, 18)
GestionProjet.Controls("MontantSubFin2") = Sheets("Liste Projet").Cells(i + 1, 19)
GestionProjet.Controls("StatutFin2") = Sheets("Liste Projet").Cells(i + 1, 20)
GestionProjet.Controls("MontantEnAttenteFin2") = Sheets("Liste Projet").Cells(i + 1, 46)
GestionProjet.Controls("TauxFin2") = Format(GestionProjet.Controls("TauxFin2"), "0.00 %")
GestionProjet.Controls("MontantSubFin2") = Format(GestionProjet.Controls("MontantSubFin2"), "# ##0.00 €")
GestionProjet.Controls("MontantEnAttenteFin2") = Format(GestionProjet.Controls("MontantEnAttenteFin2"), "# ##0.00 €")

GestionProjet.MultiPage1.Value = 1
    End If
'Fin3
If Sheets("Liste Projet").Cells(i + 1, 26).Value = "Non" Then
GestionProjet.MultiPage1.Pages(2).Visible = False
End If
 If Sheets("Liste Projet").Cells(i + 1, 26).Value = "Oui" Then
GestionProjet.MultiPage1.Pages(2).Visible = True
GestionProjet.Controls("Fin3Dispo") = Sheets("Liste Projet").Cells(i + 1, 22)
GestionProjet.Controls("TauxFin3") = Sheets("Liste Projet").Cells(i + 1, 23)
GestionProjet.Controls("MontantSubFin3") = Sheets("Liste Projet").Cells(i + 1, 24)
GestionProjet.Controls("StatutFin3") = Sheets("Liste Projet").Cells(i + 1, 25)
GestionProjet.Controls("MontantEnAttenteFin3") = Sheets("Liste Projet").Cells(i + 1, 47)
GestionProjet.Controls("TauxFin3") = Format(GestionProjet.Controls("TauxFin3"), "0.00 %")
GestionProjet.Controls("MontantSubFin3") = Format(GestionProjet.Controls("MontantSubFin3"), "# ##0.00 €")
GestionProjet.Controls("MontantEnAttenteFin3") = Format(GestionProjet.Controls("MontantEnAttenteFin3"), "# ##0.00 €")

GestionProjet.MultiPage1.Value = 2
    End If
'Fin4
If Sheets("Liste Projet").Cells(i + 1, 31).Value = "Non" Then
GestionProjet.MultiPage1.Pages(3).Visible = False
End If
If Sheets("Liste Projet").Cells(i + 1, 31).Value = "Oui" Then
GestionProjet.MultiPage1.Pages(3).Visible = True
GestionProjet.Controls("Fin4Dispo") = Sheets("Liste Projet").Cells(i + 1, 27)
GestionProjet.Controls("TauxFin4") = Sheets("Liste Projet").Cells(i + 1, 28)
GestionProjet.Controls("MontantSubFin4") = Sheets("Liste Projet").Cells(i + 1, 29)
GestionProjet.Controls("StatutFin4") = Sheets("Liste Projet").Cells(i + 1, 30)
GestionProjet.Controls("MontantEnAttenteFin4") = Sheets("Liste Projet").Cells(i + 1, 48)
GestionProjet.Controls("TauxFin4") = Format(GestionProjet.Controls("TauxFin4"), "0.00 %")
GestionProjet.Controls("MontantSubFin4") = Format(GestionProjet.Controls("MontantSubFin4"), "# ##0.00 €")
GestionProjet.Controls("MontantEnAttenteFin4") = Format(GestionProjet.Controls("MontantEnAttenteFin4"), "# ##0.00 €")

GestionProjet.MultiPage1.Value = 3
    End If
'Fin5
If Sheets("Liste Projet").Cells(i + 1, 36).Value = "Non" Then
GestionProjet.MultiPage1.Pages(4).Visible = False

End If
If Sheets("Liste Projet").Cells(i + 1, 36).Value = "Oui" Then
GestionProjet.MultiPage1.Pages(4).Visible = True
GestionProjet.Controls("Fin5Dispo") = Sheets("Liste Projet").Cells(i + 1, 32)
GestionProjet.Controls("TauxFin5") = Sheets("Liste Projet").Cells(i + 1, 33)
GestionProjet.Controls("MontantSubFin5") = Sheets("Liste Projet").Cells(i + 1, 34)
GestionProjet.Controls("StatutFin5") = Sheets("Liste Projet").Cells(i + 1, 35)
GestionProjet.Controls("MontantEnAttenteFin5") = Sheets("Liste Projet").Cells(i + 1, 49)
GestionProjet.Controls("TauxFin5") = Format(GestionProjet.Controls("TauxFin5"), "0.00 %")
GestionProjet.Controls("MontantSubFin5") = Format(GestionProjet.Controls("MontantSubFin5"), "# ##0.00 €")
GestionProjet.Controls("MontantEnAttenteFin5") = Format(GestionProjet.Controls("MontantEnAttenteFin5"), "# ##0.00 €")
GestionProjet.MultiPage1.Pages(4).Caption = Sheets("Liste Projet").Cells(i + 1, 125)
GestionProjet.MultiPage1.Value = 4
    End If
'Fin6
If Sheets("Liste Projet").Cells(i + 1, 41).Value = "Non" Then
GestionProjet.MultiPage1.Pages(5).Visible = False
End If
If Sheets("Liste Projet").Cells(i + 1, 41).Value = "Oui" Then
GestionProjet.MultiPage1.Pages(5).Visible = True
GestionProjet.Controls("Fin6Dispo") = Sheets("Liste Projet").Cells(i + 1, 37)
GestionProjet.Controls("TauxFin6") = Sheets("Liste Projet").Cells(i + 1, 38)
GestionProjet.Controls("MontantSubFin6") = Sheets("Liste Projet").Cells(i + 1, 39)
GestionProjet.Controls("StatutFin6") = Sheets("Liste Projet").Cells(i + 1, 40)
GestionProjet.Controls("MontantEnAttenteFin6") = Sheets("Liste Projet").Cells(i + 1, 50)
GestionProjet.Controls("TauxFin6") = Format(GestionProjet.Controls("TauxFin6"), "0.00 %")
GestionProjet.Controls("MontantSubFin6") = Format(GestionProjet.Controls("MontantSubFin6"), "# ##0.00 €")
GestionProjet.Controls("MontantEnAttenteFin6") = Format(GestionProjet.Controls("MontantEnAttenteFin6"), "# ##0.00 €")

GestionProjet.MultiPage1.Pages(5).Caption = Sheets("Liste Projet").Cells(i + 1, 126)
GestionProjet.MultiPage1.Value = 5
    End If
Next i
TabStrip1.Tabs(0).Visible = False
TabStrip1.Tabs(1).Visible = False
TabStrip1.Tabs(2).Visible = False
TabStrip1.Tabs(3).Visible = False
TabStrip1.Tabs(4).Visible = False


End Sub
 

Pièces jointes

  • TableauSubvention.xlsm
    52.4 KB · Affichages: 11

troki74

XLDnaute Nouveau
C'est bon c'est trouvé, il fallait mettre tous les multipages masqués au démarrage et après tout roule. Et pour le problème d'affichage des valeurs, il manquait une cellule de renseignée
Après, il y aurait peut être moyen de régler le problème de démarrage de la boucle , là je n'arrive à la faire démarrer à la ligne 6, donc je dois cacher la misère en masquant les tabs du début.

Edit : j'ai parlé trop vite, la condition fait que les tabs apparaissent quelque soit le financeurs impliqués, donc ca roule pas encore tout à fait.. et le fait d'ajouter les financements 3 ça bug le même montant est affiché partout.
En pj la version en question
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
313 224
Messages
2 096 338
Membres
106 572
dernier inscrit
JM04082023!