Actualiser Textbox de mon UserForm

Résolu/Fermé
MrUnknown - 24 mai 2013 à 21:09
 MrUnknown - 26 mai 2013 à 15:10
Bonjour à tous,

J'ai un problème qui me coince depuis un moment, la solution ne doit pas être difficile mais je n'y parvient pas. (Débutant VBA)

Alors voilà, j'ai 6 cellules sur excel qui se mettent à jours toutes les minutes. Leurs données sont reprisent par 6 Textbox dans mon Usf, jusque là tout va bien, mes textbox copient les données exactes de mes cellules...
Mais lorsque les données de mes cellules changent, les données dans mes textbox restent les mêmes... :(

Voilà le code:


Private Sub UserForm_Initialize()

UserForm1.TextBox1.Value = Format(Sheets("Feuil3").Range("C5").Value, "0.00")
UserForm1.TextBox2.Value = Format(Sheets("Feuil3").Range("F5").Value, "0.00")
UserForm1.TextBox3.Value = Format(Sheets("Feuil3").Range("I5").Value, "0.00")
UserForm1.TextBox4.Value = Format(Sheets("Feuil3").Range("C8").Value, "0.00")
UserForm1.TextBox5.Value = Format(Sheets("Feuil3").Range("F8").Value, "0.00")
UserForm1.TextBox6.Value = Format(Sheets("Feuil3").Range("I8").Value, "0.00")

End Sub



Que manque-t-il pour actualiser? Doevents?call?Refresh?

Merci de votre aide :D


6 réponses

Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
1 750
24 mai 2013 à 23:35
Bonjour,

j'ai 6 cellules sur excel qui se mettent à jours toutes les minutes comment ?
Profites de cette mise à jour pour actualiser le formulaire (avec un call)
1
Merci pour ta réponse Patrice,

Enfaite tout ce fait sur excel, ce sont des données importées du web et calculées

Les 6 cellules sont les résultats et sont réglées dans les propriétés pour être actualisées toutes les 1 minutes, (Réglage Excel)

Il faut simplement que le resultat des cellules correspondent au textbox :D
0
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
1 750
25 mai 2013 à 01:10
Il faut activer les évènements de la requête (QueryTable) et utiliser l'évènement AfterRefresh
0
lermite222
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
Modifié par lermite222 le 26/05/2013 à 10:39
Bonjour, bonjour Patrice, d'accord avec toi pour la QueryTable
@MrUnknown : un tuto qui pourrait t'aider
A+

Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
0
Merci pour ces infos utile lermite222 mais je pense m'être mal exprimé.

Car je n'ai pas besoin d'une connection web depuis mon userform VBA...
J'ai tout fait sur excel...

Exemple:
Il faut simplement que "textbox1" = cellule "a1"
Et quand "a1" changent de valeur, "textbox1" aussi.

Êtes vous sûr qu'il faut une QueryTable pour faire ça?

Merci
0
lermite222
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 193
26 mai 2013 à 13:16
Non, pas nécessaire d'une QueryTable si tu à un compte quelque part et les autorisations nécessaire.
Pour actualiser tes TextBox..
Sur la feuille où tes données arrive tu met une formule.. par Exemple : en B1 .. =A1
et dans l'événement Calculate tu actualise tes textbox.
A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Okay merci beaucoup je vais chercher de ce côté là ;)
0
Merci à vous deux de m'avoir mit sur la piste,

J'ai fini par trouvé en ajoutant simplement ce code dans la feuille 3.


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "C5" Then UserForm1.TextBox1.Value = Target.Value
If Target.Address(0, 0) = "F5" Then UserForm1.TextBox2.Value = Target.Value
If Target.Address(0, 0) = "I5" Then UserForm1.TextBox3.Value = Target.Value
If Target.Address(0, 0) = "C8" Then UserForm1.TextBox4.Value = Target.Value
If Target.Address(0, 0) = "F8" Then UserForm1.TextBox5.Value = Target.Value
If Target.Address(0, 0) = "I8" Then UserForm1.TextBox6.Value = Target.Value
End Sub

A plus ;)
0