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

23testcouleur.xlsb (49.18 Ko)

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.

Rechercher des sujets similaires à "userform dynamique probleme affichage"