Caption label VBA dynamique

Bonsoir Forum,

J'ai une formule DDE dans la cellule D2 qui s'actualise en permanence sans événement utilisateur.

J'ai un label sur un Userform. Si je veux que le label56 par exemple prenne la valeur de la celluleD2 :

Private Sub Userform_Initialize()

Label56 = Sheets("STRAT").Range("$D$2").Value

End Sub

Le problème c'est que l’actualisation ne se produit que si je ferme et réinitialise le Userform.

J'ai essayé (ça n'a rien à voir) :

Private Sub Label56_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label56 = Sheets("STRAT").Range("$D$2").Value

DoEvents

End Sub

Et quand je bouge la souris sur le label la valeur s'actualise et ce sans fermer le Userform.

Ce que je souhaite c'est que l'actualisation se fasse automatiquement sans événement utilisateur.

J'ai essayé des Timers (qui fonctionnent mais pas la la réalisation de l'update du labe pour qu'il prenne la valeur D2 dynamique),

J'ai essaye Repaint, DoEvents... J'ai lu qq chose ... avec Modal mais je n'ai pas saisi.

Il y a qq chose qui m'echappe

Merci à vous

Bagi !

bagi

... J'ai essayé aussi via la feuille

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$D$2" Then

Procédure de Timer

End If

End Sub

Mais comme il n'y a pas d’événement utilisateur dans la cellule DDE...

Bonsoir, pas sur que ça aide mais voir se poste là :

https://forum.excel-pratique.com/post214618.html?hilit=actualiser userform#p214618

Merci bcp pour ta réponse rapide.

J'ai essayé aussi avec un Texbox qui n'a pas la propriété Caption mais ça ne fonctionne pas

Voici le code d'initialisation du Userform

Private Sub Userform_Initialize()
Label56 = Sheets("STRAT").Range("$D$2")
TextBox21 = Sheets("STRAT").Range("$D$2")
End Sub

Pour le Label

Private Sub Label56_Click()
Label56 = Sheets("STRAT").Range("$D$2")
End Sub

Pour le Textbox

Private Sub TextBox21_Change()
TextBox21 = Sheets("STRAT").Range("$D$2")
End Sub

Et pour la feuille

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$2" Then
Label56.Caption = Target.Value
TextBox21.Value = Target.Value
End If
End Sub

En revanche quand je passe la souris sur le label55 avec ce code

Private Sub Label55_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Label55 = Sheets("STRAT").Range("$D$2").Value
DoEvents
End Sub

La valeur ne s'actualise pas sans que je passe la souris dessus, mais elle s’actualise qd même sans fermer et rouvrir le Userform

J'ai du louper qq chose

Et le machin " debug.print " ça ne peut pas vous aider dans un cas comme celui-ci ?

Non je n'ai pas réussi merci tout de même de t'être penché sur mon problème.

Bonne soirée

A bientôt

Bonjour,

Tu as raté le fichier joint, on ne pourra pas tout deviner...

je veux que le label56 par exemple prenne la valeur de la celluleD2

Que tu détailles la mise à jour de D2 serait interessant...

Pour les causes désespérées tu peux utiliser l'événement Calculate de la feuille. Au pire en mettant =D2 dans une cellule.

Si jamais il y a beaucoup plus que la mise à jour du caption derrière comme code, il vaudrait mieux mémoriser la valeur de D2 (dans une variable Static) et ne lancer la procédure que si elle a changé.

eric

Merci pour ta réponse

Comme dit au début du message la cellule est alimentée par un autre prog via DDE et s'actualise sans événement utilisateur.

j'essayer tes solutions. je fais un fichier joint et reviens vers toi.

Merci encore

Re Eriiic,

Dsl le fichier est en rar

Le ptit soucis c'est qu'il faut posséder l'appli source qui envoie la donnée DDE. Je ne suis pas sur qu'Excel remarque que la donnée change constamment sans événement utilisateur (cad même si je la mets dans une variable)

La propriété Mouse move actualise la donnée sur le label. En fait j'aimerais savoir ce qu'elle fait qd elle détecte un mouvement de souris ! Rien que ça !

Merci pour ton aide

Bagi !

Re,

