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 :

Ouvrir un userform en exécutant Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 27
    Points : 21
    Points
    21
    Par défaut Ouvrir un userform en exécutant Excel
    Bonjour à tous,

    J'ai réussi à trouver sur le site des infos concernant des macros à exécuter à l'ouverture d'excel (sur l'évenement workbook_open) mais je n'arrive pas à l'adapter à mon cas.

    Je souhaiterai, dès l'ouverture de mon fichier Excel, que l'utilisateur ait accès à mon interface VB sans même pouvoir se rendre sur le fichier Excel.

    Merci par avance de votre aide

  2. #2
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    ouverture d'un usf :

    le cacher

    le charger
    le décharger
    un tutorial très bien fait ici

    edit1 : et sinon, cf le post de Krovax ci-dessous
    edit2 : bonjour, et un affichage plein ecran, aussi peut être, why not ?

  3. #3
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Bonjour
    Ton interface Vb tu parle d'un userform non?
    Essaye ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Workbook_Open()
    Application.Visible = False
    UserForm3.Show vbModal
    end sub
    Débrouille toi pour mettre ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Visible = True 'rend excel visible
    a la fermeture de ton userform, pour rendre excel visible

    Edit : Bonjour aalex s'est croisé je pense que masquer excel est plus amusant et surtout plus proche de ce qu'il voulait faire

  4. #4
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    Bonjour,

    Attention toutefois avec application.visible = false, je pense que ça demande (comme faire joujou avec les barres d’outils de l’utilisateur) une bonne maîtrise de ce qu’on fait

    - Si l’utilisateur a d’autres classeurs ouverts au lancement, il va être content.
    - Si ça plante (la stabilité est bien plus sensible), il va chercher à relancer, on va lui dire que le fichier ne peut s’ouvrir qu’en lecture seule vu qu’il est toujours ouvert dans l’instance cachée (s’il ne sait pas manier les processus, bon courage).
    - Si c’est mal fermé, les instances vont s’empiler.
    - Si pas de cession visible et que l'utilisateur double clic sur un fichier Excel, l'instance cachée va remonter à la surface ou bloquer le fichier lancé....

    Bref à mon sens ça demande d’utiliser un lanceur et d’ouvrir le classeur dans une instance (non visible) crée pour en mettant les filtres nécessaires pour vérifier si le classeur n’est pas déjà ouvert etc… etc…
    Intéressant dans des applis pro genre BDD pilotées entièrement en USF, mais trop lourd pour des choses plus légères ou si on n’en maîtrise pas assez toutes les implications surtout que ça n’apporte pas beaucoup plus de « protection » que d’habitude si c’est l’effet recherché...

    Ça dépend du niveau où est rendu Shanod…

    Cordialement,

    Didier

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Merci pour vos réponses

    Concernant l'ouverture automatique de mon interface, cela fonctionne parfaitement. Au passage, que signifie vbModal ?

    Pour la partie "Rendre inaccessible le fichier Excel à mon utilisateur", ça répond en partie à mes besoins.
    Cependant, comme le suggère Ormonth, ça ne va pas forcément plaire à mes utilisateurs que je cache leurs autres classeurs.

    N'est-il pas possible de cacher uniquement mon classeur ?

    Comme je demande une saisie de plusieurs données au sein de mon interface, les utilisateurs risquent justement de faire appel à un autre fichier Excel pour y faire des copier/coller...

    Cela me fait penser à une autre problématique : par quels moyens pourrais-je, en quittant mon interface (via un bouton), sauvegarder mon fichier Excel ?

    Je vois qu'il existe : Application.SaveWorkspace

    Mais si nous n'avons pas la possibilité de différencier les classeurs et que nous sommes contraints d'utiliser des évènements sur l'objet Application, c'est un vrai problème, je n'ai pas envie que soit sauvegardés tous les classeurs ouverts de mes utilisateurs.

  6. #6
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    Bonjour,

    Shanod, vu les questions que tu poses, je ne m‘attaquerai pas à ta place à un projet en instance cachée pour le moment. Trop complexe dans ce que ça entraîne, même si la chose demande au départ une seule ligne de code

    N'est-il pas possible de cacher uniquement mon classeur ?
    Si la réponse était ci-dessus, il faut l’ouvrir dans une instance spécifique, par contre pour gérer les copier-coller d’autres classeurs sur une autre instance, tu auras du boulot… Ce choix entraîne que tu doives tout piloter au travers de divers USF construits pour….

    Mieux vaut aborder ton problème par le départ : à quelles fins veux-tu cacher ton fichier Excel ?

    Si c’est simplement pour éviter que les utilisateurs ne mettent le souk dans sa structure et ses données, partir sur un projet ou ton classeur serait protégé contre les interventions manuelles et même la visualisation en mettant une première page/ onglet en fond blanc avec ton logo serait tout à fait suffisant. Ça représentera déjà du boulot, mais plus accessible pas à pas pour débuter…

    Cela me fait penser à une autre problématique : par quels moyens pourrais-je, en quittant mon interface (via un bouton), sauvegarder mon fichier Excel ?
    Vois dans l'aide à save (méthode) et aux évènements de ThisWorkbook, notamment BeforeClose

    cordialement,

    Didier

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Bien bien...

    J'ai pris l'option de mettre effectivement un logo sur un nouvel onglet et de cacher les autres à l'ouverture de mon Excel.

    A tout hasard, peut-on éviter l'affichage de la pop-up de demande d'activation des macros au démarrage (en forcant : "activer les macros", bien sur) ?

    Merci pour l'évènement BeforeClose, j'ai réussi à sauvegarder automatiquement mes données.
    J'aurai bien aimé fermer mon Excel par la suite, mais mon Me.Close a la fin de ma procédure BeforeClose n'a pas l'air de fonctionner.

    Question triviale, après je clos le sujet car ça ne traite pas des mêmes points.

    Est-il possible d'extraire les données de cellules d'un fichier Excel à un autre ?

    Pour situer le contexte, mes utilisateurs vont remplir un tas de formulaires et je devrai récupérer les infos de chaque pour les stocker dans un autre fichier Excel de suivi)

  8. #8
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    Bonjour,

    A tout hasard, peut-on éviter l'affichage de la pop-up de demande d'activation des macros au démarrage (en forcant : "activer les macros", bien sur) ?
    tout est là :

    http://excel.developpez.com/faq/?page=VBA#SelfCert


    Est-il possible d'extraire les données de cellules d'un fichier Excel à un autre ?

    Oui, il suffit d'être "Explicite", c'est à dire de bien dire au code le nom du fichier, la feuille ,les données concernées et savoir avant si le classeur voulu est déjà ouvert ou non (on peut facilement lire dans un classeur fermé sinon).

    Cherches sur le forum, il y a plein de réponses à ce sujet et si tu butes, ouvres un nouveau fil avec un contexte précis


    cordialement,

    Didier

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    J'aimerais rebondir sur le problème d'instance spécifique..je m'explique:

    J'ai un userform sous excel dont je me sers en permanence durant ma journée.
    Je dois donc fermer mon USF à chaque fois que je souhaite ouvrir un autre classeur Excel, notamment depuis ma boite email Lotus, lorsqu'on m'envoie des pièces jointes.

    Comment puis-je faire pour, si possible, contourner ce problème?

    Merci par avance!!!

    Bastien

  10. #10
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    Bonjour,

    Par défaut, un classeur Excel s’ouvre dans l’instance active d’Excel (par double-clic ou autre), donc il te suffit d’avoir une autre instance d’Excel ouverte (il suffit d’ouvrir Excel une seconde fois) et de veiller à ce que ce soit celle-là qui est soit active au moment des ouvertures voulues. Ce sera toujours elle qui réagira. Ça demande d’y penser à chaque fois, mais évite de rentrer dans les choses compliquées => Si tu en as une cachée, c’est celle visible qui est par défaut active, s’il n’y en a pas l’action d’ouverture d’un nouveau fichier ferait remonter l’instance cachée à la surface ou gèlerai le classeur lancé derrière selon les paramétrages.

    cordialement,

    Ps : comme le fil était tagué "Résolu", si d'autres questions, ouvre un nouveau fil avec l'équivalent de ton post précédent en faisant si besoin allusion à celui-ci avec la balise liens

    Didier

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

Discussions similaires

  1. Ouvrir un userform (excell) dans un form
    Par CAPRI_456 dans le forum VBA Access
    Réponses: 8
    Dernier message: 08/01/2008, 19h01
  2. [VBA-E] Ouvrir un UserForm au lancement du fichier Excel
    Par gantec dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/02/2007, 14h37
  3. [VBA-E] Ouvrir un Userform à l'ouverture du fichier excel
    Par dimitrios dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/12/2006, 16h35
  4. Ouvrire ou Enregistrer un Fichier Excel
    Par jo281 dans le forum ASP
    Réponses: 1
    Dernier message: 13/12/2005, 18h55
  5. [CR7][Word] Ouvrir un fichier Word ou excel avec CR
    Par yoyothebest dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 23/04/2005, 19h47

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