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 :

Index - Equiv en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 24
    Par défaut Index - Equiv en VBA
    Bonjour,

    je suis en train d'essayer de faire une macro VBA en utilisant les formules Index et Equiv d'Excel, mais j'ai un souci sur l'appel des feuilles.
    Voici mon souci:
    les pages sur lesquelles s'applquent la formule sont variables: je veux faire une moyenne glissante sur 4 semaines au fur et à mesure de l'année. (une page se créé chaque semaine).
    voici la partie du code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    nbsemaine = Sheets.Count - 4
    Worksheets("S" & nbsemaine).Activate
     
    If nbsemaine > 3 Then 'calcul de la moyenne glissante sur 4 semaines
     
    '=INDEX(tableau_contenant _la_valeur_à_renvoyer;EQUIV(valeur_recherchée;Tableau_contenant_la_valeur_recherchée;0))
     
    Range("C5").Select
        ActiveCell.FormulaR1C1 = _
            "=AVERAGE(INDEX('S10'!RC[-1]:R[29]C[-1],MATCH('S11'!RC[-2],'S10'!RC[-2]:R[29]C[-2],0)),INDEX('S9'!RC[-1]:R[29]C[-1],MATCH('S11'!RC[-2],'S9'!RC[-2]:R[29]C[-2],0)),INDEX('S8'!RC[-1]:R[29]C[-1],MATCH('S11'!RC[-2],'S8'!RC[-2]:R[29]C[-2],0)),RC[-1])"
        Range("C6").Select
    seulement je souhaite faire une boucle for afin de faire évoluer le nom des feuilles dans la formule.
    Quelle est la syntaxe à utiliser pour l'appel des feuilles?

    merci à vous.

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Non testé pour les numéros de semaine dans la formule :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    'Réf.111017.xlsm
    For nbsemaine = 1 To Sheets.Count - 4
        With Worksheets("S" & nbsemaine)
            If nbsemaine > 3 Then 'calcul de la moyenne glissante sur 4 semaines
            .Range("C5").FormulaR1C1 = _
                    "=AVERAGE(INDEX(S" & nbsemaine - 1 & "!RC[-1]:R[29]C[-1],MATCH(S" & _
                    nbsemaine & "!RC[-2],S" & nbsemaine - 1 & _
                    "!RC[-2]:R[29]C[-2],0)),INDEX(S" & nbsemaine - 2 & "!RC[-1]:R[29]C[-1],MATCH(S" & nbsemaine & "!RC[-2],S" & nbsemaine - 2 & "!RC[-2]:R[29]C[-2],0)),INDEX(S" & nbsemaine - 3 & "!RC[-1]:R[29]C[-1],MATCH(S" & nbsemaine & "!RC[-2],S" & nbsemaine - 3 & "!RC[-2]:R[29]C[-2],0)),RC[-1])"
            End If
        End With
    Next

  3. #3
    Membre averti
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 24
    Par défaut
    Merci pour votre réponse, effectivement c'est bon.
    J'avais juste un souci d'emplacement des guillemets....

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

Discussions similaires

  1. [XL-2007] Fonction INDEX + EQUIV sous VBA
    Par ti_mouton dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 15/07/2015, 09h18
  2. Transformer et adapter INDEX/EQUIV en boucle vba
    Par Akhlan dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 26/02/2013, 11h42
  3. Réponses: 7
    Dernier message: 11/08/2012, 17h49
  4. probleme index+equiv en vba
    Par lps02 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/05/2012, 17h38
  5. Accès à une Table Indexée (index composite) en VBA ACCESS
    Par Denis VERNON dans le forum Access
    Réponses: 1
    Dernier message: 21/04/2006, 18h47

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