tu n'étais pas obligé de mettre en .rar, tu t'exclus un paquets d'intervenants.

Utilise zip plutôt, mais là la taille ne le justifie pas.

Tu as essayé avec Calculate ?

Dans la feuille :

Private Sub Worksheet_Calculate()
    Static memD2 As Variant
    If [D2] <> memD2 Then
        UserForm1.Label1.Caption = [D2]
        memD2 = [D2]
    End If
End Sub

et je me demande si ton formulaire ne devrait pas être non modal pour autoriser les interaction avec la feuille. Je l'ai mis comme ça, si ça marche remet en modal pour voir si c'est vraiment nécessaire. Puis sans la formule en E2.

Si ça ne marche pas essaie avec juste UserForm1.Label1.Caption = [D2] en ligne de programme.

J'ai désactivé presque tous les codes pour laisser l'essentiel.

Si tu veux tester avec dde...

@lean: ça n'a pas l'air d'être le même cas de mise à jour (mais je n'ai pas tout lu...)

eric

oupss, avec le fichier c'est mieux...

67classeur1.zip (12.00 Ko)

Eric merci pour ton savoir et de le partager. Ça a fonctionné du premier coup !

Merci à Lean aussi qui m'a répondu plusieurs fois.

En vous souhaitant à tous deux une excellente soirée.

Je débute en programmation et je réalise un prog VBA en open source pour le trading si ça vous intéresse voici le lien : http://turtlesignal.e-monsite.com/pages/excel-vba.html

J'actualise le fichier à chaque nouvelle avancée

Bien à vous

Bagi!

2dhotgwttna salut2

J'avais fait le maxi pour avoir une chance que ça marche.

teste et essaie d'alléger si tu peux :

  • mettre en modal (sinon les utilisateurs peuvent mettre le brin sur les feuilles)
  • supprimer la formule en E2

Tu te lances dans du lourd pour débuter...

eric

Super !

Merci pour l’encouragement^^, le prog fonctionne déjà et donne des signaux d'achat et de vente et c'est gratuit, j'ai commencé en novembre dernier c'est en langage préhistorique, maintenant que ca fonctionne je vais tenté d'alléger comme un pro

A bientôt Eriiic !

Ton bouton pour télécharger at-journal-dynamique.xls (zip) n'a pas l'air bien en forme...

J'ai téléchargé le zip.

J'ai ouvert le fichier.

Je l'ai regardé.

Je l'ai refermé.

(Non pas par manque d'intérêt mais par manque de capacité à comprendre "c'est quoi " et " Ca sert a quoi " )

Eriic, les 2 liens de téléchargement fonctionnent chez moi.

Lean, un prog sur le trading sert à te donner des signaux d'achat et de vente et à te dire si tu prends trop de risque par rapport à ton capital.

Ca me fait penser que je devrais faire une petite intro accrocheuse

@+

tu as deux boutons de téléchargement qui renvoie vers " page not found "

(ceux qui sont en dessous de la présentation en image).

Je suis tombé par hasard sur le fichier zip en parcourant ton site.

OK pour l'explication mais une question toute bête, il n'existe pas de logiciel gratuit qui font déjà ce que tu as fais ?

oui effectivement, il existe des milliers d'indicateurs et d'experts advisor qui sont disponibles pour différentes plateformes.

La différence c'est :

qu'il y a un conditionneur de stratégies et tu px l’adapter à ton propre système de trading

Je n'en connais aucun en VBA à part MEXCEL qui est payant

pour ceux qui ne savent pas coder en mql4, certains indicateurs ou EA renseignent directement leur programmeur sur ta façon de trader et d'autres infos.

Moi mon prog est basique pour l'instant mais il est propre et consultable par tout le monde.

Je vx par la suite réaliser un solveur sur les trades parfaits en fonctions des conditions de marché et que le conditionneur te sorte directement le meilleur algos ! Au boulot !

Voilà tu sais tout

Eriic, les 2 liens de téléchargement fonctionnent chez moi.

Sur firefox 21.0 j'ai en lien sur les 2 boutons :

Erreur 404 - Page introuvable

eric

Rechercher des sujets similaires à "caption label vba dynamique"