IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

MsgBox en boucle et créer un fichier txt avec les réponses de la personne


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 11
    Points
    11
    Par défaut MsgBox en boucle et créer un fichier txt avec les réponses de la personne
    Bonjour à tous,

    Je galère vraiment en script et suis débutant dans ce domaine.
    Je vous explique mon problème.

    je souhaiterais créer une msgbox qui tournerais en boucle tant que la personne ne répondrais pas au bouton oui.
    J'ai joint un algorigramme pour que vosu puissiez bien comprendre ma demande.

    J'ai réussi jusque là à faire la partie msgbox, mais coince sur la boucle.
    Je ne sais pas trop ou l'insérer ni comment.

    ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'MsgBox Oui + Non
    Select Case MsgBox("Est-ce que ca fonctionne", vbYesNoCancel, "Fonctionnera ou pas ?")
    Case vbYes
    MsgBox "vous avez clique sur oui",vbinformation
    Select Case MsgBox("Tu en redemande ?", vbYes, "Fonctionne?")
    Case vbNo
    MsgBox "vous avez clique sur non",vbinformation
    End Select
    End Select
    J'ai essayé plusieurs chose mais qui ne fonctionne pas du tout.

    Je vous remercie d'avance pour votre aide.
    Images attachées Images attachées  

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Je ne sais pas si c'est la façon la plus propre de l'écrire mais je pense que sa répond a ton problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    'MsgBox Oui + Non
    Dim test1
    test1=False
    While(test1<>true)
    	Select Case MsgBox("Est-ce que ca fonctionne", vbYesNoCancel, "Fonctionnera ou pas ?")
    		Case vbYes
    			test1=True
    			MsgBox "vous avez clique sur oui",vbInformation
    			Select Case MsgBox("Tu en redemande ?", vbYesNo, "Fonctionne?")
    				Case vbYes
    						test1=False
    				Case vbNo
    					MsgBox "vous avez clique sur non",vbInformation
    			End Select
    		Case vbNo
    			test1=false
    	End Select
    Wend

    (si c'est le cas ne pas oublier de mettre résolu ^^)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    ouai ca a l'air d'être bon pour le premier mesage box.
    C'est exactement le résultat que je voulais avoir, sauf que par la suite, et dans les autres msgbox qui apparaissent, je voudrais que si l'utilisateur répond une fois à non, il retourne directement à la première msgbox du départ.

    Je sais pas si j'arrive à me faire comprendre.

    Imaginons que tu as une succession de 5 msgbox et que le seul moyen d'avancer et de voir ces 5 msgbox c'est de répondre à oui à tout, sinon tu recommences depuis le premier msgbox!

    En tout cas, merci pour ta réponse, je vois déjà comment faire pour que la seul réponse du premier msgbox soit un oui.
    Je m'y prenais mal et ne déclarait pas la bonne variable.
    Merci.

  4. #4
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 185
    Points
    17 185
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Dim Rep
     
    Sub repondre1()
    Rep = Msgbox("1- Veuillez repondre oui pour continuer",VByesNo,"Premiere question")
    if Rep = VBNo then
            repondre1
            else
            repondre2
    end if
    End Sub
     
    Sub repondre2()
    Rep = Msgbox("2- Veuillez repondre oui pour continuer",VByesNo,"Deuxieme question")
    if Rep = VBNo then
            msgbox "pas bien de ne pas avoir repondu à la question 2"
            repondre1
            else
            repondre3
    end if
    End Sub
     
    Sub repondre3()
    Rep = Msgbox("3- Veuillez repondre oui pour continuer",VByesNo,"Deuxieme question")
    if Rep = VBNo then
            msgbox "pas bien de ne pas avoir repondu à la question 3"
            repondre1
            else
            msgbox "Trés bien d'avoir repondu oui jusqu'à la question 3"
    end if
    End Sub
     
    repondre1
    Cela est de la logique, pas un problème VBSCript
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Désolé du retard,
    je n'avais pas pensé à la manière de ProgElecT mais c'est effectivement la meilleur je pense.
    par contre avec le while il suffisait de continuer les select case imbriqué avec dans le case no d'une msgbox mettre a chaque fois exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Dim test1
    test1=False
    While(test1<>true)
    	Select Case MsgBox("Est-ce que ca fonctionne", vbYesNoCancel, "Fonctionnera ou pas ?")
    		Case vbYes
    			test1=True
    			MsgBox "vous avez clique sur oui",vbInformation
    			Select Case MsgBox("Tu en redemande ?", vbYesNo, "Fonctionne?")
    				Case vbYes
    						test1=False
    				Case vbNo
    					Select Case MsgBox ("vous avez clique sur non?",vbYesNo)
    				    	Case vbNo
    							test1=False
    				    	Case vbYes
    							MsgBox "Bon ba, c'est fini les msgbox"
    					End Select
    			End Select
    		Case vbNo
    			test1=false
    	End Select
    Wend

    (ne pas oublier le résolu!!!)

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Points : 617
    Points
    617
    Par défaut
    salut

    Si j'ai bien compris la demande, ceci devrait suffire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim test1 As Integer, nb As Integer, nbfois As Integer
    test1 = False: nb = 1: nbfois = 3
    While (test1 <> True) Or nb < nbfois + 1
        rep = MsgBox(nb & " - Veuillez repondre oui pour continuer", vbYesNoCancel, "Question N° " & nb)
        If rep = vbYes Then
            test1 = True: nb = nb + 1
        ElseIf rep = vbNo Then
            test1 = False
            MsgBox "pas bien de ne pas avoir repondu à la question " & nb & " ===>> retour à la case départ", vbInformation
            nb = 1
       End If
    Wend
    donner à nbfois le nombre des msgboxes (ici 3 pour l'exemple)

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    ralalaaaaa, c'est nikel ca.
    Merci beaucoup, et @ tous. Ca fonctionne très bien, et c'est exactement ce que je cherchais.
    Encore un grand merci.

    Pendant que j'y pense, est-ce qu'il est possible de créer un fichier txt avec les réponses de la personne ?
    Je sais, c'est stupide étant donné qu'elle aura répondu oui à tout, mais ca permetterais de créer un fichier "récap" de tout ca.

    J'ai trouvé ceci, mais ne sait pas trop comment faire pour l'implémenter dans vos scripts.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Const ForReading = 1, ForWriting = 2, Forappend = 8
      Set WshShell = WScript.CreateObject("WScript.Shell")
       Dim fso, f
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set f = fso.OpenTextFile("c:\temp\ecr.txt", ForWriting,true)
       f.write("Salut")
    Il faudrait que je remplace le "Salut" par les réponses "oui" à toutes les question posé dans les msgbox.

    Je pense pas que j'ai le droit de faire une autre demande dans ce post, donc dite le moi et je crérais un nouveau topic.
    En tout cas, encore un grand merci à tous, et vive les forums d'entre-aide.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2010
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    il suffit de mettre ça au début
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Const ForReading = 1, ForWriting = 2, Forappend = 8
      Set WshShell = WScript.CreateObject("WScript.Shell")
       Dim fso, f
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set f = fso.OpenTextFile("c:\temp\ecr.txt", Forappend,true)
    'Forappend car cela permet de laisser intact le fichier et d'écrire à la fin
    et rajouter dans chaque if:
    exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Const ForReading = 1, ForWriting = 2, Forappend = 8
      Set WshShell = WScript.CreateObject("WScript.Shell")
       Dim fso, f
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set f = fso.OpenTextFile("c:\temp\ecr.txt", Forappend,true)
       Dim test1 , nb , nbfois 
    test1 = False: nb = 1: nbfois = 3
    question=" - Veuillez repondre oui pour continuer"
    While (test1 <> True) Or nb < nbfois + 1
        rep = MsgBox(nb & question, vbYesNoCancel, "Question N° " & nb)
        If rep = vbYes Then
            test1 = True: nb = nb + 1
            f.write("oui>"& nb & question )
        ElseIf rep = vbNo Then
            test1 = False
            MsgBox "pas bien de ne pas avoir repondu à la question " & nb & " ===>> retour à la case départ", vbInformation
            nb = 1
            f.write("non>"& nb & question )
       End If
    Wend
    enfin me semble que c'est sa... sinon ba je crois que j'ai planté mon stage


    edit: babaothe on est en vbscript donc les variable n'ont pas besoin d'etre typé

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    OK, je vais essayer d'inclur tout ca.
    En tout cas, un grand merci à tous pour votre aide.

    Je pense que nous pouvons concidérer que le sujet est clos

    Bonne continuation à tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Cmd ECHO créer un fichier txt avec l'heure comme nom
    Par Seth_Nemesia111 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 10/03/2015, 14h42
  2. Réponses: 2
    Dernier message: 30/09/2009, 16h43
  3. créer un fichier ini avec les mfc
    Par Djawida dans le forum MFC
    Réponses: 16
    Dernier message: 02/06/2009, 09h04
  4. créer un fichier txt avec c++
    Par fatjoe dans le forum C++
    Réponses: 1
    Dernier message: 15/01/2008, 22h21
  5. Réponses: 4
    Dernier message: 12/02/2007, 17h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo