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 :

[Excel 2007] Eviter l'utilisation de boutons pour l'exécution d'un code shell


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 22
    Points : 27
    Points
    27
    Par défaut [Excel 2007] Eviter l'utilisation de boutons pour l'exécution d'un code shell
    Bonjour à tous, j'ai créé récemment en python un outil d’exécution automatique de DML (SQL) basés sur une structure de dossier pré-déterminée.

    La tâche qui m'incombe actuellement consiste à ajouter à notre fichier Excel de suivi des DML, chaque row du fichier contient un descriptif, un lien vers le dossier DML associé, ainsi que des colonnes représentant dans quel environnement le groupe de DML a été exécuté.

    DML-No Description Dev Test ..
    DML-001 Blablabla date date ..
    DML-002 Blablabla date date ..

    J'ai actuellement créé une colonne "Execute" à la suite de chaque environnement, et ma première idée consistait à avoir un bouton par env/row, sachant que actuellement, j'ai prévu 200 rows, et qu'il y a 5 environnement, je me retrouverais avec 1000 boutons sur ma feuille excel, ce qui je pense serait une catastrophe en terme de performances.

    Voici le bout de code actuel: (Sachant que la même macro serait appelée par tous les boutons)

    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
     
    Sub Execute_Click()
        ' Get the row, col of the button
        RowNo = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
        ColNo = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Column
     
        Num = Right(ActiveSheet.Cells(RowNo, 2), 3)
        Env = Left(ActiveSheet.Cells(1, ColNo - 1), 1)
     
        Select Case MsgBox("Do you want to execute DML-" & Num & " in environment " & Env, vbYesNo, "Are you really sure?")
        Case vbYes
                ' Execute program
                ID = Shell("python path\monCode.py -e " & Env & " -n " & Num)
        End Select
    End Sub
    Ma question est la suivante, comment éviter l'utilisation de tous ces boutons, tout en permettant à l'utilisateur d'avoir une vision simple de ce qu'il exécute et d'éviter toute opération complexe à réaliser, je préfèrerais rester sur du "one click".

    Avez-vous une idée?
    D'avance merci

  2. #2
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Salut

    Personnellement je passerais par un UserForm
    J'y chargerais les infos ds une boite list ou combo box

    et j'y mettrais un bouton qui exécutera ce qui est sélectionner ds la liste

    Tu as plein de tutos très bien fait ici, je m'en sert régulièrement

    va voir

    à bientôt
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  3. #3
    Membre chevronné
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 036
    Points : 1 917
    Points
    1 917
    Billets dans le blog
    5
    Par défaut
    Bonsoir,
    Un contrôle activeX ListBox peut servir je crois à simplifier les choses.
    En jouant sur les propriétés ListStyle à fmListStyleOption et MultiSelect à fmMultiSelectSingle.
    Ousmane


    Quand on tombe dans l'eau, la pluie ne fait plus peur.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 22
    Points : 27
    Points
    27
    Par défaut
    merci à vous deux, je vais jeter un oeil a ces solutions et revenir vers vous. A bientôt ! x)

  5. #5
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Salut un lien hypertext
    avec l'événement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
     
    End Sub

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/05/2014, 07h51
  2. Utiliser un bouton pour arrêter et reprendre un processus
    Par Frank1010 dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 29/10/2012, 11h13
  3. Réponses: 0
    Dernier message: 10/12/2008, 16h44
  4. creation d'un bouton pour excel 2007
    Par AnozerOne dans le forum Excel
    Réponses: 2
    Dernier message: 06/07/2007, 15h55
  5. Réponses: 4
    Dernier message: 12/09/2005, 19h23

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