Afficher un message dans une MSGBOX

Bonsoir a tous, et toutes , forum bonsoir,

Je cherche a afficher un message dans une MSGBOX mais qui s'éfface automatiquement au bout d'un temps donner comme ci-dessous
5 corresponds a 5 secondes
- Le message s'affiche correctement MAIS ne s'efface pas tout seul a la fin de la tempo écrite.
- il s'éfface lorsque je clique sur la croix de la MGSBOX

j'ai essayer des exemples vu sur le net et sur des sites et quelques un fonctionnent et pas d'autres ???

J'ai regarder dans la boite a outils controle supplémentaires mais rien trouver sur le sujet.
Si vous avez une explication a me donner, j'en serai bien ravi, j'ai regarder également sur site qui parle de MGSBOX
Merci a vous et une bonne soirée a tous.

Cdlt Ray

--- CreateObject("WScript.Shell").Popup "message....", 5, "le titre...."
--- CreateObject("WScript.Shell").Popup "Cette fenêtre se fermera automatiquement dans 3 secondes...", 3, "Exemple"
--- CreateObject("Wscript.shell").Popup "Le Message", 3, "Exemple", vbExclamation

Salut Ray,

crée une UserForm spécifique, ce sera plus facile et tu pourras y affecter toutes les mises en forme que tu souhaites, qui plus est...


A+

Salut curulis57,

Merci pour ta réponse, oui pour l'UF je sais le faire, mais comme c'est pour insérer dans mon programme de relève cardio.

alors je voudrai faire simple et court.

J'avais déjà utiliser cette façon de faire et me souvient plus dans quel programme mais ca fonctionnait avec ce mème Excel 2007

Je comprends pas pourquoi ca ne fonctionne plus peut être une DLL qui a disparu ou n'ai pas dans windows 10

Merci a toi et bonne soirée.

Cdlt Ray

Bonsoir,

J'utilise excel 2007 et ça fonctionne très bien

Sub Mess()
    CreateObject("Wscript.shell").Popup "Cette fenêtre se fermera automatiquement dans 3 secondes...", 3, "Exemple"
End Sub

Par contre, les 3 secondes passent allègrement de 5 ou 6 secondes.

Cdlt

Salut Ray,
Salut Arturo,

je ne connaissais pas mais... cela ne fonctionne pas sur ma machine : pas de fermeture.
Selon diverses (rapides) recherches sur la Toile, cela semble capricieux selon les OS et/ou versions d'Excel.

Voyons ce que cela donne sur la machine de Ray...


A+

Salut,

Que nenni chez moi

Salut a tous, forum salut,

Merci pour vos réponses,

Alors je suis désolé mais ça ne fonctionne toujours pas chez moi, je suis absolument sur d'avoir essayer ce style de code sur une ligne tel quel

nous le présente l'ami Arturo83 sous mon Excel actuel 2007.

Je retourne voir sur la toile si je peux trouver un indice.

Bonne journée a vous et merci.

Cdlt Ray

Bonjour,

Avez-vous coché "Microsoft Scripting Runtime" dans les références du module VBA?

Cdlt

Salut Arturo,

ah, ben, quand on saura tout!
Effectivement, tout de suite, ça va beaucoup mieux!


A+

Salut a tous,

Merci pour ta réponse,

Je ne dirai qu'un mot (excellent)

Donc ca fonctionne très bien, pour les paramètres on les trouvent facilement sur le net, après mettre de la couleur ou autre, pas vu

Encore merci a toi, j'ai noter cette fois

Passe une très bonne journée

Cordialement Ray

Re salut a tous,

Je croyais l'affaire fini mais non, j'ai voulu faire quelques modifications toutes simples et je me suis aperçu que le message que je faisais afficher ne fonctionnai plus comme il faut.

Le message s'affiche bien a la demande, mais ne s'efface plus au bout du temps donner.

j'ai sauvegarder puis relancer refais mème manipulation le message s'affiche et cette fois il s'efface, bizarre

j'ai donc refait d'autres essais et a chaque fois que l'on fait une modif aussi simple soit t'elle, le ou les messages s'affichent bien mais ils ne s'efface plus seuls.

je sauvegarde, je relance et tant qu'il ni a pas de modifications, c'est bon, ca fonctionne correctement, j'ai bien cocher la case citer par l'ami Arturio que je salue au passage.

Pourquoi cette réaction, je piges pas, si vous avez une idée sur le sujet ?? par avance merci a vous de me dire.

'Mess1
Sub Message1()    ' 3 Secondes
       CreateObject("Wscript.shell").Popup "La case est déjà remplie", 3, "Message", vbExclamation
End Sub

Bonne après midi a tous.

Cdlt Ray

Allez dernière tentative, en étudiant votre macro, vous voulez afficher un message si la case sélectionnée n'est pas vide, et que le message disparaisse de lui-même.

il serait bien que cette macro soit dans le module de la feuille pour qu'elle réagisse, soit à la sélection de la cellule, soit à la tentative de remplissage de cette cellule déjà remplie.

