UserForm Dynamique - Problème d'affichage
Bonjour à tous,
Je suis nouveau sur ce forum et ceci est mon premier post mais pas ma première expérience en VBA
Je suis actuellement en train de réaliser une macro permettant de choisir la couleur de la cellule sélectionné via un userform qui se génère automatiquement d'après mon code.
Lorsque je lance ma macro, tout fonctionne hormis le fait qu'en cliquant sur mes Labels, les Value de mes Textbox et le BackColor de mon CommandButton ne se mettent pas à jour en affichage (je précise que le bug est seulement en affichage car en testant, on s’aperçoit que les informations demandées sont bien stockées dans mes TextBox et mon Bouton, vous pouvez vous en appercevoir en sélectionnant un Label cliquant sur le CommandButton "OK" pour mettre fin à la macro).
Par contre, si je n'exécute pas les lignes suivante dans mon Sub ChoixCouleur() :
VBA.UserForms.Add(ObjetUF.Name).Show
ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("ChoixCouleur")
Et que je lance le userform d'après VBE (F5 sur le Userform), cela fonctionne
Auriez-vous une idée pour résoudre mon soucis ?
Merci par avance
Patrice
PS : Pour des raisons de facilité de stockage, j'ai besoin que cette macro reste en dynamique.
PS 2 : Le fichier joint contient mon code de cette macro
Bonjour,
...mais pas ma première expérience en VBA
Et bien, à la vue de ton code, je te conseille de regarder vers les modules de classe afin de fortement en réduire le nombre de lignes !
Voici ton code rectifié pour un seul Label :
Private Sub LblCouleurR0G0B0_Click()
CBOk.Enabled = True
'ChoixCouleur.Controls("CBOk").Caption = LblCouleurR0G0B0
CBOk.BackColor = LblCouleurR0G0B0.BackColor
TxtBHexadecimalVB.Value = DecimalToVBHexa(LblCouleurR0G0B0.BackColor)
TxtBHexadecimalHTML.Value = DecimalToHexa(LblCouleurR0G0B0.BackColor)
TxtBDecimalVB.Value = LblCouleurR0G0B0.BackColor
TxtBRouge.Value = DecimalToRvb(LblCouleurR0G0B0.BackColor).Rouge
TxtBVert.Value = DecimalToRvb(LblCouleurR0G0B0.BackColor).Vert
TxtBBleu.Value = DecimalToRvb(LblCouleurR0G0B0.BackColor).Bleu
End Sub
Bonjour Theze,
En effet, j'éviterais la prochaine fois de tendre le bâton pour me faire battre
La version fourni était celle non épurée mais en effet, cette partie là n'avait pas été factorisée.
Merci d'avoir répondu à mon poste et merci pour votre aide.