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

Bonjour à tous,
concernant ce petit projet de miniTchat, j'ai mis en pièce jointe ma démo je ne peux pas mettre toute mon appli.
je souhaiterais que la TextBox2 qui contient les dialogues, soit mise à jour ou "rafraichie" dans un délai très court.
Ce UserForm (ou du moins son application complète) est actif sur une vingtaine de postes informatiques différents, localisés dans des bureaux différents, mais sur le même réseau.
Chaque utilisateur a son login de session Windows que je récupère pour faire le début de la phrase.
Comment faire pour ne pas fermer le UserForm et pouvoir avoir une TextBox1 qui s'actualise dès qu'un utilisateur quel qu'il soit poste un message dans la TextBox2.
Est-ce que c'est possible..?
Si oui comment..?
Merci pour vos conseils
 

Pièces jointes

  • chat.xls
    31 KB · Affichages: 76
Dernière édition:

Dranreb

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

Bonjour.
Votre Userform a sa propriété ShowModal à True et au Show il n'est pas non plus rectifié à False par une spécification 0.
Est-ce voulu ? Les usagers ne doivent il pas pouvoir continuer de travailler dans Excel pendant que l'Userform est affiché ?
Une question importante : Existe-t-il une lettre de lecteur associée à un dossier du réseau accessible en lecture/écriture par tous les usagers ? Il faut pouvoir y lire et écrire un fichier Tacht.txt par exemple.
 

paul87

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

Merci vivement pour votre aide.!!
A vrai dire pour les propriétés ShowModal je ne sais pas bien quel est le bon paramètrage..
Les usagers n'ont pas besoin de travailler avec Excel lorsque CE userform est ouvert, la finnalité de ce UserForm est uniquement de servir de plateforme de liens vers d'autres fichiers .xls avec comme code d'appel (sur un label en l'occurance)
Code:
Workbooks.Open "\\----\----\----\-----\--\---xls"
Unload me
Il existe bien un lecteur dédié, accessible par tous en lecture écriture(w:\) (mais je n'ai pas beoin de sauvegarder le contenu du Tchat..il s'agit juste d'un petit gadget que je veux mettre en place pour détente un peu ..)
Merci pour vos conseils
 

Dranreb

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

Je ne vois pas d'autre endroit possible qu'un petit fichier texte dans ce lecteur dédié pour ranger le texte du message.
L'userform devra-t-il donc être affiché en modal dès que ce fichier aura été modifié par quelqu'un et ce tant que ce classeur est ouvert ?
Ça m'étonne un peu car vous dites à un moment:
Comment faire pour ne pas fermer le UserForm
Or s'il est affiché en modal on ne peut rien faire d'autre que d'intervenir dans cet Userform. Tout travail dans Excel est impossible.
Ce n'est pas comme une boîte qui reste là, indépendante dans son coin, sans gêner le travail dans Excel. Pour cela il faudrait qu'il soit affiché non modal.
 
Dernière édition:

paul87

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

Pour l'insant, dans mon appli actuelle le paramètre ShowModal est à "False".
cela peut'il rester comme ça.?
Sinon pas de problème pour passer par un petit fichier .txt pour stocker.
Je pensait que cela aurait été possible par plusieurs variables qui se chargent et se vident après usage..
 

Dranreb

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

Faites déja des essais comme ça: dans un module ordinaire :
VB:
Option Explicit
Public Const ChNomFTchat = "W:\Temp\Tchat.txt"

Sub LancementTchat()
UserForm1.Show
VérifHeureTchat
End Sub

Sub VérifHeureTchat()
If Not UserForm1.Visible Then Exit Sub
On Error Resume Next
UserForm1.ContrôleChgt FileDateTime(ChNomFTchat)
Application.OnTime Now + 5 / 86400, "VérifHeureTchat"
End Sub
Dans Userform1 :
VB:
Option Explicit
Dim UserLogin As String, DateHeureTchat As Date

Private Sub UserForm_Initialize()
UserLogin = Environ("USERNAME")
End Sub

Public Sub ContrôleChgt(ByVal H As Date)
If H <> DateHeureTchat Then
Open ChNomFTchat For Input As #1
Line Input #1, Me.TextBox1.Text
Close #1
DateHeureTchat = H
End Sub

Private Sub CommandButton1_Click()
Open ChNomFTchat For Output As #1
Print #1, Me.TextBox2.Text
Close #1
DateHeureTchat = FileDateTime(ChNomFTchat)
End Sub
 

Dranreb

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

Le code que je vous ai indiqué ne peut fonctionner que s'il est affiché non modal, c'est à dire soit si sa propriété ShowModal est à False, soit s'il est affiché par un Userform1.Show 0
Je préfère la 1ère solution car j'estime qu'un Userform doit être pensé en fonction du fait qu'il sera affiché modal ou non modal et que c'est donc une caractéristique qui lui est propre. Je n'ai jamais vu de cas ou un Userform était affiché tantôt modal tantôt non modal et je trouve donc absurde de le préciser au Show.
 

paul87

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

Merci pour ce bon début.!!
Donc, le texte entré dans la Textbox2 va bien s'enregister dans le fichier Tchat.txt.
par contre, le texte précedent s'efface à chaque nouvelle saisie, il n'y a donc qu'une ligne à chaque fois.
De plus, il n'y a pas d'affichage dans la textBox1 du texte saisi en Textbox2
 

Discussions similaires