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 :

Apparition d'un formulaire qui ne devrait pas se voir


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 15
    Points
    15
    Par défaut Apparition d'un formulaire qui ne devrait pas se voir
    Bonjourtout le monde,

    j'ai un petit soucis!! J'ai réalisé un bouton de commande qui ferme mes deux formulaires et fait apparaître la feuille Excel. Au premier clique il fonctionne correctement, ma feuille Excel apparaît!
    Puis de ma feuille Excel j'ai réalisé un bouton de commande qui lui me raméne
    sur mon formulaire de saisie.
    Mais le problème survient lorsque je rappuie sur le bouton de commande pour une deuxième fois, mon formulaire de saisie se cache mais pas mon formulaire de présentation! et derrière mon formulaire de présentation je vois ma feuille Excel!

    Comment puis-je faire afin que mon formulaire de présentation disparaîsse??

    Voici les algo du bouton de commande du formulaire de saisie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Pers_CDD_Click()
    Application.Visible = True
    'Activer feuille 3
    Worksheets(3).Activate
    'fermer la fenêtre principale des indicateurs foyer
    Indicateurs_foyer.Hide
    Presentation.Hide
    End Sub
    Voici les algo du bouton de commande de ma feuille excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Retour_formulaire_saisie_Click()
       'Cache la feuille Excel
        Application.Visible = False
        'Affiche le formulaire de Présentation
        Indicateurs_foyer.Show
        Presentation.Show
    End Sub

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 95
    Points : 99
    Points
    99
    Par défaut
    Salut,

    juste une petite précision stp: quand tu dis que tu veux qu'ils disparaissent, tu veux les fermer (et vider la mémoire associée) ou tu veux juste les cacher (et garder les données et la mémoire)?
    En d'autres termes, quand tu relances tes formulaires, tu veux que ce soit des formulaires vides ou qu'ils puissent contenir déjà des données?
    S'il n'y a pas de solution c'est qu'il n'y pas de problème (proverbe shadok)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 15
    Points
    15
    Par défaut
    En faite je veux juste cacher mes formulaires afin d'accéder à ma feuille Excel.
    Sur mon formulaire de saisie normalement les données seront mais pour sécurité les données devraient rester sur le formulaire!!

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2006
    Messages : 128
    Points : 168
    Points
    168
    Par défaut
    bonjour
    dis nous! le bouton qui cache les formulaires est dans quel formulaire?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 15
    Points
    15
    Par défaut
    J'ai deux formulaire :
    - formulaire de présentation
    - formulaire de saisie

    Le bouton de commande est dans le formulaire de saisie.
    On accéde au formulaire de saisie par le formulaire de présentation.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 95
    Points : 99
    Points
    99
    Par défaut
    Hello,
    c'est parfaitement normal.
    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
     
    Private Sub Pers_CDD_Click()
    1 Application.Visible = True
    'Activer feuille 3
    2 Worksheets(3).Activate
    'fermer la fenêtre principale des indicateurs foyer
    3 Indicateurs_foyer.Hide
    4 Presentation.Hide
    End Sub
     
    Private Sub Retour_formulaire_saisie_Click()
    'Cache la feuille Excel
    5 Application.Visible = False
    'Affiche le formulaire de Présentation
    6 Indicateurs_foyer.Show
    7 Presentation.Show
    Regarde le code ci-dessus, j'ai numéroté les lignes intéressantes (de 1 à 7).
    Quand tu cliques sur le bouton de ta feuille excel, tu lances la ligne 5 puis 6. A ce moment là, Excel lance le formulaire de saisie et le code passe sur le formulaire de saisie.
    Tu fais des trucs et tu cliques sur ton bouton pour tout fermer, tu lances donc les lignes 1, 2, 3 puis 4. Mais la ligne 4 ne sert à rien puisque le formulaire de présentation n'a jamais été lancé (le code est jamais passé par la ligne 7). nsuite la procédure se termine et rend la main à la première qui reprend à la ligne 7 et affiche ton formulaire de présentation.

    Donc, ce n'est pas que le formulaire de présentation n'a pas été fermé, c'est qu'il vient juste d'être ouvert.

    Pour résoudre ton problème, je te propose ça mais sans garantie (j'ai pas testé):
    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
     
    'bouton de commande de ma feuille excel :
    Private Sub Retour_formulaire_saisie_Click()
    Application.Visible = False
    Presentation.Show
    End Sub 
     
    'code dans ton userform presentation, le nom de la sub est TRES important
    Private Sub userForm_initialize()
    Indicateurs_foyer.Show
    Me.Hide
    end sub
     
    Private Sub Pers_CDD_Click()
    Application.Visible = True
    Worksheets(3).Activate
    Me.Hide
    End Sub
    Voilà, si tu rencontres d'autres problèmes, hesite pas
    S'il n'y a pas de solution c'est qu'il n'y pas de problème (proverbe shadok)

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 15
    Points
    15
    Par défaut
    Ca fonctionne toujours pas...
    J'ai toujours le formulaire de présentation qui apparaît et il apparaît dès le premier clique maintenant!

    En faite j'aimerai que lorsque la personne appuie sur le bouton de commande "Retour saisie" il arrive sur mon deuxième formulaire et pas sur mon formulaire de présentation.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 15
    Points
    15
    Par défaut
    Je t'ai mis mon fichier ci-joint pour que tu puisses voir à quoi ressemble mon programme et que tu vois mon pb!
    Merci par avance

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 95
    Points : 99
    Points
    99
    Par défaut
    Oui, c'est normal, t'as pas mis le bon nom à la sub, c'est userform_initialize et pas Presentation_initialize.
    Le nom est vraiment important car Excel recherche ce nom spécifiquement pour savoir comment initialiser le userform.
    J'ai testé assez vite, ça a l'air de faire mieux ce que tu veux.

    Tiens-moi au courant.
    S'il n'y a pas de solution c'est qu'il n'y pas de problème (proverbe shadok)

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 15
    Points
    15
    Par défaut
    Ca fonctionne toujours pas...

    Maintenant le formulaire de présentation n'apparaît plus à l'ouverture...
    De plus il y a toujours le même pb au niveau du formulaire de présentation qui reste toujours ouvert lorsque je clique sur le bouton de commande du deuxième formulaire!
    Je t'envoie le fichier avec les modifications faites!

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 95
    Points : 99
    Points
    99
    Par défaut
    On va reprendre calmement les choses ok?

    Tu me corriges si je me trompe mais voilà ce que j'ai compris de ce que tu veux:
    - A l'ouverture du fichier, la macro se lance et ouvre le formulaire de présentation.
    - quand on clique sur "valider" avec la combobox à "saisie", on affiche le formulaire de saisie. Si on le ferme, on retourne sur le premier formulaire.
    - quand les formulaires sont fermés et qu'on veut saisir des données, on clique sur "retour saisie" et ça affiche le formulaire de saisie. Quand on le quitte, on veut retourner sur la feuille Excel.

    J'attends confirmation et je regarde plus précisément ton code
    S'il n'y a pas de solution c'est qu'il n'y pas de problème (proverbe shadok)

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 15
    Points
    15
    Par défaut
    - A l'ouverture du fichier, la macro se lance et ouvre le formulaire de présentation. Ok


    - quand on clique sur "valider" avec la combobox à "saisie", on affiche le formulaire de saisie. Si on le ferme, on retourne sur le premier formulaire. Ok

    - quand les formulaires sont fermés et qu'on veut saisir des données, on clique sur "retour saisie" et ça affiche le formulaire de saisie. Quand on le quitte, on veut retourner sur la feuille Excel. Non

    Dans le formulaire de saisie en faite tu as deux boutons de commande
    - "Noms des personnes en CDD"
    - "Noms des personens en intérim"
    Lorsqu'on appuie sur l'un des deux on arrive sur la feuille Excel adéquat (Le formulaire de présentation et le formulaire de saisie ne doivent pas apparaître)

    Lorsque tu es sur la feuille Excel tu as deux boutons :
    - "Retour saisie" permet d'aller au Formulaire de saisie afin de continuer la saisie
    - "Retour menu" permet d'accéder directement au formulaire de présentation.

    ESt-ce que je t'ai un peu plus aidé? ou toujours pas?
    Merci de ton aide...

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 95
    Points : 99
    Points
    99
    Par défaut
    Salut,

    ci-joint une solution qui marche avec les quelques tests que j'ai fait. Please test on your side et dis-moi si ça marche ou pas.

    Les principales modifs que j'ai faites dans ton code:
    - déplacement de l'initialisation des userforms dans les userforms et pas avant d'appeler l'userform
    - changement des ".hide" en "unload me" qui te permet de fermer le formulaire et de libérer la mémoire proprement.

    Hésite pas si tu as d'autres soucis
    Fichiers attachés Fichiers attachés
    S'il n'y a pas de solution c'est qu'il n'y pas de problème (proverbe shadok)

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 15
    Points
    15
    Par défaut
    Merci beaucoup grrimag!

    Ca fonctionne nickel

    MERCI!!!!!!

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 15
    Points
    15
    Par défaut
    Re : désolé... Mais ça fonctionne pas...


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

Discussions similaires

  1. [Mail] texte qui ne devrait pas s'afficher
    Par jfrag dans le forum Langage
    Réponses: 4
    Dernier message: 14/11/2006, 18h52
  2. [VB.NET]un formulaire qui ne veut pas se fermer
    Par josyde2006 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/08/2006, 08h29
  3. Réponses: 5
    Dernier message: 23/06/2006, 14h22
  4. formulaire qui n'envoie pas a la bonne page
    Par hansaplast dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 19/06/2006, 14h13
  5. Formulaires qui ne sont pas tous valider
    Par vins25 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 19/01/2006, 00h44

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