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 :

question d'un debutant en VBA (decoupage de code en VBA)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    rien
    Inscrit en
    Juin 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Juin 2015
    Messages : 46
    Par défaut question d'un debutant en VBA (decoupage de code en VBA)
    Bonjour,

    J'ai un traitement a faire dans excel. je me suis donc tourné vers l'éditeur visual basic intégré au excel.
    Je souhaiterais faire quelque chose de propre. Je me demandais si il était possible (et si oui comment) de découper le code VBA en plusieurs "feuille" comme on le ferais en C ou d'autre langage.

    J'ai appris par moi même plusieurs language en lisant des sites et dans des livres. Je n'ai jamais pu vraiment échanger avec un "vrai programmeur". j'aimerais pouvoir discuter avec quelqu'un qui a de bonne connaissance dans la matière. notamment sur "comment structurer son code". Si possible par skype. c'est tellement plus facile de ce faire comprendre par la voix.

    Pour ce qui est de mon projet,

    Je reçois une feuille excel d'un client avec tout un tas de donnée.
    Je dois les vérifie (erreur de saisie), ajouter des colonnes, et mettre le tout en forme pour pouvoir importer ces données dans un autre logiciel.

    Si vous pensez avoir un peu de temps pour discuter. je vous en serais reconnaissant.

    merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Le but du forum est de partager ici afin que les personnes pouvant être intéressées puisse en profiter.
    J'ai appris par moi même plusieurs language en lisant des sites et dans des livres.
    Comme beaucoup d'entre nous
    Je reçois une feuille excel d'un client avec tout un tas de donnée.
    Je dois les vérifie (erreur de saisie), ajouter des colonnes, et mettre le tout en forme pour pouvoir importer ces données dans un autre logiciel.
    Je souhaiterais faire quelque chose de propre. Je me demandais si il était possible (et si oui comment) de découper le code VBA en plusieurs "feuille" comme on le ferais en C ou d'autre langage.
    Je ne connais pas le langage C mais tu peux structurer ton programme en différents morceaux comme par exemple une procédure ou fonction de contrôle de saisie pour les valeurs texte en passant par exemple une plage en argument si tu as une ou des colonnes avec du texte, de même pour les dates et les nombres etc...
    Tu peux faire une procédure de création de colonnes, une procédure de mise en forme et une procédure d'export et toutes ces procédures et fonctions appelées par une procédure principale.

    Hervé.

  3. #3
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    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 037
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Thomas_C_Moi Voir le message
    Bonjour,
    ... Je me demandais si il était possible (et si oui comment) de découper le code VBA en plusieurs "feuille" comme on le ferais en C ou d'autre langage
    Bien sûr que c'est possible d'avoir plusieurs feuilles <module> de code. Il suffit d'ajouter un module, lui donner le nom que tu veux dans le volet de propriétés en respectant les conventions de nom.

    Pour l'autre souhait, je ne suis pas fan des discussions à vive voix.

  4. #4

  5. #5
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    Bonjour Thomas,
    Difficile pour Skype, la journée c'est boulot et le soir famille et puis je ne suis pas assez expert

    Sinon quelques infos:

    Tu peux créer plusieurs "feuilles" en Vba, on les appelle Modules
    Dans chaque module tu peux créer plusieurs procédures qui seront appelées depuis une autre procédure ou depuis une "interface" tels que les boutons, une saisie particulières dans une zone de liste ou autre éléments de la boite à outils.
    Tu peux également créer des fenêtres personnalisées qui apparaîtront sur commande, dans l'exemple ci-dessous j'ai créé un UserForm nommé "Equipment_Edit" sur lequel j'ai ajouté une zone de liste "ComboBox" et un bouton.

    Nom : Elément VBA.jpg
