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 :

novice Macro !


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 5
    Points
    5
    Par défaut novice Macro !
    Bonjour,

    Voila j'ai un devoir à rendre sur les macro, et il s'avère que l'on a eu un seul cour là dessus et je n'ai rien compris, j'ai donc besoin de votre aide ..

    Voila le sujet :
    vous créez 4 feuilles de calculs avec en ligne les noms et une matière par feuille.
    Créer une macro qui calculera la moyenne de chaque élève et qui placera la note à coté du nom de l'elève.

    J'ai généré une base de données de 40 personnes, et utilisé la fonction aléa pour avoir des notes aléatoires.
    Sur une nouvelle feuille, j'ai collé les noms et après 2 h de recherche, j'ai fait enregister la macro, fait ma moyenne pour un élève puis fin de la macro.
    J'ai crée le bouton raccourci sur ma feuille.
    Le problème, c'est que je dois toujours cliquer sur le bouton pour générer la moyenne de l'élève à chaque ligne...

    Question 1 : est-ce que mon "procédé" (encodage) est le bon pour ma macro ??
    Voici le script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Macro5()
    '
    ' Macro5 Macro
    '
     
    '
    ActiveCell.FormulaR1C1 = _
    "=AVERAGE(Histoire!RC,GEO!RC,Maths!RC,français!RC)"
    End Sub
    Question 2 : existe-t-il un moyen pour avoir la moyenne de tous les eleves d'un coup par les macros ?? ( car si j'étire j'ai bien peur que ce soit une hors-sujet...?) et cliquer sur le bouton 40 fois me parait un peu bizarre

    Merci beaucoup !!!

  2. #2
    Membre averti Avatar de LawNasK
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 144
    Points : 391
    Points
    391
    Par défaut
    Bonjour,

    Un lien qui devrait beaucoup t'aider : page developpez de silkyroad

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Est-ce possible de m'orienter vers quelle catégorie je pourrais trouver ma réponse ?? Car en cherchant comment creer une macro, j'étais tombé sur ce lien qui m'a aider pour la créer mais en survolant les autres rubriques je n'avais rien trouver pour mon problème

  4. #4
    Membre averti Avatar de LawNasK
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 144
    Points : 391
    Points
    391
    Par défaut
    Macro en général : Les macros

    Pour la deux : les boucles

    Pour la une : J'aurais personnellement fait ça tout VBA sans passer par une formule excel, car c'est un exercice sur le VBA et non pas sur le fonctionnement général d'excel si j'ai bien compris. Pense à ce qu'est une moyenne par définition et utilise des variables.

    Pour ajouter quelque chose dans une cellule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub nyan
        Dim chat As String
    
        chat = "miaou"
    
        ThisWorkbook.Worksheet("nomDeLaFeuille").Range("A1").Value = chat
        'Il y a maintenant écrit miaou dans la cellule A1 de la feuille nomDeLaFeuille
    End Sub

  5. #5
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 071
    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 071
    Points : 9 850
    Points
    9 850
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    il faut déjà que tu comprennes pourquoi ton clic sur le bouton ne rempli qu'une seule ligne à la fois.
    le code que tu as généré via l'enregistreur reproduit exactement l'action que tu as fais durant l'enregistrement :

    " sur la cellule active, j'insère la formule qui calcule ma moyenne"

    aussi, quand tu appuies sur le bouton, il va donc appliquer la formule sur la cellule où tu es positionnée.


    C'est les aléas de l'enregistreur de macro, il est rarement réutilisable sans le retravailler. De plus, il génère souvent un code mal optimisé.


    Afin d'automatiser sur tes 40 cellules, il faut :

    - que tu identifies et indique à ton code là où il doit commencer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ' on crée une variable qui représentera un objet "cellule"
    Dim Cell as Range
     
    ' on va mettre une "cellule" dans ta variable Cell
    ' ici je met la cellule A1 dans Cell
    Set Cell = ThisWorkbook.Worksheets("Nom de ta feuille").Range("A1")
    - que tu utilises une boucle pour mouliner sur tes 40 cellules

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    ' on commence à 0 si on est déjà sur la première cellule
    for i = 0 to 39
     
        ' ici le traitement qu'on applique
     
    next i


    ==> ce qui donne, sans pousser outre mesure la retouche
    (on pourrait également retravailler la formule de moyenne)

    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
     
     
    Sub JeDebute()
     
    ' on crée une variable qui représentera un objet "cellule"
    Dim Cell as Range
     
    ' on va mettre une "cellule" dans ta variable Cell
    ' ici je met la cellule A1 dans Cell
    Set Cell = ThisWorkbook.Worksheets("Nom de ta feuille").Range("A1")
     
    ' on sélectionne la cellule
    ' à éviter !! on a pas besoin de selectionner une cellule en VBA pour mettre des choses dedans
    ' mais vu ton niveau débutant ... je m'arrête là
    Cell.select
     
    ' on commence à 0 si on est déjà sur la première cellule
    for i = 0 to 39
     
        ' ici le traitement qu'on applique
        ActiveCell.FormulaR1C1 ="=AVERAGE(Histoire!RC,GEO!RC,Maths!RC,français!RC)"
     
        ' on décale la cellule d'écriture
        Set Cell = Cell.Offset(1,0)
        Cell.Select
     
    next i
     
    ' il faut toujours décharger les variables pour libérer la mémoire
    Set Cell = Nothing
     
    End Sub

    J'espère que ces premières lumières t'aiderons à utiliser les FAQ et didacticiel.
    On peut apprendre énormément rien qu'avec ça ... je suis parti de 0 et j'ai uniquement utilisé ça et des longues lectures de ce forum

Discussions similaires

  1. [WD-2007] Macro enregistrement modele NOVICE
    Par hicki dans le forum VBA Word
    Réponses: 5
    Dernier message: 24/12/2013, 19h44
  2. Nouveau novice sur macro VBA Excel
    Par ducbrudebut dans le forum Présentations
    Réponses: 0
    Dernier message: 11/11/2013, 11h09
  3. [WD-2010] Macro et langage VBA pour novice en informatique
    Par RonanCASA dans le forum VBA Word
    Réponses: 5
    Dernier message: 14/05/2013, 23h29
  4. [XL-97] aide pour macro (attention novice)
    Par teen6517 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/07/2010, 10h50
  5. [AC-2002] création d'une macro (je suis novice)
    Par djodjo51 dans le forum Access
    Réponses: 6
    Dernier message: 17/09/2009, 15h20

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