Microsoft 365 UserForm_Initialize

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 !

Francky79

XLDnaute Occasionnel
Bonjour le forum,

Dans la Private Sub UserForm Initialize, je ne sais pas comment modifier la ligne Valeur = Range("A1").Value pour que la barre de jauge suive le défilement dans la colonne A.
Voir fichier joint.
Merci pour votre aide
 

Pièces jointes

Solution
Essayez peut être ça :
VB:
Option Explicit
Private TDon(), VMax As Double, ParCode As Boolean
Private Sub UserForm_Activate()
   TDon = Feuil1.[A1].Resize(Feuil1.Cells(2 ^ 20, "A").End(xlUp).Row).Value
   VMax = WorksheetFunction.Max(TDon)
   L = ActiveCell.Row
   End Sub
Private Property Let L(ByVal RHS As Long)
   Dim LMax As Long
   LMax = UBound(TDon, 1)
   ScrollBar1.Min = 1
   ScrollBar1.Max = LMax
   If RHS > LMax Then RHS = LMax
   ParCode = True: ScrollBar1.Value = RHS: ParCode = False
   Afficher
   End Property
Private Property Get L() As Long
   L = ScrollBar1.Value
   End Property
Private Sub ScrollBar1_Change(): If ParCode Then Exit Sub
   Afficher
   End Sub
Private Sub Afficher()
   Me.Km = TDon(L, 1)...
Bonjour.
En tout cas dans la UserForm_Activate vous définissez le ScrollBar1.Max à 6, la dernière ligne le la colonne A, puis aussitôt derrière vous essayez d'y affecter une Value qui le dépasse, le numéro de ligne de la cellule active.
Qu'est ce que vous essayez de faire au juste ?
Conseil: Dans la Sub UserForm_Initialize, metttez du code à exécuter lors du chargement en mémoire de l'UserForm, tandis que dans la Sub UserForm_Activate, mettez du code à exécuter ensuite, lors de chaque Show. La programmation suggère que c'est presque le contraire que vous avez fait.
 
Dernière édition:
Il y a pas moyen de modifier ce code pour le défilement ?
Que la jauge suive le défilement des cellules dans la colonne A en même temps que la ScrollBar1.

VB:
Private Sub UserForm_Initialize()
  Dim LngTbx As Integer, LngProg As Integer
  Dim Valeur As Single
  LngTbx = 216
  Me.TbxFond.Width = LngTbx
  ' Ligne à modifier pour la colonne A
  Valeur = Range("A1").Value
  LngProg = LngTbx / 100 * Valeur
  Me.TbxProgress.Width = LngProg
End Sub
 
Essayez peut être ça :
VB:
Option Explicit
Private TDon(), VMax As Double, ParCode As Boolean
Private Sub UserForm_Activate()
   TDon = Feuil1.[A1].Resize(Feuil1.Cells(2 ^ 20, "A").End(xlUp).Row).Value
   VMax = WorksheetFunction.Max(TDon)
   L = ActiveCell.Row
   End Sub
Private Property Let L(ByVal RHS As Long)
   Dim LMax As Long
   LMax = UBound(TDon, 1)
   ScrollBar1.Min = 1
   ScrollBar1.Max = LMax
   If RHS > LMax Then RHS = LMax
   ParCode = True: ScrollBar1.Value = RHS: ParCode = False
   Afficher
   End Property
Private Property Get L() As Long
   L = ScrollBar1.Value
   End Property
Private Sub ScrollBar1_Change(): If ParCode Then Exit Sub
   Afficher
   End Sub
Private Sub Afficher()
   Me.Km = TDon(L, 1)
   Me.TbxProgress.Width = Me.TbxFond.Width * TDon(L, 1) / VMax
   End Sub
 
Dranred, comme prévu je reviens vers toi.
Si je veux rajouter une jauge avec Me.Km2 je dois modifier TDon je pense mais je ne connais pas la signification de (L,1)

VB:
Private Sub Afficher()
Dim Chemin As String, Ligne As Integer, img As Object
    Ligne = ScrollBar1.Value
   Me.Km = TDon(L, 1)
   Me.TbxProgress.Width = Me.TbxFond.Width * TDon(L, 1) / VMax
   Me.Km2 = TDon(L, 1)
   Me.TbxProgress2.Width = Me.TbxFond2.Width * TDon(L, 1) / VMax
   Me.D = ActiveSheet.Range("A" & Ligne)
   Me.Aa = ActiveSheet.Range("B" & Ligne)
   Me.Bb = ActiveSheet.Range("C" & Ligne)
   End Sub
 
- 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

Discussions similaires

Réponses
3
Affichages
113
Réponses
3
Affichages
282
Réponses
9
Affichages
286
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
463
Réponses
10
Affichages
578
  • Question Question
Microsoft 365 problème d'index
Réponses
19
Affichages
239
Retour