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 :

Somme sur plage glissante avec condition [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 66
    Points : 56
    Points
    56
    Par défaut Somme sur plage glissante avec condition
    Bonjour tout le monde,

    Je cherche à faire la somme sur la plage ce-dessous mais sachant que cela peut varier selon les critères entrés.
    En gros, les nombres de 1 à 12 à gauche représente les mois. Ainsi je souhaiterai trouver une fonction permettant de faire la somme sur 3 mois glissants mais si les 3 mois sont coupé par Décembre (12) alors retourner au mois de Janvier (1) en comptant bien évidemment les mois avant de la fin de l'année.

    Exemple: si je dois faire la somme de 3 mois glissants à partir de Novembre, il faudra sommer Novembre (11), Décembre (12) et Janvier (1)

    Je vous remercie pour votre aide.



    Nom : somme_glissante.png
Affichages : 191
Taille : 3,8 Ko

  2. #2
    Membre averti Avatar de arosec
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Points : 324
    Points
    324
    Par défaut
    Bonsoir,

    Je propose la macro suivante (à ajouter dans un module du classeur).
    Pour l'utiliser, c'est simple:
    =SommeGlissante($B$1:$B$12;3;$A1)
    =SommeGlissante($B$1:$B$12;3;$A2)
    ...
    =SommeGlissante($B$1:$B$12;3;$A12)

    Le premier paramètre correspond à la liste des valeurs des différents mois.
    Ex: $B$1:$B$12

    Le second paramètre est le nombre de mois à sommer
    Ex: 3

    Le troisième paramètre est le mois de la ligne en cours.
    Ex: $A1

    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
     
    Option Explicit
     
    Public Function SommeGlissante(rangeDonnees As Range, _
                                   nombreGlissant As Integer, _
                                   indiceActuel As Integer) As Double
    Dim i As Integer
    Dim v As Double
    Dim m As Integer
     
      If rangeDonnees Is Nothing Then Exit Function
      If nombreGlissant < 1 Or _
         nombreGlissant > rangeDonnees.Rows.Count Or _
         indiceActuel < 1 Or _
         indiceActuel > rangeDonnees.Rows.Count Then Exit Function
     
      v = 0
      m = indiceActuel
      For i = 1 To nombreGlissant
        v = v + rangeDonnees(m, 1)
        If m = rangeDonnees.Rows.Count Then
          m = 1
        Else
          m = m + 1
        End If
      Next i
      SommeGlissante = v
     
    End Function
    Cdlt,

  3. #3
    Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 66
    Points : 56
    Points
    56
    Par défaut
    Merci beaucoup arosec c'est parfait ce que tu m'as donné !

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

Discussions similaires

  1. Sommes sur 2 colonnes avec conditions
    Par Trady dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 11/03/2014, 13h06
  2. somme sur plage variable
    Par cdvhome dans le forum Excel
    Réponses: 3
    Dernier message: 25/02/2008, 19h37
  3. recherche sur plage date avec format different
    Par maysa dans le forum Requêtes
    Réponses: 2
    Dernier message: 08/02/2008, 10h38
  4. Réponses: 12
    Dernier message: 12/06/2006, 15h29
  5. [Oracle] Update sur 1 colonne avec condition existence (SUBSTR)
    Par magic charly dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/04/2006, 14h57

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