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 :

Créer executeur en excel


Sujet :

Macros et VBA Excel

  1. #41
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    [...]
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  2. #42
    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
    Sinon pour ouvrir Excel dans une nouvelle instance, je crée simplement une nouvelle application avec CreateObject
    merci Arkham
    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

  3. #43
    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
    Pierre peut rire autant qu'il veut il n'a pas ce resultat la
    Nom : demo.gif
Affichages : 248
Taille : 1,12 Mo
    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

  4. #44
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Patrick,

    Je n'ai pas dit que ta solution ne fonctionnait pas. Je dis qu'elle est absurde, tant sur le plan de l'ergonomie que fonctionnellement.

    Sur le plan de l'ergonomie, personnellement, ça m'enerverait qu'un formulaire soit en permanence en avant plan. Si je choisis de travailler sur une autre appli, ce n'est pas pour garder la tienne en avant plan... Le développeur qui m'impose cela ne me verra jamais travailler avec son appli. C'est à l'utilisateur de décider ce qu'il veut en avant plan, pas au développeur.

    Sur le plan fonctionnel, deux choses:
    Il va falloir gérer cela pour chaque userform?

    Et si une autre appli veut aussi rester tout le temps en avant plan, c est laquelle qui gagne?

    As-tu essayé de faire fonctionner en même temps ton fichier et une copie de ton fichier? Quel est le comportement constaté ?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #45
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Patrick,

    ...
    Sur le plan de l'ergonomie, personnellement, ça m'enerverait qu'un formulaire soit en permanence en avant plan. Si je choisis de travailler sur une autre appli, ce n'est pas pour garder la tienne en avant plan... Le développeur qui m'impose cela ne me verra jamais travailler avec son appli. C'est à l'utilisateur de décider ce qu'il veut en avant plan, pas au développeur.
    Pardi
    Et si une autre appli veut aussi rester tout le temps en avant plan, c est laquelle qui gagne?
    Déjà dit dans une autre discussion pas si ancienne que cela
    Pire : certaines applications (notamment de Microsoft) ne se contentent pas de "prendre" le premier plan; elles sont de surcroît dotées d'un mécanisme tel (par addressof) qu'elles "récupèrent" sans cesse ce premier plan si d'autres s'y mettent.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  6. #46
    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
    As-tu essayé de faire fonctionner en même temps ton fichier et une copie de ton fichier? Quel est le comportement constaté ?
    oui testé
    et je l'ai bien precisé au post 24 en dessous la capture en terme clair que ca ne fonctionnait que pour la 1° instance ouverte
    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

  7. #47
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    CQFD
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #48
    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
    une autre idée m'est venue en lisant une autre discussion tres recente

    ce fichier userform est il utilisé tout seul (click sur licone du fichier ou son raccourci pas trafiqué!! )
    ou est forcement lancé par l'executeur
    ou meme les deux

    je te propose de :
    soit masquer uniquement le classeur si il est pas tout seul dans son instance de l'application
    soit masquer l'application si il est tout seul dans son instance de l'application

    pour cela :
    1°dans le fichier lanceur et dans l'evenement d' un bouton ou autre methode qui te sert a le lancer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim WBK2
    Private Sub CommandButton1_Click()
    set WBK2=Workbooks.Open (Environ("userprofile") & "\DeskTop\fichierZ.xls")
    End Sub
    tu constatera que je ne cré pas de new instance de l'application excel le fichier userform s'ouvre donc dans la meme instance du lanceur

    2°dans le fichier userform et dans l'evenement open du workbook

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Workbook_Open()
    If Workbooks.Count > 1 Then
    Windows(ThisWorkbook.Name).Visible = False
    Else
    Application.Visible = False
    End If
    UserForm1.Show 0
    End Sub
    donc ici
    1. a l'open du classeur si il est tout seul dans son instance l'application sera invisible sinon visible
    2. si il n'est pas tout seul c'est le classeur qui sera invisible


    Dans le userform pour cette demo j'ai ajouté des boutons visible On/Off pour le classeur et l'application pour que tu puisse voir le resultat et réafficher le cas echeant l'un ou l'autre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton1_Click()
    x = Windows(ThisWorkbook.Name).Visible
    If x = True Then x = False Else x = True
    Windows(ThisWorkbook.Name).Visible = x
    End Sub
    Private Sub CommandButton2_Click()
    x = Application.Visible
    If x = True Then x = False Else x = True
    If Workbooks.Count = 1 Then Application.Visible = x
    End Sub
    ca fait en quelque sorte des boutons bascule On/Off pour les visible/invisible et le bouton application visible n'est operant que si le classeur userform est tout seul dans son instance

    dans le terminate du userform ne sachant pas ce que tu fait avec le classeur userform je me suis contenté de fermer le classeur ou l'instance de l'application selon le mode dans le quel il s'est positionné
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub UserForm_Terminate()
    '
    ' ici enregistrement des modifs OU!! pas
    '
    Application.DisplayAlerts = False
    If Workbooks.Count > 1 Then
    ThisWorkbook.Close
    Else
    Application.Quit
    End If
    End Sub
    voila dans n'importe quel cas sans créer d'instance sans shell et tout le toutim tu a ton userform d'afficher sans le classeur

    et si tu voulais eventuellement travailler sur les données du classeur userform a partir du classeur lanceur
    set toi de l'object "WBK2" qui est le classeur la variable est globale dans le module de la feuille ou se trouve le bouton dans cette exemple

    te restera de decider si le first plan du userform est important pour toi OU!! pas
    on peut certainement parfaire le truc mais c'est fonctionnel
    reste a avoir pour les 2d instances mais j'ai trouvéla chose suffisament interessante pour l'expliquer
    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

  9. #49
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Windows(ThisWorkbook.Name).Visible = False
    Ne masque pas Excel mais uniquement la fenêtre de ThisWorkBook. L'application reste visible (ruban, barre d'état, barre de titre, ...).
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #50
    Membre régulier
    Homme Profil pro
    Ingénieur maintenance industriel
    Inscrit en
    Juin 2018
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur maintenance industriel
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2018
    Messages : 185
    Points : 79
    Points
    79
    Par défaut Re - Prise en considération de touts les possibilités
    Bonjour,

    J'ai pris en considération toutes vos remarque et il est vrais qu'il existe des risques à masquer une application surtout si il subviens des problèmes de plantage de l'application.
    Je me base sur l'idées de plusieurs personne et essaye de prendre le meilleur des idées.

    Que penser vous de la démarche suivante :

    Je lance mon exécuteur qui contient dans workbook_Open :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub workbook_open()
    Shell ("excel C:\Users\X2018958\Desktop\Test_executeur\Fichier.xlsm /x")
    Thisworkbook.close
    End Sub
    Mon but ici est qu'il soit invisible pour l'utilisateur, Il se lance, lance le fichier principale et ce ferme. Cependant la fermeture ne s'effectue plus une fois l'autre fichier lancer, je mettrait donc dans l'autre fichier une ligne du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("executeur.xlsm").Activate
    Si vous avez d'autre solution pour que le fichier se ferme correctement de lui même je suis tout ouïl.

    Dans le second fichier je ne souhaite plus donc le rendre invisible afin d'évité les problème cependant j'aimerais le forcer a se minimized.
    avec la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WindowState = xlMinimized
    Cependant quand je fais cela le formulaire ne se lance pas correctement, il se lance mais en tout petit (à cause du minimized je pense) ... Sachant que je l'affiche sur tout l'écrans avec le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With Me 'Met le formulaire en pleine écran
            .StartUpPosition = 3 'le formulaire s'ouvre en plein écrans
            .Width = Application.Width
            .Height = Application.Height
            .Left = 0 'a gauche
            .Top = 0
        End With 'en haut

    une fois que j'aurais la solution pour ses deux petit problème :
    - fermer l'exécuteur proprement même au lancement d'un autre fichier.
    - Lancer l'userform proprement même au minimized de l'application.

    Je souhaiterais forcé le minimized de l'application (ici dans une instance séparé et qui n'affectera pas l'utilisateur).

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If userformactif <>Admin then 
    If Application.WindowState <> minimized Then  Application.WindowState = minimized
    end if
    Dans le formulaire il sera toujours possible d'excéder au ficher.
    J'ai donc un début de solution mais je ne sais pas si il est possible d'avoir l'evenement windowState_Change dans un userform. et je préfère vous demander conseil avant de faire n'importe quoi.

    Cette solution permettrait :
    - D'évité de masqué l'application Excel et donc de créer des moment gênant.
    - De ne pas contraindre l'utilisateur à aller cherche le formulaire derrière les pages il aura juste a cliqué sur Excel.
    - De laisser visible le fichier Excel
    - D'avoir l'ouverture qui n'influence pas les autre application présente.

    Que pensez-vous de cela, cela est-il possible ? Si cela n'est pas possible il y a t'il d'autre idées qui vous passe par la tête.
    Sachant que mon besoin je le rappel :
    - Avoir l'affichage d'un formulaire Excel qui n'influence pas les Excel déjà présent,
    - Que l'utilisateur ne soit pas contraint dans le placement de ses fenêtres,
    - Que l'accès au fichier Excel ne soit pas possible, et que ses informations ne soit pas disponible.(d'où l'accès administrateur)

    Je tiens à vous remercier tous autant que vous êtes pour vos remarques vos conseils et vos solutions. Je suis encore en apprentissage de codage et reste à l'écoute de vos conseils.

    Cordialement,
    Passepartout007

  11. #51
    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
    voici une autre methode
    un executeur un fichier userform
    dans l'executeur
    2 boutons
    1. lancer le fichier dans une autre instance(option1)
    2. lancer le fichier dans la meme instance(option2)


    dans le fichier userform quand il est affiché

    option(1):
    soit il est lancé dans une autre instance et la c'est son instance d excel qui est masquée en la cachant derriere le userform
    dans l'evenement layout du userform je fait suivre l'application a fin qu'elle reste toujours derriere

    option(2):
    soit il été lancé dans la meme instance de excel et la on masque le window du classeur

    si tu le lance par dblclick dessus il appliquera la regle
    si il est tout seul app masquée sinon window du classeur masquée
    Fichiers attachés Fichiers attachés
    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

Discussions similaires

  1. Créer un fichier excel
    Par Leimi dans le forum Access
    Réponses: 15
    Dernier message: 01/06/2006, 16h45
  2. [VB6]créer un fichier excel
    Par arakna dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 24/02/2006, 15h09
  3. [VBA-E]créer un tableau Excel en vba
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 19/01/2006, 16h06
  4. Créer un graph Excel à partir d'un fichier
    Par kult dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/11/2005, 14h06
  5. Réponses: 3
    Dernier message: 25/07/2005, 09h40

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