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 :

Débutante dans les macros, demande d'aide


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Septembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Débutante dans les macros, demande d'aide
    Bonjour,

    Je débute dans la création de macro. J'ai trouvé un exemple de macro, mais je n'arrive pas à la comprendre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 1 To 8
        For j = 1 To WorksheetFunction.Max(Worksheets("D4").Cells(1, 2).Value, Worksheets("D4").Cells(1, 4).Value, Worksheets("D4").Cells(1, 6).Value)
            Worksheets("D4").Cells(j + 6, i).Clear
        Next
    Next
    Que signifient i et j ? Quand on utilise Cells(), les numéros à l'intérieur correspondent à quoi ?

    Merci !

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

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour Alix, bonjour le forum,

    Le code commenté :

    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
    Sub Macro1()
    'boucle 1 :  de 1 à 8
    For I = 1 To 8
     
        'boucle 2 : de 1 à ...la plus grande valeur (Max) entre les 3 cellules : ligne 1 colonne 2 (Cells(1, 2) = B1), ligne 1 colonne 4 (Cells(1, 4) = D1) et ligne i colonne 6 (Cells(1, 6) = F1) de l'onglet nommé "D4"
        For J = 1 To WorksheetFunction.Max(Worksheets("D4").Cells(1, 2).Value, Worksheets("D4").Cells(1, 4).Value, Worksheets("D4").Cells(1, 6).Value)
     
            'efface la cellule ligne J + 6 colonne I de l'onglet nommé "D4"
            Worksheets("D4").Cells(J + 6, I).Clear
     
        'prochaine valeur de la boucle 2
        Next
     
    'prochaine valeur de la boucle 1
    Next
    End Sub
    premier passage de la boucle 1 :
    I = 1
    premier passage de la boucle 2
    J = 1
    efface la cellule ligne 1 + 6 colonne 1 = A7
    deuxième passage de la boucle 2
    J=2
    efface la cellule ligne 2 + 6 colonne 1 = A8
    etc...
    la boucle 2 va s'effectuer jusqu'à la plus grande valeur entre la valeur B1, de D1 et de F1. Donc si cette plus grande valeur est par exemple : 10. La boucle 2 va être de 1 à 10

    a la fin de la boucle 2, I va passer à 2 et se sont les cellules de la colonne 2 (=B) qui seront effacées jusqu'à la colonne 8 (=H)...

    deuxième passage de la boucle1
    I=2
    etc...
    À plus,

    Thauthème

    Je suis Charlie

  3. #3
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    Bonjour.

    I et J sont des variables : tu peux les voir comme des boites dont la valeur change à chaque fois que le programme le veut.

    En l'occurrence, For i = 1 to 8 signifie qu'on execute le code entre le For et le Next 8 fois, avec i=1, puis avec i=2.....jusqu'à i = 8

    Cells(Ligne, Colonne) désigne la case d'excel avec la ligne et la colonne. Cells(3, 7) est équivalent à Range("G3")



    EDIT : grillé. Excellente réponse, rien à ajouter.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  4. #4
    Expert éminent
    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
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Sub qui peut se ramener à ces lignes de code, les boucles étant totalement inutiles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub Test()
     
        With Worksheets("D4")
     
            .Range(.Cells(7, 1), .Cells(6 + WorksheetFunction.Max(.Cells(1, 2).Value, .Cells(1, 4).Value, .Cells(1, 6).Value), 8)).Clear
     
        End With
     
    End Sub
    Hervé.

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

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Re,

    Bien vu Hervé !...
    À plus,

    Thauthème

    Je suis Charlie

  6. #6
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, @alix1428 : il te faudra passer par ( à lire et assimiler )

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Septembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Merci!
    Ok super merci beaucoup pour ces réponses très claires ! J'en profite donc pour vous demander autre chose : j'ai un tableau à double entrée : la colonne "formation" et les colonnes "indice". Je voudrais réaliser un graphique "nuage de points", avec liste déroulante, me permettant de représenter par exemple uniquement les valeurs de l'indice A, mais également en ne sélectionnant que les formations 3... Je sais le faire si jamais je ne veux que les valeurs de l'indice A, mais pas lorsqu'une deuxième sélection est nécessaire.

    Ai-je besoin de faire une macro ? Ou Est-ce que sous excel 2013 je peux le faire sans macro ?

    Merci !
    Nom : Capture.PNG
Affichages : 177
Taille : 29,1 Ko

Discussions similaires

  1. Problème de débutant dans les tableaux
    Par mat1450 dans le forum C++
    Réponses: 8
    Dernier message: 17/08/2007, 19h09
  2. Débutant dans les réalisations des jeux
    Par amine6441 dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 07/04/2007, 18h56
  3. Réponses: 28
    Dernier message: 09/01/2007, 16h30
  4. Vraiment un débutant dans les serveurs Java
    Par zalalus dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 17/08/2006, 18h18
  5. [POO] débutante dans les objets COM
    Par SandraG dans le forum Langage
    Réponses: 11
    Dernier message: 16/03/2006, 12h03

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