Repaint un USF dont le nom est en variable
Résolu/Fermé
roideseaux
Messages postés
261
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
16 février 2023
-
2 oct. 2019 à 11:20
cs_Le Pivert Messages postés 7883 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 18 mars 2023 - 2 oct. 2019 à 16:09
cs_Le Pivert Messages postés 7883 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 18 mars 2023 - 2 oct. 2019 à 16:09
2 réponses
cs_Le Pivert
Messages postés
7883
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 mars 2023
724
2 oct. 2019 à 11:30
2 oct. 2019 à 11:30
Bonjour,
voir ceci:
https://silkyroad.developpez.com/VBA/UserForm/#LIII-A-3
voir ceci:
https://silkyroad.developpez.com/VBA/UserForm/#LIII-A-3
roideseaux
Messages postés
261
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
16 février 2023
5
2 oct. 2019 à 14:10
2 oct. 2019 à 14:10
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()" ?
cs_Le Pivert
Messages postés
7883
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 mars 2023
724
Modifié le 2 oct. 2019 à 14:42
Modifié le 2 oct. 2019 à 14:42
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
roideseaux
Messages postés
261
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
16 février 2023
5
2 oct. 2019 à 15:07
2 oct. 2019 à 15:07
Oui, j'avais pensé à cette possibilité mais étant donné que je gère 7 USF, je me disait que cela alourdirait le code et avait plutôt cherché une solution moins lourde.
Il n'y en a peut être pas finalement...
Merci pour ton aide en tout cas.
Il n'y en a peut être pas finalement...
Merci pour ton aide en tout cas.
cs_Le Pivert
Messages postés
7883
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 mars 2023
724
2 oct. 2019 à 16:09
2 oct. 2019 à 16:09
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
Modifié le 2 oct. 2019 à 15:11
Sub lancementUSF() Dim sVariable As String sVariable = "UserForm1" VBA.UserForms.Add(sVariable).Show End SubMais 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