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 :

Paramétrage d'une boucle


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club Avatar de Polygos
    Homme Profil pro
    Ma petite entreprise
    Inscrit en
    Avril 2016
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ma petite entreprise
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2016
    Messages : 190
    Points : 52
    Points
    52
    Par défaut Paramétrage d'une boucle
    Bonsoir;
    j'ai besoin d'itérer une boucle l'une dans l'autre, maos avec une borne de la boucle paramétrée.
    C'est sans doute un problème simple mais je n'y vois plus rien:
    P1 à P6 sont des entiers
    Je veux boucler sur Pi de 1 à 6 donc, ceux-ci devenant la limite supérieure d'une boucle incluse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim L as integer
    For n = 1 to 6
    Limite = "P" & n
    For L = 1 to Limite
    For c= 1 to 30
    'action
    next c
    next L
    next n
    Limite est une variable, entière, mais je n'arrive pas à coller la valeur numérique de Pi (Les Pi sont des entiers calculés précédemment) dans Limite

    Je ne vois plus rien, ce doit être évident mais je suis dessus depuis trop longtemps.
    Une cht'ite aide ?

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Utilise un tableau P et boucle sur ses éléments
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    P=array(P1,P2,P3,P4,P5,P6)
    For n=1 to 6
    For L =1 to P(n-1)
    ...
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    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,

    Mais que vient faire ce "P" dans la définition de la borne max de la seconde boucle ?
    de cette façon ça ne te convient pas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    For n = 1 To 6
     
        For L = 1 To n
     
            For C = 1 To 30
            'action
            Next C
     
        Next L
     
    Next n

  4. #4
    Membre du Club Avatar de Polygos
    Homme Profil pro
    Ma petite entreprise
    Inscrit en
    Avril 2016
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ma petite entreprise
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2016
    Messages : 190
    Points : 52
    Points
    52
    Par défaut Itérations avec variable de limite
    Citation Envoyé par mercatog Voir le message
    Utilise un tableau P et boucle sur ses éléments
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    P=array(P1,P2,P3,P4,P5,P6)
    For n=1 to 6
    For L =1 to P(n-1)
    ...
    Ca me parait excellent de simplicité ! mais pourquoi P(n-1) alors que je dois bien itérer sur P6 la dernière valeur ?

  5. #5
    Membre du Club Avatar de Polygos
    Homme Profil pro
    Ma petite entreprise
    Inscrit en
    Avril 2016
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ma petite entreprise
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2016
    Messages : 190
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par Theze Voir le message
    Bonjour,

    Mais que vient faire ce "P" dans la définition de la borne max de la seconde boucle ?
    de cette façon ça ne te convient pas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    For n = 1 To 6
     
        For L = 1 To n
     
            For C = 1 To 30
            'action
            Next C
     
        Next L
     
    Next n
    Simplment parce que L doit varier de la valeur contenue dans la variable P1 à P6, et non de 1 à 6.

    Le besoin est de découper un fichier trop gros pour le upload en 6 parties.
    Ces 6 parties sont calculées (car elles doivent être multiples de 3) et on copie le contenu du fichier de base réparti sur ces 6 nouveaux fichiers que l'on crée.
    Ces fichiers sont ensuite, après conversion en csv, importés dans une bdd de site internet.
    Voilà le pourquoi ?

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Ne pas confondre P(i) et Pi

    je pouvais bien nommer le tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Machin=array(P1,P2,P3,P4,P5,P6)
    et dans la boucle je l’appellerai parcar
    machin(0)=P1
    machin(1)=P2...

    l'indice du tableau machin commence par 0 sauf si tu avais mis au début du module et dès lors la limite de chaque boucle sur n sera machin(n)
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

Discussions similaires

  1. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  2. Modification de composant ds une boucle
    Par sinsenono dans le forum C++Builder
    Réponses: 10
    Dernier message: 22/02/2004, 12h46
  3. swf dans une boucle asp
    Par Chucky69 dans le forum Flash
    Réponses: 11
    Dernier message: 10/02/2004, 17h07
  4. [Vb.net] Indexé un objet crée dans une boucle
    Par picpic dans le forum Windows Forms
    Réponses: 10
    Dernier message: 17/12/2003, 14h37
  5. Pause dans une boucle
    Par HT dans le forum Langage
    Réponses: 4
    Dernier message: 03/06/2003, 08h52

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