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 :

Associer les propriétés d'un workbook sans passer par la méthode open


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 156
    Points : 102
    Points
    102
    Par défaut Associer les propriétés d'un workbook sans passer par la méthode open
    Bonjour le forum,

    Je m'excuse d'avance car ma question est en lien avec un problème que j'ai posé hier (ici). Je pensais avoir la solution ma manifestement non :/

    L'idée est d'ouvrir un fichier Excel (un workbook) via une macro et de bloquer les UserForm d'accueil. Et ce, en désactivant les évènements. Ma question est dans le titre:

    "Comment associer les propriétés du WorkBook que je souhaite ouvrir, sans passer par la méthode open"... Donc si je n'ai pas su m'exprimer clairement, je vous montre ce que j'ai déjà testé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set Cls = Workbooks.Open(TextBoxFichierSygma.Text, 2)
        Cls.Application.EnableEvents = False
    Ceci n'a pas fonctionné car la désactivation des évènements se fait "trop tard".

    Donc j'ai essayé ceci codes aussi, qui ne fonctionne pas car il est incorrect (mais pour illustré ce que je cherche c'est le mieux):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Set Cls = Workbook(TextBoxFichierSygma.Text, 2)
        Cls.Application.EnableEvents = False
        Worbooks.Open(Cls,2)
    Merci pour votre aide !

  2. #2
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Il convient, normalement, de désactiver les événements, de l'application, avant l'ouverture du classeur.
    Le but étant de ne pas déclencher l'événement Open de Workbook.

    Donc, essaie simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Application.EnableEvents = False
    Set Cls = Workbooks.Open(TextBoxFichierSygma.Text, 2)
    'ici ton code de destruction des userforms
    Application.EnableEvents = True
    Cordialement,
    Franck

  3. #3
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    ce n'est pas à l'objet Workbook que tu rattaches la désactivation des évènements. c'est à l'application Excel.
    tu désactives les évènements de ton instance Excel .. ce qui va neutraliser les évènements de tous les classeurs ouverts sur cette instance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.EnableEvents = False
    comme je l'avais souligné dans l'autre sujet :

    Citation Envoyé par joe.levrai Voir le message
    Bonjour,

    le Userform est chargé via un évènement ? (Workbook_Open je présume)

    regarde si ça répond à ton besoin
    juste avant d'ouvrir le fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.EnableEvents = False
    à remettre à True après fermeture du fichier
    ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Application.EnableEvents = False
    Set Cls = Workbook(TextBoxFichierSygma.Text, 2)
    'Traitement dans le fichier
    Cls.Close False ' ou TRUE si tu veux l'enregistrer
    Application.EnableEvents = True

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu
    Bonjour

    moi je dis que ce genre de chose peut etre prevu avant
    dans le open du classeur ou tu load ton userform tu aurais pu mettre ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Application.Workbooks.Count = 1 Then
    mouserform.Show 0
    end if
    ce qui implique que si ce classeur est ouvert par workbooks.open le userform ne devrait pas être loadé
    si le classeur est ouvert par son raccourci(dans le folder, en cliquant dessus ) il s'ouvre donc dans une autre instance de l'application Excel donc le userform est loadé)même si il y a d'autre instance de l'application a partir du moment ou il n'est pas ouvert dans l'instance de l'application d'un autre fichier

    j'dis ca j'dis rien moi

    le choses sont simples parfois plus que l'on croit
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 156
    Points : 102
    Points
    102
    Par défaut
    Re,

    Merci à toi, ça marche au poil comme tu t'en doutes. Et de fait c'était bien pour bloquer les événements "Workbook_Open".

    Et merci pour ta patience, j'ai tout appris sur le tas donc je sens bien que j'ai pas mal de lacune théoriques de base :p

    Bonne journée

  6. #6
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    T'inquiète pas, on sait ce que c'est.

    moi aussi j'ai appris sur le tas, grâce à trois choses :

    - l'enregistreur de macro : ma première a été d'enregistrer un changement de cellule pour voir comment ça se passait ! (c'est dire d'où je suis parti)
    - ce super forum, avec ses tutos, faq, et contributeurs didactiques (que je suis devenu petit à petit)
    - de la motivation, et beaucoup de sueur !

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    attention quand même avec cette fonction le enable events bloque tout donc si tu a des formules ca risque de coincer

    la proposition que je t'ai fait n'agit que sur le classeur userform
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Patrick


    j'ajoute une quatrième "chose" à mon apprentissage excel :

    - une remise en question quotidienne via les critiques constructives qu'on peut recevoir sur les propositions d'aides qu'on fourni sur ce forum

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 156
    Points : 102
    Points
    102
    Par défaut
    Faut avouer, sans vouloir faire du frotti, que ce forum est vraiment bien fait !


    Joe, je deviendrai peut-être toi à ton tour dans quelques années

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    salut joe moi aussi j'en apprends tout les jours
    disons que ta méthode est la méthode classique

    mais quand je développe une app utilisant plusieurs classeurs je prends ca en compte et donc je prévois
    comme ca je n'ai pas a mettre de condition au cas ou je voudrais que mes formules par exemple se mettent a jours mais pas l' affichage du userform
    ca fait parti de mes combines
    en mettant cette condition seul la question du userform est traité sans modifier le fonctionnement normal du fichier

    et l'avantage de faire comme ca ne change rien au fonctionnement classique du fichier
    si il est tout seul le userform s'affiche comme si la condition n'y était pas
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. Chargement de fichiers sans passer par la méthode POST
    Par arthur.moreau dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 20/06/2014, 14h13
  2. Réponses: 14
    Dernier message: 25/11/2007, 18h32
  3. Réponses: 16
    Dernier message: 06/06/2007, 12h42
  4. Réponses: 10
    Dernier message: 24/02/2004, 12h28
  5. Afficher une image sans passer par les textures
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/05/2003, 19h13

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