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 :

Macro : incrémenter une variable [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 Macro : incrémenter une variable
    Bonjour,

    j'aurai besoin qu'on m'éclaire sur une notion s'il vous plaît.

    En effet, j'aurai besoin qu'on m'explique de manière simple : le fait "d'incrémenter une variable" , en qui cela consiste et comment procéder aux manipulations lors de la rédaction de la macro . (Quelle est la logique que je devrai suivre) au travers de petits exemples , par ex.
    En effet, cette partie me parait très floue et je m'y perds complètement.


    Autre chose, au lieu d'utiliser cette méthode (si elle ne nous est pas imposée) peut-on utiliser ".offset (i,j)" à la place?

    Je ne sais pas si j'ai été suffisamment explicite.

    En espérant que vous m'ayez comprise.

    Merci

    Cordialement.

  2. #2
    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, bonjour le forum,

    Pas très clair ta question. Tu as pourtant utilisé l'incrémentation dans un fil précédent.

    • Cela consiste à rajouter une valeur à une variable dans une boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    A = 5
    For I = 1 to 10
         Cells(I, 1).Value = A
         A = A + 5
    Next I
    Mais ça pourrait être incrémenter en passant à l'onglet suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    A = 2
    For I = 1 to 10
         Sheets(1).Cells(I, 1).Value = Sheets(A).Range("A1")
         A = A + 1
    Next I
    où tu récupères dans le premier onglet, ligne I, la valeur A1 des onglets 2 à 11

    Mais ça pourrait être incrémenter en décalant la cellule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    COL = 5
    For I = 1 to 10
         Cells(I, 1).Value = Cells(3, COL)
         COL = COL + 3
    Next I
    où tu récupères dans la ligne I, la valeur des cellules en ligne 3 colonne 5 à 35 par pas de 3

    etc.

    Ce que je ne comprends pas c'est ta question concernant Offset(I, J) . Offset permet de se décaler par rapport à une référence I étant la ligne (positive pour descendre, négative pour monter) et J la colonne (positive pour la droite et négative pour la gauche)

    Dans certains cas on peut incrémenter un utilisant Offset mais uniquement si on fait référence a une cellule ou plage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    A = 0
    For I = 1 to 10
         T = T + Range("A1").Offset(A, 0).Value
         A = A + 2
    Next I

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 81
    Par défaut
    Bonjour,

    Si j'ai bien compris le problème :

    Incrémenter une variable c'est ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    v=0
     
    While v<=10
    v=v+1 ' exemple d'incrémentation ici
    wend
    offset(i,j) permet de se déplacer de i ligne et de j colonne (ce nombre peut être négatif).
    Ca dépend du besoin que tu as.

    Edit : Désolé pour le double poste

    Codialement,
    Ltspitfire

  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,

    D'accord. Je me suis rendue compte que je me suis mélangée les pinceaux.


    En tous les cas, ça me paraît beaucoup plus "simple". Merci

    Je vous remercie une nouvelle fois pour votre aide, ainsi que pour votre réactivité.

    Bien cordialement.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/12/2008, 22h33
  2. incrémenter une variable à chaque clique sur un lien
    Par Piccolo_son dans le forum Langage
    Réponses: 7
    Dernier message: 17/12/2007, 21h56
  3. Incrémenter une variable en CR9
    Par nanouille56 dans le forum SAP Crystal Reports
    Réponses: 9
    Dernier message: 13/02/2007, 15h59
  4. [XSLT] incrémenter une variable
    Par nemya dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 26/09/2005, 17h12
  5. [débutant][xsl]incrémenter une variable
    Par guitalca dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 01/04/2003, 15h19

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