Affichages : 461
Taille : 96,0 Ko

    Pour ce qui est du code en lui même, tous les experts du site te recommanderons d'ajouter en première ligne de chaque module la ligne suivante:

    Cette commande permettra de repérer très facilement toute erreur de syntaxe dans les variables que tu aura définies ou tout oubli lors de l’exécution du code, en pas à pas ou en auto.

    Par exemple si tu oublis de définir une variable ou si tu défini une variable comme suit:

    et que dans ton code tu écris:

    tu auras l'erreur suivante :
    Erreur de compilation : Variable non définie
    Cette ligne t'impose donc à définir toutes tes variables

    Dernier conseil, pour que ton code soit lisible et facilement "débuggable" il est recommandé d'indenter tes lignes comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    For i = 2 To NbLigne 'Pour chaque tronçon
        For j = 1 To 4
            If Tr.Offset(i, j) <> "" Then
                If Tr.Offset(0, j) Like "*km*" Then
                    Tr.Offset(i, 7) = Tr.Offset(i, 7) + (Tr.Offset(i, j) * Tr.Offset(1, j) / 1000) ' Calcul en minutes pour des données en km
                Else
                    Tr.Offset(i, 7) = Tr.Offset(i, 7) + (Tr.Offset(i, j) * Tr.Offset(1, j)) 'Calcul en minutes pour les Folios par exemple
                End If
            End If
        Next j
    Next i
    Voilà quelques infos, je ne doute pas que d'autres membres te contacteront pour d'autres astuces ou t'aiguiller vers des sites intéressants.

    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  6. #6
    Invité
    Invité(e)
    Par défaut
    moi j'ais rien compris à la vie je suis sur fesse de bouc!


    Ceci dit l'analyse c'est pas du code,le code vient après, c'est un résonnent; c'est comme pour le langage c,tu fais ton analyse pareil.

    Le reste c'est de la syntaxe!
    Dernière modification par Invité ; 17/06/2015 à 18h24.

  7. #7
    Membre averti
    Homme Profil pro
    rien
    Inscrit en
    Juin 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Juin 2015
    Messages : 46
    Par défaut
    Merci a tous pour vos réponses.

    J'ai tout même encore une question.

    Y a t'il quelque chose a faire de particulier pour appeler une procédure qui serais dans un module1 depuis une procédure ce trouvant dans un module2 ?

    Ou cela ce passe t'il comme si tout était dans le même module ?

    Si j'ai bien compris, il serait conseillé de créer un module pour chaque partie de mon programme.
    j'aurais donc :
    un module "Main"
    un module "ouverture de fichier"
    un module "verification des erreurs"
    un module "je fais du café"
    ...

    dans chaque module j'aurais les différentes procédures nécessaire à la réalisation de chaque étape.

    dernier petit point (je pourrais le trouver par moi même mais j'en profite pour tout rassembler ici).
    Y a-t-il une porté spécifique pour des variables à un module ?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Oui les variables public sont vue de partout dans la mesure oui il ne sont pas dans un classe, elle sont interdites dans une sub ou une function.

    Je te suggère de les définir dans un module séparément du est que tu appel VariablesPublics.

    Tu peux avoir besoin de procédures ou de fonctions util dans tout ton projet,pareil un module FonctionsGlobale

    La porté des variables, là où elles se trouvent, dans un d'un la portée de la sub etc...

  9. #9
    Membre averti
    Homme Profil pro
    rien
    Inscrit en
    Juin 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Juin 2015
    Messages : 46
    Par défaut
    euu je crois que tu as écris un peu vite tu as du oublié des mots je pige rien du tout ^^

Discussions similaires

  1. recherche debut de ligne dans fichier texte en vba
    Par Mimosa777 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/07/2008, 17h27
  2. Question d un debutant en SQLEXP2005
    Par libremax dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/03/2008, 15h52
  3. [Slackware 12.0] Quelque questions d'un débutant
    Par olivierf66 dans le forum Autres
    Réponses: 15
    Dernier message: 15/12/2007, 15h06
  4. Question sur SDL_FreeSurface (debutant)
    Par coyotte507 dans le forum SDL
    Réponses: 1
    Dernier message: 13/12/2006, 14h31
  5. Nouveau, présentation et question pour bien débuter
    Par chichicratsok dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 19/03/2006, 17h11

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