Repaint un USF dont le nom est en variable
Résolu
roideseaux
Messages postés
260
Date d'inscription
Statut
Membre
Dernière intervention
-
cs_Le Pivert Messages postés 7904 Date d'inscription Statut Contributeur Dernière intervention -
cs_Le Pivert Messages postés 7904 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Je suis à la recherche d'une méthode pour exécuter un .Repaint sur un UserForm dont le nom est stocké dans une varibale.
J'ai essayé quelques syntaxes telles que :
MaVariable.Repaint
VBA.UserForms.Add(MaVariable).Repaint => pas d'erreur mais pas de repaint non plus :(
Il me reste la solution de faire des If sur le nom de MaVariable et faire un MonUSF.Repaint mais on est d'accord que c'est pas terrible terrible...
Je suis sûr qu'il doit y avoir un moyen mais je ne connais pas :/
Merci à tous :)
Je suis à la recherche d'une méthode pour exécuter un .Repaint sur un UserForm dont le nom est stocké dans une varibale.
J'ai essayé quelques syntaxes telles que :
MaVariable.Repaint
VBA.UserForms.Add(MaVariable).Repaint => pas d'erreur mais pas de repaint non plus :(
Il me reste la solution de faire des If sur le nom de MaVariable et faire un MonUSF.Repaint mais on est d'accord que c'est pas terrible terrible...
Je suis sûr qu'il doit y avoir un moyen mais je ne connais pas :/
Merci à tous :)
2 réponses
J'ai continué mes recherches et il semblerait que la méthode Repaint ne corresponde pas à ce que je souhaiterais faire.
Je m'explique :
Dans mon USF, j'ai des TextBox dans lesquels je place du texte contenu dans certaines cellules d'une de mes feuilles. Mon USF est exécuté en non modal, donc j'ai accès à la feuille même si l'USF n'est pas fermé.
Il peut arriver qu'un autre USF ou qu'une autre macro modifie le contenu des cellules de ma feuille, dans ce cas, je souhaiterais actualiser les TexBox de mon premier USF.
Il doit bien exister un moyen pour que l'USF réexécute le fonction "UserForm_Initialize()" ?
Je m'explique :
Dans mon USF, j'ai des TextBox dans lesquels je place du texte contenu dans certaines cellules d'une de mes feuilles. Mon USF est exécuté en non modal, donc j'ai accès à la feuille même si l'USF n'est pas fermé.
Il peut arriver qu'un autre USF ou qu'une autre macro modifie le contenu des cellules de ma feuille, dans ce cas, je souhaiterais actualiser les TexBox de mon premier USF.
Il doit bien exister un moyen pour que l'USF réexécute le fonction "UserForm_Initialize()" ?
tu fais une sub avec les éléments que tu as mis dans
comme ceci:
Si tu veux que cela s’exécute dans une certaine UserForm il faut mettre ceci:
Tu n'auras plus qu'à appeler ta
voilà c'est simple
@+ Le Pivert
Private Sub UserForm_Initialize()
comme ceci:
Option Explicit Private Sub UserForm_Initialize() afficher End Sub Sub afficher() TextBox1.Value = Range("A1").Value End Sub
Si tu veux que cela s’exécute dans une certaine UserForm il faut mettre ceci:
UserForm1.TextBox1.Value = Range("A1").Value 'adapter le nom de l'UserForm
Tu n'auras plus qu'à appeler ta
Sub afficher()
voilà c'est simple
@+ Le Pivert
Tu peux faire une boucle sur tous tes UserForm pour y mettre le code
https://silkyroad.developpez.com/VBA/UserForm/#LV-C
https://silkyroad.developpez.com/VBA/UserForm/#LV-C
Mais je ne veux pas faire un show car cela m'affiche un nouvel USF par dessus, j'ai donc remplacé le .Show par .Repaint mais ça ne fonctionne pas