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

Macros et VBA Excel Discussion :

[VBA-E] excel minimisé mais user form visible


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 42
    Par défaut [VBA-E] excel minimisé mais user form visible
    Bonjour,
    je voudrais créer une appli dans laquelle la communication avec l utilisateur se fait via une (des) userforms.
    Mais je voudrais qu'une fois l appli lancée, la fenetre principale excel se minimise en barre des taches, mais pas ma userform. Je veux que pendant que mon appli tourne je puisse ouvrir un autre fichier excel pour travailler dessus.
    Jusqu'à présent j'ai trouvé des exemples qui rendent invisible (je veux pas ça) ou réduisent excel mais aussi ma userform en meme temps (je veux pas non plus).
    Merci de votre aide,
    Benoit

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    un simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub UserForm_Initialize()
      Application.WindowState = xlMinimized
    End Sub
    c'est pas bon ..?

  3. #3
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par bill7
    Je veux que pendant que mon appli tourne je puisse ouvrir un autre fichier excel pour travailler dessus.
    Pour ça, l'idéal est d'ouvrir une autre instance d'Excel.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 42
    Par défaut
    pas mal bbil, mais ça me réduit aussi ma userform, et elle je ne veux pas qu elle soit minimisée ! ...

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    A bon pas chez moi - quelle est ta version d'Excel ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 42
    Par défaut
    ma version est 2002 (10.2614.2625)

    code du bouton qui lance ma usf; le bouton est sur une feuille du classeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub go_Click()
        demarrer
        While CONTINUER       
            Application.WindowState = xlMinimized
             Load UserForm1
            UserForm1.Show
        Wend
        Application.WindowState = xlMaximized
    End Sub
    Quand je clique, tout se réduit en barre des taches y compris le user form; si je clique sur la tache user form en bas, ça me l affiche en taille normale mais ça réaffiche aussi la fenetre excel derriere.
    Je devrais peut être rajouter une instruction dans l initialisation de ma usf pour lui dire d'avoir une taille normale ?

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    pourquoi .. Visible ...? essai sans .. et place dans l'initiate de ton userform le code proposé...


    à coté de cela ... à quoi sert ta boucle ...?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 42
    Par défaut
    pardon j avais essayé autre chose , mais j ai corrigé mon message apres quand je me suis aperçu.
    Bon au clic sur le bouton dans ma feuille excel, j'ai tout qui passe en barre des taches (un bouton excel) et je dois cliquer dessus pour que ma user form apparaisse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub go_Click()
        demarrer
        While CONTINUER             
            Load UserForm1
            UserForm1.Show
        Wend
        Application.WindowState = xlNormal
    End Sub
    code init de ma usf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Initialize()
        Application.WindowState = xlMinimized
    End Sub
    Important : quand je fais mon clic bouton et que l editeur vba est ouvert (mode création) tout baigne, ça marche. Mais quand VBA est pas ouvert ça fait comme je t ai dit plus haut.
    Je peux pas rajouter une instruction apres l initialisation de ma user form pour lui dire d avoir une taille normale ?


    Ma boucle me permettra de passer d'une userform à une autre en passant par le meme point d entree.

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Chuis comme bbil, je ne comprends pas ta boucle (en rouge dans le lien) et ta réponse ne nous éclaire pas, sauf si tu ne nous mets pas tout le code tel qu'il est "réellement" dans ton clic
    Relis ce que je t'ai mis sur l'autre discussion
    A+

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 42
    Par défaut
    Voici le resultat que je veux :
    exempleAppliAnglais.doc

    Quant au code, j'ai supprimé la boucle, pour l instant elle ne sert à rien.
    Voici donc le code du bouton Go de ma feuille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub go_Click()
        demarrer
        Load UserForm1
        UserForm1.Show
        Application.WindowState = xlNormal
    End Sub
    le code de demarrer dans un module:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub demarrer()
        CONTINUER = True
    End Sub
    le code de ma userform:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub UserForm_Initialize()
        Application.WindowState = xlMinimized    
        nbQuestions = WorksheetFunction.CountA(Worksheets("phrases").Range("a:a"))
        initNoSeq
        Sheets("memoire").Cells.ClearContents
        etatQuestion
    End Sub
    le code initnoseq dans un module:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub initNoSeq()
        NO_SEQ = 0
    End Sub
    le code etatQuestion dans mon user form:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub etatQuestion()
        lib.Caption = "réponse R       suivant S       précédent P       menu M"
        Randomize
        numQuestion = Int((nbQuestions * Rnd) + 1)
        question.Caption = Sheets("phrases").Cells(numQuestion, 1)
        reponse.Caption = ""
        empile (numQuestion)
    End Sub
    Et donc mon problème : quand je clique sur le bouton c est que tout passe en bas y compris ma user form. Je vous envoie mon classeur (iciAnglais.zip), il n y a pas de brevet dessus.

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    J'ai vu ton fichier mais il n'apporte rien. Par contre, ton code, lui explique une chose : Ta ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Application.WindowState = xlMinimized
    est placée dans l'userform et ça, je pense que c'est pas bien
    Tu dois avoir une macro dans un module standard qui ouvre le 1er userform.
    Place cette ligne dans cette macro, avant ouverture de l'userform
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Ouvrir()
        Application.WindowState = xlMinimized
        Load UserForm1
        UserForm1.Show
        Application.WindowState = xlNormal
    End Sub

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 42
    Par défaut
    Non, ça ne change rien : en mode débug ça fonctionne (le clic sur mon bouton réduit bien excel mais la form apparait), mais en mode normal je dois cliquer sur excel minimisé en barre des taches pour que ma form aparaisse.
    Si quelqu'un a une idée voici le classeur, il n'y a qu à cliquer sur le bouton "go"
    Anglais.zip

  13. #13
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    J'ai testé et ça fonctionne chez moi. A tout hasard, as-tu pensé d'éliminer le "minimized" de tout le code de ton userform ?

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 42
    Par défaut
    J'ai créé une userform2 avec rien dedans, et si c est elle que je lance ça me donne le meme résultat : apres le clic bouton tout se minimise en 1 bouton excel en barre de tache, je dois cliquer sur ce bouton de la barre des tâches pour afficher la form. Donc ça vient pas du code de ma form.
    Ca marchait aussi chez bbil ... ?

  15. #15
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ok, ton bouton se trouve sur ta feuille de calcul. Je n'ai pas vu que tu l'aies indiqué.
    J'ai donc placé le bouton dans une barre d'outils et ce code fonctionne.
    de même que Application.visible = false... et true
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub ouvreUSF()
        demarrer
        'Application.Visible = False
        Application.WindowState = xlMinimized
        'While CONTINUER
            Load UserForm1
            UserForm1.Show
        'Wend
        'Application.Visible = True
        Application.WindowState = xlMaximized
    End Sub
    A+

  16. #16
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Une autre solution qui fonctionne
    Dans le clic du bouton placé dans la feuille de calculs, tu peux tester ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub go_Click()
         Application.Run "anglais.xls!ouvreUSF"
    End Sub
    et dans le module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ouvreUSF()
        demarrer
        Application.WindowState = xlMinimized
            Load UserForm1
            UserForm1.Show
        Application.WindowState = xlMaximized
    End Sub
    Tu dis

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 42
    Par défaut
    je ne sais pas mettre le bouton dans une barre de calcul, et ce n'est pas ce que je veux (mais bon je veux bien essayer). Par contre pour essayer, j appelle ouvreUSF à l ouverture du classeur (dans le code de thisWorkbook) sans passer par le bouton et ça change rien au résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
        ouvreUSF
    End Sub

  18. #18
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Regarde ma dernière réponse, elle fonctionne depuis un bouton placé dans la feuille de calculs

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 42
    Par défaut
    non, ton autre solution avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Run "anglais.xls!ouvreUSF"
    non plus ne change rien à mon résultat ...

  20. #20
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je n'insiste pas.

    Tiens, puisque j'ai fait tout ça, au moins que ce ne soit pas pour rien
    Pièce jointe 12447

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2002] Comment il faut d'ajouter un tableau d'Excel dans une "USER FORM" en Excel 2002?
    Par sergio_gr66 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/12/2010, 10h31
  2. [VBA-E]user form retourner a la feuille et clique souris
    Par srame dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/04/2007, 07h40
  3. deplacement dans Excel avec user form actif
    Par rodrigue62 dans le forum Excel
    Réponses: 5
    Dernier message: 29/03/2007, 12h40
  4. Envoi de mail en VBA Excel avec mise en forme et choix d'expediteur
    Par amalane dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/08/2006, 15h24
  5. [VBA-W]User Form à l'ouverture d'un document
    Par Oly1973 dans le forum VBA Word
    Réponses: 3
    Dernier message: 22/03/2006, 11h10

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