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 :
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