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 Excel] Quitter le formulaire actuel


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 183
    Points : 125
    Points
    125
    Par défaut [VBA Excel] Quitter le formulaire actuel
    Bonjour,

    J'ai un premier formulaire (frm_Accueil) qui par l'intermédiaire d'un bouton ouvre un autre formulaire (frm_Importer) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub btn_Importer_Click()
        Load frm_Importer
        frm_Importer.Show
    End Sub
    Une fois frm_Importer ouvert, un test s'opère. Si ce test n'est pas réalisé ( condition = false) alors je veux le fermer. Pour ce faire je fais :

    Mais voyez-vous, cela ne fonctionne pas et j'ai l'erreur suivante qui s'affiche :

    Erreur d'exécution '361'

    Impossible de charger ou de décharger cet objet
    Merci pour votre aide
    LikeZone
    Le meilleur du like

  2. #2
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Il y a quoi, sur ce formulaire frm_Importer ?
    Et comment est fait ton test "condition"? Est-ce dans le test que tu fais le "unload"? As-tu essayé de mettre un booléen à True ou False dans le test, et une fois que tu en es sorti, selon la valeur du booléen, tu fermes ou non ton formulaire?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 183
    Points : 125
    Points
    125
    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
    Dim cheminBase As String
    Dim baseExiste As Boolean
     
     
     
    Private Sub UserForm_Initialize()
     
            ' On recherche la base Access
        cheminBase = Application.GetOpenFilename
     
        Dim systemeDeFichier
        Set systemeDeFichier = CreateObject("Scripting.FileSystemObject")
     
            ' Si la base access existe alors on initialise
        If (systemeDeFichier.FileExists(cheminBase)) Then
            baseExiste = True
     
                    ' On initialise les plages en fonction des données de la feuille excel
            Call intialisationPlages
     
            Dim plageTemp As Range
            Set plageTemp = plageInsecte.getPlage("nomInsecte")
            Call definirListe(zl_InsectesISR, plageTemp)
     
        Else
            baseExiste = False
            MsgBox "Il n'y a aucun fichier au chemin spécifié"
            Unload (frm_Importer)
        End If
     
    End Sub
    Je ne fais que tester l'existance d'un fichier. Si il existe ça ne plante pas. par contre, si on va dans le sinon , le Unload(frm_Importer) n'est pas accepté.
    LikeZone
    Le meilleur du like

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    tu peux faire un essai en remplaçant la ligne

    par


    sinon (sans aucun rapport avec ton probleme ) , pour afficher ton USF tu peux utiliser directement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub btn_Importer_Click() 
    frm_Importer.Show 
    End Sub

    bonne soiree
    michel

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 183
    Points : 125
    Points
    125
    Par défaut
    J'y ai pensé, le problème c'est que End ferme le programme et pas juste la fenetre actuelle. Car comme je l'ai dit, j'ai une fenêtre principale ouverte qui ouvre plusieurs fenetre dont notemment frm_Importer.
    LikeZone
    Le meilleur du like

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    rebonsoir

    tu peux tester cette adaptation

    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 cheminBase As String
    Dim baseExiste As Boolean
     
    Private Sub UserForm_Initialize()
            ' On recherche la base Access
        cheminBase = Application.GetOpenFilename
     
        Dim systemeDeFichier
        Set systemeDeFichier = CreateObject("Scripting.FileSystemObject")
     
            ' Si la base access existe alors on initialise
        If (systemeDeFichier.FileExists(cheminBase)) Then
            baseExiste = True
     
                    ' On initialise les plages en fonction des données de la feuille excel
            Call intialisationPlages
     
            Dim plageTemp As Range
            Set plageTemp = plageInsecte.getPlage("nomInsecte")
            Call definirListe(zl_InsectesISR, plageTemp)
     
        Else
            baseExiste = False
            MsgBox "Il n'y a aucun fichier au chemin spécifié"
     
        End If
    End Sub
     
     
    Private Sub UserForm_Activate()
    If baseExiste = False Then Unload Me
    End Sub


    bonne soiree
    michel

  7. #7
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    L'instruction Unload n'a pas besoin de parenthèses puisque tu appelle une procédure et non une fonction (qui retourne une valeur). Je suppose que la procédure Initialize est bien celle de ton frm_Importer. Donc, un simple
    suffirait.

Discussions similaires

  1. [VBA-EXCEL] - Quitter un contrôle
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/12/2006, 08h08
  2. [VBA Excel] Ordonner les tabulations dans un formulaire
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/06/2006, 13h41
  3. [VBA] insérer un tableau Excel dans un formulaire
    Par Alexj51 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 08/02/2006, 13h15
  4. [vba-excel] Affichage de formulaire
    Par decour dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/12/2005, 11h04
  5. [VBA excel]Inserer un graphique dans un formulaire
    Par girardeau dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/11/2005, 15h58

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