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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
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 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
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 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
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