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 :

Explications de cette macro simple


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 116
    Par défaut Explications de cette macro simple
    Bonjour a tous ,

    Voila j’aimerai bien comprendre cette macro car je devrais effectuer des modification .
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    Public Sub DataExport(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18)
     
    '-Data export-----------------------------------------------------------------------------------------------
    'Export of order quantity
    ActiveWorkbook.Worksheets("Results").Cells(7, v0).Value = v1 'quantity
     
    'Export of process type
    ActiveWorkbook.Worksheets("Results").Cells(8, v0).Value = v2 'nameprocess
     
    ''Export of toling type
    ActiveWorkbook.Worksheets("Results").Cells(9, v0).Value = v3 'nametooling
     
    'Export of delivery type
    ActiveWorkbook.Worksheets("Results").Cells(10, v0).Value = v4 'namedelivery
     
    'Export of studies price
    ActiveWorkbook.Worksheets("Results").Cells(11, v0).Value = v5 'pricestudies
     
    'Export of fixtures price
    ActiveWorkbook.Worksheets("Results").Cells(12, v0).Value = v6 'pricefixtures
     
    'Export of number of packaging boxes
    ActiveWorkbook.Worksheets("Results").Cells(13, v0).Value = v7 'packagequantity
     
    'Export of price of packaging boxes
    ActiveWorkbook.Worksheets("Results").Cells(14, v0).Value = v17 'packagequantity
     
    'Export of transport price of packaging boxes
    ActiveWorkbook.Worksheets("Results").Cells(15, v0).Value = v18 'packagequantity
     
    ''Export of unit price
    ActiveWorkbook.Worksheets("Results").Cells(16, v0).Value = v8 'priceunit
     
    ''Export of price augmentation is not omega3
    ActiveWorkbook.Worksheets("Results").Cells(17, v0).Value = v9 'notomega3
     
    'Export of price reduction if no grill
    ActiveWorkbook.Worksheets("Results").Cells(18, v0).Value = v10 'nogrill
     
    'Export of real unit price
    ActiveWorkbook.Worksheets("Results").Cells(19, v0).Value = v11 'pricereal
     
    ''Export of total tooling price
    ActiveWorkbook.Worksheets("Results").Cells(20, v0).Value = v12 'pricetooling
     
    'Export of total order price
    ActiveWorkbook.Worksheets("Results").Cells(21, v0).Value = v13 'pricetotal
     
    'Export of order week number
    ActiveWorkbook.Worksheets("Results").Cells(23, v0).Value = v14 'weekorder
     
    'Export of number of weeks to fullfil order
    ActiveWorkbook.Worksheets("Results").Cells(24, v0).Value = v15 'weektime
     
    'Export of week number of delivery
    ActiveWorkbook.Worksheets("Results").Cells(25, v0).Value = v16 'weekdelivery2
    End Sub
    Merci d'avance

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Bonjour

    Ce code attend des arguments V0 à V18 et remplit des cellules de la feuille Results avec les valeurs des arguments reçus.

    Cette Sub doit donc être appelée par une autre Sub qui lui transmets les arguments.

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    qui plus est, elle peut drastiquement être réduite en :

    1) n'utilisant que deux paramètres dans la procédure : V0 pour le numéro de colonne + Un tableau ou les valeurs à écrire sont rangées
    2) toute les valeurs devant s'écrire à la suite, les unes en dessous de autres, on peut donc imprimer les valeurs du tableau en une seule fois


    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
    Option Base 1
     
    Sub TestUtilisation()
    Dim TableauValeurs(), NumeroColonne As Long
                          NumeroColonne = 1
        TableauValeurs = Array("Oui", "Non", "Peut être", "toto", "titi", "tata", "tonton", "toutou", _
                               "bonjour", "au revoir", "ici", "là", "ailleurs", "pomme", "haut", "bas", "gauche", "droite")
     
    Call DataExport(NumeroColonne, TableauValeurs)
    End Sub
     
     
    Public Sub DataExport(MaColonne As Long, MesValeurs As Variant)
        ActiveWorkbook.Worksheets("Results").Cells(7, MaColonne).Resize(UBound(MesValeurs), 1).Value = Application.Transpose(MesValeurs)
    End Sub
    partant de là, se pose la question de l'utilité de conserver ou pas cette procédure, il n'y a pas de bonne ou de mauvaise réponse, seul ton besoin prime

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Oui Joe et même que tu pourrais pousser l'explication pour lui dire qu'il n'en à pas besoin!

    je te pouçoi!

  5. #5
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    Bonjour,
    Oui Joe et même que tu pourrais pousser l'explication pour lui dire qu'il n'en à pas besoin!

    je te pouçoi!
    à la bonne heure, ok je m'y colle

    voici, j'ai fusionné la procédure appelante et l'exécutante !
    j'ai pas fait le radin, j'ai laissé les variables qui constituent les éléments permettant le traitement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Option Base 1
     
    Sub TestUtilisation()
    Dim TableauValeurs(), NumeroColonne As Long
                          NumeroColonne = 1
        TableauValeurs = Array("Oui", "Non", "Peut être", "toto", "titi", "tata", "tonton", "toutou", _
                               "bonjour", "au revoir", "ici", "là", "ailleurs", "pomme", "haut", "bas", "gauche", "droite")
     
    ActiveWorkbook.Worksheets("Results").Cells(7, NumeroColonne).Resize(UBound(TableauValeurs), 1).Value = Application.Transpose(TableauValeurs)
    End Sub

  6. #6
    Invité
    Invité(e)
    Par défaut
    trêve de plaisanterie,
    on implémente une méthode pour remplacer un certain nombre de ligne de codes, quand celle ci sont souvent usitées dans un programme! là Joe nous à démontré qu'une simplification de code pouvait rendre caduc l’implémentation de méthodes annexe; puisque dans ses 2 dernier exemples il passe de 15 lignes à 10 alors que la méthode originel elle en contenait 57!

    donc des sub ou des function permettent de factoriser son code; on lui alloue des variables (Public Sub DataExport(Var1,Var2...) don la valeur lui serra données en paramétré à l'appel de cette méthode, ainsi la méthode en question pourra en disposer dans la gestion de sont propre programme!

    un informaticien c'est un fainéant au même titre que ceux qui on recours aux programme qu'il développe! la fonction fait l'organe! il n'y a pas de raison qu'il rédige des linges de code qui n'ont pas lieu d’être! d'ou le besoin de simplifier un code et en plus ça le rend plus lisible et maintenable!
    Dernière modification par Invité ; 07/02/2017 à 15h39.

Discussions similaires

  1. Explications de code test-simple.c
    Par allergen dans le forum gtksdl
    Réponses: 2
    Dernier message: 10/10/2007, 09h08
  2. Demande d’explications sur cette macro et aide pour la modifier.
    Par Sapinator dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/08/2007, 18h17
  3. [filter2] Demande d'explication sur cette fonction
    Par ranell dans le forum Images
    Réponses: 3
    Dernier message: 10/05/2007, 09h19
  4. macro simple de copie cellule
    Par icecream33 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/07/2006, 12h06
  5. Réponses: 7
    Dernier message: 19/07/2005, 08h31

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