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 :

Boucle For Each


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 69
    Par défaut Boucle For Each
    Je rencontre un petit problème avec une boucle For Each.

    J'ai une première boucle For Each qui me sélectionne une ligne de cellule (environ 40) appelons la : N.
    A l'intérieur de cette boucle, j'ai une deuxième boucle For Each qui elle descend verticalement pour effectuer des calculs dans chacune des cellules concernées. Appelons la M.

    Vous comprenez vite que j'essaie de remplir une matrice N x M

    Mon problème est que, bien que j'arrive a faire le calcul verticalement. Horizontalement il y a un petit problème : toutes les opérations se font a partir de la cellule de base B3.
    Ainsi, quand la première boucle a fini de remplir la première colonne concerné (ca démarre à la colonne B) les calculs qui sont sensé s'insérer dans la colonne C restent dans la colonne B. Et ainsi de suite...
    Je pense que le problème se situe au niveau des étoiles *********

    Merci pour votre aide.

    FS

    Voici mon code :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Public Cours As Range
    Public K, W, B As Integer
     
    Option Explicit
     
    Sub Rempli()
     
     
    Dim Yahoovalue As Range
    Dim X As Integer
     
    K = 0
    W = 0
     
    X = Workbooks("recupdata.xls").Worksheets("ref").Range("B1").End(xlToRight).Column - 2
     
     
    For Each Yahoovalue In Range(Cells(3, 2), Cells(3, 2 + X))
     
    B = Workbooks("recupdata.xls").Worksheets("ref").Range("B" & (2 + K) & "").End(xlDown).Row - 3
     
    Yahoovalue = Range("b" & (3 + K) & "").Select**************
    Yahoovalue = Array(Cours)************
     
     
    Call LN
     
    W = 0
    K = K + 1
     
     
    Next Yahoovalue
     
     
    End Sub
     
    Sub LN()
     
            For Each Cours In Workbooks("markovitz.xls").Worksheets("LN").Range(Cells(3, 2), Cells(3 + B, 2))
     
            Cours.FormulaR1C1 = "=LN([recupdata.xls]ref!R" & (3 + W) & "C" & (2 + K) & "/[recupdata.xls]ref!R" & (2 + W) & "C" & (2 + K) & ")"
     
            W = W + 1
     
            Next Cours
     
     
    End Sub

  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
    Bonsoir,

    Je n'ai pas regardé plus avant mais tu fais référence à deux feuilles de deux classeurs différents et dans tes boucles tes Cells() font références à la feuille active ! Il te faut définir tes plages de façon plus précise afin d'éviter des résultats inattendus.
    Tu soustrais des valeurs à tes variables pour ensuite les rajouter ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    'soustraction de 2 "- 2"
    X = Workbooks("recupdata.xls").Worksheets("ref").Range("B1").End(xlToRight).Column - 2
     
    'rajout de 2 "2 + X"
    For Each Yahoovalue In Range(Cells(3, 2), Cells(3, 2 + X))
    'ceci est donc inutile
     
    X = Workbooks("recupdata.xls").Worksheets("ref").Range("B1").End(xlToRight).Column
    For Each Yahoovalue In Range(Cells(3, 2), Cells(3, X))
    '...
    Hervé.

Discussions similaires

  1. boucle for each
    Par jadey dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/08/2006, 20h50
  2. [VBA-E]PB sur une boucle for each next
    Par rond24 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/07/2006, 15h47
  3. aide vba boucle for each paramétrée en range
    Par gotlieb dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/07/2006, 08h55
  4. [VBA-E] erreur boucle for each
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/02/2006, 16h38
  5. Boucle For each
    Par roots_man dans le forum ASP
    Réponses: 10
    Dernier message: 18/02/2005, 09h55

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