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 :

Userform : bloquer l'éxécution de la macro [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Femme Profil pro
    Chargée de missions
    Inscrit en
    Janvier 2016
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargée de missions

    Informations forums :
    Inscription : Janvier 2016
    Messages : 73
    Par défaut Userform : bloquer l'éxécution de la macro
    Bonjour (ou re).

    Nouveau problème : je n'arrive pas à bloquer le lancement de ma macro si :
    - Le chemin du fichier n'est pas renseigné
    OU/ET
    - Le canal n'est pas renseigné

    Voici le topo : A l'ouverture de mon outil, un userform apparaît demandant de choisir un doc excel dans mes documents et un canal (sms, mail,...). Quand ces deux champs sont sélectionnés, j'appuie le bouton "lancer" et le travail se fait correctement. Maintenant, je chercher à bloquer la commande "lancer" lorsque soit le chemin, soit le canal, soit les deux ne sont pas renseignés et de remontrer l'userform de départ.

    J'avais déjà réussi à le faire sur un précédent outil, mais là ça bloquouille et je vois pas pourquoi vu que c'est exactement le même principe. A savoir que quand je sélectionne un doc et pas le canal, la macro est bien stoppée mais pas l'inverse.

    De plus, lorsqu'il y a blocage et que je demande donc à la commande "Ouverture.Show" de faire son job, ça m'indique "Feuille déjà affichée, affichage modal impossible"... Ok très bien, mais quand je masque cette commande, l'userform ne revient pas


    Voici le bout de code incriminé :

    ListC correspond à une ListBox
    Me.Chemin correspond au chemin du document Excel sélectionné (ex : D:\User\blabla.xls)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If (IsNull(ListC.Value) = True) Or (Dir(Me.Chemin) = "") Then
    MsgBox "Vous devez sélectionner un fichier"
    'Ouverture.Show

    Merci par avance pour vos retours !

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    J'essaierais comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If ListC.ListIndex < 0 Or Me.Chemin = "" Then
       MsgBox "Vous devez sélectionner un fichier"
    else
       Ouverture.Show
    end if

  3. #3
    Membre confirmé
    Femme Profil pro
    Chargée de missions
    Inscrit en
    Janvier 2016
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargée de missions

    Informations forums :
    Inscription : Janvier 2016
    Messages : 73
    Par défaut
    Bonjour,

    Ah merci ! Ca bloque bien dans les deux cas.

    Par contre, j'ai toujours le problème du "Ouverture.Show" ("Feuille déjà affichée, affichage modal impossible")


    Edit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If ListC.ListIndex < 0 Or Me.Chemin = "" Then
    MsgBox "Vous devez sélectionner un fichier"
    Ouverture.Hide
    Ouverture.Show
    Else
    ...
    En fermant l'userform et en l'ouvrant aussitôt après, le problème disparaît.. Mais c'est moyen-bof comme méthode..

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Si ton Userform est déjà affiché, nul besoin de redemander de l'afficher...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If ListC.ListIndex < 0 Or Me.Chemin = "" Then
       MsgBox "Vous devez sélectionner un fichier"
       Exit sub
    end if

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour (et un salut à tous).
    Il n'est nulle par précisé ce qu'est exactement chemin :
    - une variable ?
    - un contrôle ? et lequel, alors ?
    Car c'est à mon avis, là, que cela "coince" surtout, ce que corrobore d'ailleurs :
    quand je sélectionne un doc et pas le canal, la macro est bien stoppée mais pas l'inverse
    Car si la manière utilisée pour vérifier qu'un article a été sélectionné dans ListC est maladroite et à corriger comme l'a montré Parmi, il n'en reste pas moins vrai qu'elle fonctionne quand même ainsi, elle.

  6. #6
    Membre confirmé
    Femme Profil pro
    Chargée de missions
    Inscrit en
    Janvier 2016
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargée de missions

    Informations forums :
    Inscription : Janvier 2016
    Messages : 73
    Par défaut
    Chemin est une variable, qui me permet d'obtenir le chemin complet du fichier et ainsi demander dans vba d'ouvrir ce fichier.

    Hm je vois, je regarderai ça dans la soirée ou demain. Merci en tout cas !

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

Discussions similaires

  1. [VBA-E] Rafraichir le Userform pendant l'exec d'une macro
    Par amalane dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/04/2020, 15h54
  2. Temps d'éxécution d'une macro
    Par PiliSql dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/05/2008, 21h58
  3. Intercepter un clic dans un userform pendant l'exécution d'une macro
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 05/04/2008, 14h40
  4. message avant l'éxécution de la macro
    Par k-eisti dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/06/2007, 19h14
  5. [Excel] Changer de profil lors de l'éxécution d'une macro
    Par TeetyTweety dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/02/2007, 08h35

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