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éation du macro avec une boucle [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 65
    Par défaut Création du macro avec une boucle
    Bonjour,

    J'ai effectué une macro, mais en l'exécutant je ne vois si je l'ai bien rédiger.
    Il s'agit de la macro suivante :

    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
    Macro4 2ème session
     
    Sub macro4()
     
    Dim Total As Long
    Dim Variable As Long
    'Dim Variableplus2 As Long
     
    Do Until Total >= 100
    Variable = Variable + 2
     
    Total = Total + Variable
     
     
    Loop
     
    End Sub
    La consigne de départ est la suivante :

    Créer une macro qui fonctionnera jusqu'à ce que la valeur "total" soit supérieure ou égale à 100. Dans cette boucle il sera ajouté à la variable "total" de la valeur 2 au premier tour, au tour suivant la valeur 4 et au tour suivant 6 et ainsi de suite.

    Pour ma part je ne comprends pas l'utilité de cette macro.


    Autre chose : je vais passer un évaluation en vba très prochainement (cet examen consistera à créer des macros spécifiques suite à des consignes qu'on nous aura transmises). A tout hasard, Auriez vous quelques conseils à me prodiguer?

    Merci

    Cordialement

  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,

    Teste ceci et adapte à tes besoins :
    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
     
    Sub macro4()
     
        Dim Total As Long
        Dim Variable As Long
        Dim Passe As Integer
     
        Do Until Total >= 100
     
            Variable = Variable + 1
            Total = Total + Variable * 2
            Passe = Passe + 1
     
        Loop
     
        MsgBox "La valeur de la variable 'Total' est de " & Total & " donc " & IIf(Total > 100, "supérieure", "égale") & " à 100." & _
               vbCrLf & _
               "Il a fallut " & Passe & " passe(s) pour arriver à ce résultat !"
     
    End Sub
    Hervé.

  3. #3
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Kiera, Hervé, bonjour le forum,

    Tu as raison cette macro n'a pas vraiment d'intérêt sinon celui de vous enseigner la méthode Do...Loop. Et ton code me semble tout à fait correct.

    Voici quelques conseil (d'un autodidacte pas très évolué...)
    • Pense à bien déclarer tes variables avec le type le mieux adapté. Dans cet exemple le type Byte était suffisant puisque la boucle s'arrête dès que tu atteins la valeur 100. Au pire, Integer mais Long me paraît excessif...
    • Utilise toujours au moins une lettre en majuscule dans la déclaration de tes variables. Ensuite, quand tu écris le code, écris le en minuscule. L'éditeur VBA remettra automatiquement les majuscules. D'un rapide coup d'œil, cette astuce permet d'éviter les fautes de frappe entraînant des bugs...
    • Fais tourner ta macro pas à pas [F8] avec des espions ou avec des Debug.Print pour vérifier l'état des variables avant de rendre le résultat.
    VBA est un langage et comme tel tu peux dire une même chose de plusieurs manières différentes. Essaie d'utiliser le minimum de lignes de code mais il faut que ça reste suffisamment clair pour qu'un autre utilisateur que toi le comprenne aisément.

    M... pour ton évaluation !

  4. #4
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 65
    Par défaut
    Bonjour,

    Merci Thautheme pour vos conseils ainsi que pour votre aide. je prends note.
    Cordialement.

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Par défaut
    Bonjour à tous,

    A la liste fournie par Thautheme, et basé sur ma propre expérience, j'ajouterai:

    1. Option explicit à mettre en entête de chaque module (force la déclaration des variables) et proscrire le type variant (par défaut)
    2. Si un bout de code est susceptible d'être appelé plusieurs fois, le mettre en fonction ou en sub avec passage de paramètre, c'est un peu de temps de perdu à la création mais beaucoup de gain ensuite

    Bonne continuation

  6. #6
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 65
    Par défaut
    D'accord. je prends note. Merci
    D'ailleurs: au lieu d'écrire au début de chaque module "Option explicit" à chaque fois, savez quelle est la manipulation à faire sur excel ?
    Sur mon pc avec la version 2013, j'ai trouvé la manipulation à effectuer mais avec les versions antérieures (2010 par exemple), je ne trouve pas .
    Merci.
    Cordialement

  7. #7
    Membre Expert
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Par défaut
    Rebonjour,

    Pour forcer l'insertion du 'option explicit' (Excel 2010 - Anglais),

    1. Sous VBE, choisir 'Outils' puis 'Options'
    2. Cocher toutes les options de l'onglet 'Editeur' (vértification syntaxe, déclaration de variables, ....)

  8. #8
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    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 871
    Billets dans le blog
    1
    Par défaut
    Bonjour à tous

    Citation Envoyé par Thautheme Voir le message
    Bonjour Kiera, Hervé, bonjour le forum,

    Tu as raison cette macro n'a pas vraiment d'intérêt sinon celui de vous enseigner la méthode Do...Loop. Et ton code me semble tout à fait correct.

    Voici quelques conseil (d'un autodidacte pas très évolué...)
    • Pense à bien déclarer tes variables avec le type le mieux adapté. Dans cet exemple le type Byte était suffisant puisque la boucle s'arrête dès que tu atteins la valeur 100. Au pire, Integer mais Long me paraît excessif...
    • Utilise toujours au moins une lettre en majuscule dans la déclaration de tes variables. Ensuite, quand tu écris le code, écris le en minuscule. L'éditeur VBA remettra automatiquement les majuscules. D'un rapide coup d'œil, cette astuce permet d'éviter les fautes de frappe entraînant des bugs...
    • Fais tourner ta macro pas à pas [F8] avec des espions ou avec des Debug.Print pour vérifier l'état des variables avant de rendre le résultat.
    VBA est un langage et comme tel tu peux dire une même chose de plusieurs manières différentes. Essaie d'utiliser le minimum de lignes de code mais il faut que ça reste suffisamment clair pour qu'un autre utilisateur que toi le comprenne aisément.

    M... pour ton évaluation !
    Je suis 100% d'accord avec toi et je fait pareil ...

    A+

  9. #9
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 65
    Par défaut
    Merci

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

Discussions similaires

  1. Création de dossiers avec une boucle
    Par LUCAS31 dans le forum VBScript
    Réponses: 2
    Dernier message: 27/08/2012, 17h53
  2. Macro calculs avec une boucle
    Par mizou00 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/08/2010, 03h00
  3. probleme de création de fichiers avec une boucle
    Par bobo696 dans le forum Débuter
    Réponses: 3
    Dernier message: 19/01/2009, 14h45
  4. [MySQL] Création de variables dans une boucle et récupération de données avec une requête
    Par lavande4 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/09/2008, 11h10
  5. Réponses: 22
    Dernier message: 20/05/2008, 10h25

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