Les 2 macros qui suivent (c'est soit l'une, soit l'autre) sont à copier dans le module de la feuille en question.

si c'est pour le dernier cas (tentative de remplissage de cette cellule déjà remplie) , je ferai ceci:

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Sortie
    Application.EnableEvents = False
    If Target <> "" Then
        CreateObject("Wscript.shell").Popup "La case est déjà remplie", 3, "Message", vbExclamation
        Application.Undo
    End If
Sortie:
    Application.EnableEvents = True
End Sub

si une valeur est saisie à la place d'une autre, le message apparaît, puis devrait disparaitre dans les 3 secondes et annuler la dernière saisie.

*******************************************************************************

Si par contre c'est lors de la sélection de la cellule,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error GoTo Sortie
    Application.EnableEvents = False
    If Target <> "" Then CreateObject("Wscript.shell").Popup "La case est déjà remplie", 3, "Message", vbExclamation
Sortie:
    Application.EnableEvents = True
End Sub

*****************************************************************************

Faites les essais avec les 2 macros.

Cdlt

Salut a tous,

Merci de ta réponse,

Ton code est bon et ça m'a l'air de fonctionner, je verrai avec le temps.

Mais ce n'ai pas fiable quand une erreur est afficher plusieurs fois de suite Excel se plante en faisant tourner un cercle ' bleu ' sur l'écran

et je n'ai plus accès a rien sur mon programme, obliger de passer par "CTRL et ALT et SUPR" et annuler, puis je relance mon programme et

tout va bien du moins jusqu'a la prochaine fois.

Aucune idée pourquoi ça plante comme ça.

Bonne journée a vous et merci de votre aide.

Cdlt Ray

Bonjour,

Pour aller plus loin dans la compréhension du problème, il faudrait que nous disposions du fichier (ou un exemplaire similaire sans données confidentielles)

Peut-être qu'à partir de là, on y verrait plus clair.

Cdlt

Salut Ray,
Salut Arturo,

sinon, dans la rubrique "Tutos et astuces", j'ai trouvé ceci...
Une alternative à la MsgBox


A+

Salut a tous, forum salut,

Salut curulis57, salut Arthuro

Voici le fichier comme demander par l'ami Athuro,

Donc plusieurs plantage avec obligation d'utiliser ctrl,alt,suppr

si on touche pas trop ca a l'air d'être bon, mais avec ces plantages le fichier n'a

plus l'air très stable.

Merci curulis57 pour les infos je vais regarder ça de près, maintenant

Bonne journée a vous et merci de votre aide.

Cdlt Ray

Bonjour

Dans la macro message 1, où est la temporisation?

Sub Message1()    ' 3 Secondes
       CreateObject("Wscript.shell").Popup "La case est déjà remplie", , "Message"
End Sub

j'ai modifié votre code, et intégré les messages directement dans la macro

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    On Error GoTo Sortie
    Application.EnableEvents = False
    If Target.Count = 1 Then
        If Target > "" Then
            CreateObject("Wscript.shell").Popup "La case est déjà remplie", 2, "Message" ' La case est déjà remplie
        Else
            If Time < 1 / 2 Then
                If Not Intersect(Target, Range("A2,A8,A14,A22,A28,A34")) Is Nothing Then
                    affichedate (Target)
                Else
                    CreateObject("Wscript.shell").Popup "Pas dans le bon créneau horaire, saisir en colonne (A) ", 2, "Message"
                End If
            Else
                If Not Intersect(Target, Range("I2,I8,I14,I22,I28,I34")) Is Nothing Then
                    Call affichedate(Target)
                Else
                    CreateObject("Wscript.shell").Popup "Pas dans le bon créneau horaire, saisir en colonne (I) ", 2, "Message"
                End If
            End If
        End If
    End If
Sortie:
    Application.EnableEvents = True
End Sub

Est-ce mieux?

Cdlt

Salut Arturo,

Merci pour le code, on en reste la, ca fonctionne pas trop mal suffit de pas chatouiller le code

Encore merci pour ton aide et ta patience.

Bonne soirée a toi

Cordialement Ray

Pour l'ami curulis57,

J'ai été obliger de modifier la disposition des données dans le tableau afin d'avoir une meilleure lisibilité

après avoir insérer un graphique.

Bien mais je n'arrive pas a effacer comme voulu en utilisant ton code, voir ci-dessous.

Si tu veux svp bien m'expliquer car ce n'ai pas très clair pour moi.

Merci d'avance pour ton aide.

Cdlt Ray

Sub cmdErase_Click()
'
For x = 1 To 6
    iRow = Choose(x, 2, 8, 14, 22, 28, 34)
    Union(Range("A" & iRow), Range("B" & iRow + 1 & ":H" & iRow + 3)).Value = ""    ' surtout cette ligne ????????
Next
'
End Sub

Salut Ray,

tu as, dans ton tableau de relevés, 6 sous-tableaux dont la boucle calcule la ligne précise : iRow.

Union(Range("A" & iRow), Range("B" & iRow + 1 & ":H" & iRow + 3)).Value = ""

Pour chaque sous-tableau, l'UNION des 2 Range, calculées selon iRow, est effacée
- la cellule-Date en [A] & iRow ;
- les cellules-mesures en [B] & iRow + 1 sur une hauteur de 3 lignes iRow + 3.


A+

Rechercher des sujets similaires à "afficher message msgbox"