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 :

GUI sous VBA Excel ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 26
    Par défaut GUI sous VBA Excel ?
    Bonjour,

    Je réalise actuellement un projet sur des types de moteurs d'avions, et je souhaite créer une interface utilisateur pour simplifier le projet. Sur la partie gauche de cette interface, je placerais différents Pushbutton pour sélectionner un type de moteur, ce qui modifierait alors la partie droite de l'interface où d'autres Pushbutton s'afficheraient pour lancer un document (PDF ou XLS), par exemple un cahier des charges, ou un schéma, correspondant au type de moteur choisi.

    Je me pose quelques questions concernant le logiciel que je devrais utiliser... Excel (VBE) ?

    1. Après avoir lu pas mal de documentations sur VBE, je me demande s'il est possible de réaliser cette interface "facilement"... Est-il possible qu'au lancement d'un fichier Excel, cette interface s'affiche directement ?
    2. Est-il possible de faire une interface dynamique ? Ici, le fait d'appuyer sur un pushbutton modifierait directement l'interface (apparition d'autres pushbutton...).
    3. Est-il possible de lancer des fichiers XLS ou PDF à partir de VBE ?

    Ou Matlab ?

    4. Ayant déjà codé des GUI (Graphical User Interface) sous Matlab, je sais qu'il est facile de les écrire, mais je sais pas si Matlab peut gérer l'ouverture des fichiers XLS et/ou PDF ?

    5. Avez-vous une recommandation, puisqu'en réalité Matlab n'est pas vraiment adapté à ce type de GUI ?


    Je vous remercie d'avance pour m'aider à choisir !
    (Je suis novice pour coder en VBE)

  2. #2
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Je dirais aussi que tout dépend de tes connaissances.
    C'est tout à fait possible avec VBA. D'ailleurs plutôt que de gérer dynamiquement les contrôles, tu pourrais créer toutes les pages dans des frames et les afficher en fonction du bouton cliqué. Il y a aussi le contrôle Multipage qui pourrait t'aider.
    Tu aurais plus de possibilités en faisant du .Net ou du Java, mais c'est moins accessible si tu n'es pas habitué à programmer.

  3. #3
    Membre éclairé Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Par défaut
    Salut,

    Je rejoins le point de vue de Zebreloup, avec la propriété visible, tu peux très facilement faire des USF dynamique. Et honnêtement, le VBA c'est très simple pour l'utilisation que tu veux en faire.

    PS: quand j'écris Zebreloup, le correcteur orthographique me propose breloque, comme quoi, il n'y a pas de coïncidence

  4. #4
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Si des calculs complexes ou couteux doivent tourner en arrière plan de cette interface, je dirais MATLAB

    Sinon VBA fera très bien l'affaire surtout si tu récupères tes données de fichiers Excel.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 26
    Par défaut
    Je suis assez à l'aise avec Matlab, vu que je l'ai déjà fait mais en plus avec plusieurs parties destinées à des calculs assez longs. C'était d'ailleurs la raison pour laquelle j'avais choisi Matlab, vu qu'Excel était trop long pour gérer de longs calculs et des courbes derrière.

    Ici je n'ai aucun calcul, mais j'ai bien aimé l'utilisation de Matlab, je trouve que c'est plus simple que VBE d'ailleurs (pas de variable à déclarer, pas de propriété, méthode, procédures...).

    Je vais me pencher sur vos tutos VBE alors, et voir ce que je peux tirer de vos remarques en fonction de ma compréhension.

    Merci pour ces conseils, je repasserai très certainement...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 26
    Par défaut
    Re-bonjour,

    J'ai finalement bien avancé en VBA sur Excel, un beau petit UserForm. Il est réalisé en 3 parties :
    • Un petit bandeau en haut avec titre, date, et jour
    • Une partie à gauche (un Frame) avec des pushbuttons, qui influent sur la partie droite
    • Une partie à droite (un deuxième Frame) avec d'autres pushbuttons, qui peuvent lancer des fichiers


    A droite, j'étais parti sur des Frames à faire apparaître/disparaître en fonction des touches activées sur le Frame de gauche, mais comme il aurait fallu entasser chaque Frame à droite, ça aurait été un peu bordélique...
    Donc, je cache/affiche les pushbuttons de droite en fonction des pushbuttons activés à gauche.

    MAIS, et oui, j'ai un petit problème pour ouvrir mes fichiers XLS, j'ai écrit ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
    
    Sub OuvrirDoc()
        Dim myworkbook As Workbook
        Set myworkbook = Workbooks.Open(fichier)
        myworkbook.Activate
        GUI1_General.Hide 'pour cacher le USF principal
        GUI3_Menu.Show 'pour faire apparaître un petit USF en haut à gauche de l'écran, uniquement composé de la touche "RETOUR", pour refaire apparaître le USF principal
    End Sub
    En fait un pushbutton appelle cette "fonction" OuvrirDoc. Le document s'ouvre alors correctement mais je ne peux pas y toucher, je ne peux rien modifier dessus. Pourriez-vous me dire pourquoi ?

    Je sèche, même avec l'aide de Microsoft (qui est bien moins claire que vos tutoriaux...).

  7. #7
    Membre éclairé Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Par défaut
    Salut,

    As tu essayé d'ouvrir le .xml sans passer par ta macro. Ce n'est peut-être pas ta macro qui ne marche pas mais le fichier qui est juste en lecture.
    Le classeur ou la feuille peuvent également être protéger.

  8. #8
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 181
    Par défaut
    Bonjour à tous,

    A essayer :
    Dans les propriétés de l'UserForm, mettre la ShowModal à False.

    Cordialement

  9. #9
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Oui ça doit être parce que tu es en affichage modal => tu n'as plus accès aux feuilles de calcul. Plus de détails ici
    Du coup essaies ceci:Bon courage pour la suite de ton appli

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 26
    Par défaut
    Merci bien !

    C'était effectivement ce petit "False" pour éviter d'être en affichage modal !

    Je peux continuer ma route sur VBA !

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 26
    Par défaut
    Bonjour,

    J'ai réussi à réaliser mon interface, merci pour vos aides, et maintenant j'ai quelques questions concernant la mise en place d'un filtre modifiable facilement, dans Excel.

    Je vais prendre l'exemple de deux recettes de cuisine pour faire comprendre mon objectif, mais bon je pense que vous savez répondre à ma question à la fin sans lire l'exemple.

    Les deux recettes sont :
    - quiche
    - gateau

    Colonne A : je souhaite mettre tous les ingrédients de ces deux recettes
    Colonne B : une colonne masquée qui contient une checkbox pour chaque ligne, donc pour chaque ingrédient nécessaire pour la quiche
    Colonne C : pareil mais pour les gateaux
    Colonne D : des commentaires, ou autres... etc.

    Ainsi, j'aimerais créer des pushbuttons sur Excel utilisant un filtre grâce aux checkbox : "Quiche" et "Gateau". Ils cacheraient automatiquement les lignes qui ne concernent pas la recette choisie si la checkbox n'est pas cochée. Et l'utilisateur pourrait utiliser un troisième pushbutton qui afficherait les colonnes B et C de checkbox, ce qui permettrait de modifier la recette et d'ajouter des ingrédients.
    Question
    Est-il possible d'associer une checkbox à une case, pour pouvoir reconnaître si les ligne/colonne correspondantes sont à garder ou pas ? Il faudrait que je puisse récupérer la ligne et la colonne dans VBA, est-ce faisable ?

  12. #12
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 46
    Par défaut
    Tu peux lier une checkbox à une case via la propriété linkedcell de la checkbox

    Sinon en VBA tu peux récupérer la ligne de la cellule dans laquelle est ta checkbox via une ligne de code de ce type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LigneCase = ActiveSheet.Shapes("Nom de ta checkbox).TopLeftCell.Row
    Bonne continuation

    Guillaume

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 26
    Par défaut
    Merci bien, c'était bien ça. Et finalement, avec un peu de recherches approfondies, j'ai pu trouver quelques sujets déjà traités pour créer des checkboxes, j'ai pu créer un code tout propre.

    Et pourtant je ne l'utilise pas finalement... la mise en forme conditionnelle est quand même plus pratique, avec "Y" ou un "N" inséré...
    Tout ça dans le but de pouvoir filtrer les lignes en fonction de la lettre "Y" ou "N" tappée.

    Autre question
    J'utilise beaucoup les commentaires, pour éviter de faire trop de colonnes, et ceux-ci se déforment souvent. Je les retrouve totalement fermés, ou alors on ne voit plus qu'un mot au lieu de 2-3 lignes, etc.
    Je n'ai rien trouvé sur une macro qui permettrait de remettre en forme les commentaires ; une macro qui adapterait la taille des commentaires directement en fonction du texte compris dans la bulle. Pensez-vous que cela est possible ?

Discussions similaires

  1. passage de parametre sous VBA excel
    Par raka200 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 21/12/2007, 11h07
  2. transformé cellule sous vba excel
    Par axamen dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/06/2007, 15h03
  3. [VBA-E] Comment créer un tableau sous vba excel
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/01/2007, 09h52
  4. Arc de cercle sous VBA excel?
    Par fredieuric dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/11/2006, 13h58
  5. ptit probleme combobox sous vba/excel
    Par bandito dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/10/2006, 09h34

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