Inserer un Tchat (mini) dans un UserForm

paul87

XLDnaute Impliqué
Bonjour à tous,
Bonjour le Forum.
Voilà, dans mon appli j'ai un fichier .xls qui dès son ouverture lance un UserForm qui sert de "plateforme de répartition et re direction" vers d'autres xls.
Jusque là tout va bien et fonctionne à la perfection.
Ce fichier xls de départ et utilisé en réseau interne par 10 à 15 personnes simultanément.
Je souhaiterai rajouter une fonctionnalité de tchat (simple ou évolué) directement dans ce UserForm
Est-ce possible..?
si oui comment...?
Merci de m'indiquer quelques pistes, ou tutoriels.
Paul87
 

paul87

XLDnaute Impliqué
Re : Inserer un Tchat (mini) dans un UserForm

Bon,..
je ne sais pas si c'est très orthodoxe...mais j'ai créé un timer sur la macro suivante...
qui empêche l'envoi avant 1 seconde...
voir ci dessous..
Code:
Private Sub CommandButton3_Click()
Dim T
H = DateHeureTchat
h1 = Now
If h1 < H + 1 / 86400 Then
T = Timer + 1 'pour 1 seconde
Do While Timer < T: Loop
End If
If TextBox2.Value = "" Then Exit Sub
Open ChNomFTchat For Output As #1
Print #1, UserLogin & ": " & Me.TextBox2.Text
Close #1
Me.TextBox2.Text = ""
Me.TextBox2.SetFocus
End Sub
Ca a l'air de marcher....
Ouvert aux critiques !!!
 

paul87

XLDnaute Impliqué
Re : Inserer un Tchat (mini) dans un UserForm

Bonjour,
encore une toute dernière question...
j'aimerai pouvoir faire déclencher la macro qui fait le transfert de texte avec la touche "entrée" du clavier..
mais je ne sais pas du tout comment on peut y avoir accès...?
est-ce possible?
Merci
 

Dranreb

XLDnaute Barbatruc
Re : Inserer un Tchat (mini) dans un UserForm

Bonjour
Laissez le bouton, il ne gène pas. D'autant plus qu'il à une propriété Default à mettre à True dans la fenêtre de propriétés pour indiquer justement que c'est le contrôle qui doit être actionné quand on appuie sur la touche Entrée !

Pour en revenir à la dernière question, je ne vois quand même pas trop la nécessité du timer. Et ça ouvre la possibilité que le fichier change pendant l'exécution de la boucle, sans que cela puisse être détecté. Mettre un DoEvents pour permettre l'exécution périodique de la procédure de test. J'aurais à priori donc simplement écrit :
VB:
Do While Now < DateHeureTchat + 1 / 86400: DoEvents: Loop
 

paul87

XLDnaute Impliqué
Re : Inserer un Tchat (mini) dans un UserForm

Vous verriez donc ceci comme ça..?
Code:
Private Sub CommandButton3_Click()
H = DateHeureTchat
h1 = Now
If h1 < H + 1 / 86400 Then
Do While Now < DateHeureTchat + 1 / 86400: DoEvents: Loop
End If
If TextBox2.Value = "" Then Exit Sub
Open ChNomFTchat For Output As #1
Print #1, UserLogin & ": " & Me.TextBox2.Text
Close #1
Me.TextBox2.Text = ""
Me.TextBox2.SetFocus
End Sub
 

Dranreb

XLDnaute Barbatruc
Re : Inserer un Tchat (mini) dans un UserForm

Non, pas besoin d'autre instructions devant: on n'entre pas du tout dans la boucle si DateHeureTChat est ancien de plus d'une seconde. Ce qui est j'espère le délai finalement retenu entre deux exécutions de VérifHeureTchat.
 

paul87

XLDnaute Impliqué
Re : Inserer un Tchat (mini) dans un UserForm

oui, effectivement, cette option est plus logique et plus fiable...
En tous cas GRAND GRAND merci pour votre aide importante !!!
je crois que c'est terminé....je vais passer au test grandeur nature.!!!!
Merci ++
Paul
 

Dranreb

XLDnaute Barbatruc
Re : Inserer un Tchat (mini) dans un UserForm

Je me ravise un tout petit peu: VérifHeureTchat peut s'être exécuté pour la dernière fois depuis trop longtemps, et l'heure enregistrée donc plus conforme à la réalité. On peut donc quand même ajouter devant :
VB:
DateHeureTchat = FileDateTime(ChNomFTchat)
 

paul87

XLDnaute Impliqué
Re : Inserer un Tchat (mini) dans un UserForm

Merci,
j'ai bien rajouté le "rafraichisssement" de DateHeureTchat.
seulement je me rends compte que malgré les modifications, la problématique reste la même.
j'ai des messages qui "sautent" s'ils sont expédiés dans un intervalle inférieur à 1sec.
j'ai pu le constater dès que 5 personnes sont en lignes en même temps..
mince alors..suis perdu
 

Dranreb

XLDnaute Barbatruc
Re : Inserer un Tchat (mini) dans un UserForm

C'est étonnant car il me semble à priori que cela impliquerait que ce rafraichissement soit exécuté durant la même fraction de seconde avant que tout le monde écrive le fichier en même temps, ce qui est presque impossible. Toutefois essayez en ajoutant, à cette addition, une marge de sécurité au délai employé pour le Application.OnTime, voire en le doublant pour être sûr qu'un cycle complet ait été exécuté par tout le monde quels que soient les divers moments où ils sont exécutés. Si ça ne règle pas le problème il va falloir ajouter plus d'informations dans le fichier.
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 520
dernier inscrit
Azise