Actualiser un userform

Signaler
-
cs_Le Pivert
Messages postés
6478
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 janvier 2020
-
Bonjour,

Je suis débutant dans les VBA et je suis en train de créer un petit programme.

J'ai créé un UserForm avec des Labels et j'aimerais qu'il se mette à jours automatiquement sans que j'aille besoin de cliquer dessus.

Donc, quand je modifie une cellule dans la feuille Excel, je veux qu'il change en même temps sur l'userform. Car j'utilise la feuille Excel et l'userform en même temps.

j'ai actuellement le code suivant :

Private Sub dernum_Click()
dernum.Caption = ActiveSheet.Range("A1").Value
End Sub

Est-ce que quelqu'un à une solution pour moi ?

Merci d'avance

6 réponses

Messages postés
6478
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 janvier 2020
439
Bonjour,

Pour faire cela il faut mettre ton UserForm comme indiqué ici:

https://silkyroad.developpez.com/VBA/UserForm/#LIII-A-2

Ensuite tu vas dans le module de la feuille concernée avec ce code:

a adapter
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
UserForm1.Label1.Caption = Target.Value
End If
End Sub



Merci pour ton message

Malheureusement, je n'arrive pas à le faire fonctionner... je sais pas si je le mets dans le bon espace VBA ou si je fais faux dans la fonction...

Quand j'insère ton code, mon UserForm s'ouvre, je peux travailler sur ma feuille Excel mais aucune modification ne se fait.

:-/
cs_Le Pivert
Messages postés
6478
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 janvier 2020
439 > sebyyy
Tu fais Alt F11 sur la feuille concernée. Cela ouvre l'éditeur. C'est là qu'il faut mettre le code

Voici la méthode employée

https://forum.excel-pratique.com/viewtopic.php?t=1314

@+ Le Pivert
Est-ce que tu crois que tu peux m'aider si je te transmets mon fichier Excel ?
Car là je sais bientôt plus ou j'en suis... je n'y arrive pas... enfin j'arrive à mettre le code à la bonne place mais rien ne se passe...
cs_Le Pivert
Messages postés
6478
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 janvier 2020
439
Mettre le classeur sans données confidentielles ici, ensuite coller le lien ainsi obtenu sur ce post

https://www.cjoint.com/

@+
https://www.cjoint.com/c/JAcszgI68Rg

voici le lien

Merci
cs_Le Pivert
Messages postés
6478
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 janvier 2020
439
Merci pour le fichier

Mais je comprends toujours pas pourquoi, il s'actualise pas tout seul... Chaque fois que je modifie, je dois retourner sur la cellule concernée pour faire la modification.

tu crois que c'est possible ?

Merci
cs_Le Pivert
Messages postés
6478
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 janvier 2020
439
Chaque fois que je modifie, je dois retourner sur la cellule concernée pour faire la modification.

c'est normal il faut qu'il y ai une sélection pour chaque changement

au post 3 je t'ai donné un lien. Lis le!
Après plusieurs essais, j'abandonne... je suis que débutant dans les VBA
mais merci quand même pour ton aide
Salut cs_Le Pivert,

Mon histoire me travaille... est-ce que je pourrais te demander une dernière fois de me mettre mon fichier comme demandé ? Quand j'ai une idée en tête j'ai du mal à la lâcher... Merci pour ta réponse
cs_Le Pivert
Messages postés
6478
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 janvier 2020
439 > sebyyy
Messages postés
8
Date d'inscription
dimanche 28 août 2016
Statut
Membre
Dernière intervention
8 janvier 2020

Tu supprimes le code du module de la feuille2 et tu mets ceci dans le module de la feuille3:

Option Explicit
'L'evenement se déclenche au changement de sélection
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
If Target.Value = "" Then Exit Sub
Sheets("Feuil2").Range("A1").Value = Target.Value
Sheets("Feuil2").Select
LOTOVérif_écran.Show
End If
End Sub


dans le module de ton UserForm LOTOVérif_écran tu changes et tu mets cela:

Option Explicit
Private Sub UserForm_Activate()
dernum.Caption = Range("A1").Value 'adapter la cellule
End Sub



Voilà
sebyyy
Messages postés
8
Date d'inscription
dimanche 28 août 2016
Statut
Membre
Dernière intervention
8 janvier 2020
> cs_Le Pivert
Messages postés
6478
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 janvier 2020

Merci pour les codes mais maintenant quand je fais ma sélection de numéros, mon USF ne s'actualise pas... donc mon label "dernum" ne change pas le numéro demandé...

https://www.cjoint.com/c/JAirniFX3Eg
cs_Le Pivert
Messages postés
6478
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 janvier 2020
439 > sebyyy
Messages postés
8
Date d'inscription
dimanche 28 août 2016
Statut
Membre
Dernière intervention
8 janvier 2020

sebyyy
Messages postés
8
Date d'inscription
dimanche 28 août 2016
Statut
Membre
Dernière intervention
8 janvier 2020
> cs_Le Pivert
Messages postés
6478
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 janvier 2020

Je comprends pas mais ça fonctionne pas... :-(
Parce que, quand j'inscris mon numéro dans ma colonne (Feuille3 / de B1 à B90) je suis obligé de retourner dans la feuille2 pour faire un double clic pour qu'il change mon Label "dernum".
cs_Le Pivert
Messages postés
6478
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
19 janvier 2020
439 > sebyyy
Messages postés
8
Date d'inscription
dimanche 28 août 2016
Statut
Membre
Dernière intervention
8 janvier 2020

Cela fonctionne en cliquant sur un numéro de la colonne B de la feuille3.

Si tu ajoutes un numéro il faut ensuite cliquer dessus. c'est une spécificité d'Excel il faut l'accepter.

Je crois que l'on a fait le tour!

@+ le Pivert