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 :

Incrementer un tableau e dates automatiquement


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 61
    Par défaut Incrementer un tableau e dates automatiquement
    Bonjouur les VBAistes
    J aurai besoin de votre aide svp pour un probleme qui me fait chier depuis quelques jours
    Je souhaite réaliser un tableau comme le tableau ci_joint
    En effet, je veux calculer le nbre d ejours entre deux dates la colonne Q et G qui sont sur une feuille "All" et realiser la moyenne et la mettre dans le tableau joint.
    Si le mois de la colonne G est 1/2016 10/2015 11/2015 12/2015 je veux faire la moyenne et l affecter et la cellule B2 du tableau joint
    si c est 2/2016 3/2016 4/2016 ca sera affecte a C2 et 5/2016 6/2016 7/2016 8/2016 dans la colonne D2 du tableau joint toujours
    ça j ai reussi a le faire avec le code suivant sachant que je n avais a calculer que la moyenne de l annee 2015 2016
    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
     
    Sub IsoIndicators()
     
    Dim rcell As Range
     
    Dim somme1 As Integer
    Dim somme2 As Integer
    Dim somme3 As Integer
    Dim nbupdates1 As Integer
    Dim nbupdates2 As Integer
    Dim nbupdates3 As Integer
    somme1 = 0
    nbupdates1 = 0
    somme2 = 0
    nbupdates2 = 0
    somme3 = 0
    nbupdates3 = 0
    lastlign = Worksheets("All").Range("B" & Rows.Count).End(xlUp).Row
    For i = 2 To lastlign
    If (IsDate(Worksheets("All").Range("Q" & i)) And IsDate(Worksheets("All").Range("G" & i))) Then
     
    Worksheets("All").Range("Z" & i) = dateDiff("d", Worksheets("All").Range("G" & i), Worksheets("All").Range("Q" & i))
    Else
    Worksheets("All").Range("Z" & i) = ""
    End If
     
    Next
    For i = 2 To lastlign
    If (Worksheets("All").Range("Z" & i) <> "") Then
     
    If (Year(Worksheets("All").Range("Q" & i).Value) = 2016 And Month(Worksheets("All").Range("Q" & i).Value) = 2) Or ((Year(Worksheets("All").Range("Q" & i).Value) = 2016 And Month(Worksheets("All").Range("Q" & i).Value) = 3)) Or ((Year(Worksheets("All").Range("Q" & i).Value) = 2016 And Month(Worksheets("All").Range("Q" & i).Value) = 4)) Or ((Year(Worksheets("All").Range("Q" & i).Value) = 2016 And Month(Worksheets("All").Range("Q" & i).Value) = 5)) Then
    somme1 = somme1 + Worksheets("All").Range("Z" & i)
    nbupdates1 = nbupdates1 + 1
    ElseIf (Year(Worksheets("All").Range("Q" & i).Value) = 2015 And Month(Worksheets("All").Range("Q" & i).Value) = 10) Or ((Year(Worksheets("All").Range("Q" & i).Value) = 2015 And Month(Worksheets("All").Range("Q" & i).Value) = 11)) Or ((Year(Worksheets("All").Range("Q" & i).Value) = 2015 And Month(Worksheets("All").Range("Q" & i).Value) = 12)) Or ((Year(Worksheets("All").Range("Q" & i).Value) = 2016 And Month(Worksheets("All").Range("Q" & i).Value) = 1)) Then
    somme2 = somme2 + Worksheets("All").Range("Z" & i)
    nbupdates2 = nbupdates2 + 1
    ElseIf (Year(Worksheets("All").Range("Q" & i).Value) = 2016 And Month(Worksheets("All").Range("Q" & i).Value) = 6) Or ((Year(Worksheets("All").Range("Q" & i).Value) = 2016 And Month(Worksheets("All").Range("Q" & i).Value) = 7)) Or ((Year(Worksheets("All").Range("Q" & i).Value) = 2016 And Month(Worksheets("All").Range("Q" & i).Value) = 8)) Or ((Year(Worksheets("All").Range("Q" & i).Value) = 2016 And Month(Worksheets("All").Range("Q" & i).Value) = 9)) Then
    somme3 = somme3 + Worksheets("All").Range("Z" & i)
    nbupdates3 = nbupdates3 + 1
     
    End If
    End If
    Next
    Worksheets("Iso Indicators").Range("C2") = somme1 / nbupdates1
    Worksheets("Iso Indicators").Range("B2") = somme2 / nbupdates2
    Worksheets("Iso Indicators").Range("D2") = somme3 / nbupdates3
     
    End Sub
    Mnt on me demande de parametrer le tableau pour que ça prenne toutes les années qui sont sur une colonne Q de la feuille All
    C est a dire qu on saisira l annee prochaine une date 2017 me tableau doit se mettre a jour automatiqueemnt et rajouter une ligne 2016/2017 en dessous de 2015/2016

    j ai mis aussi en PJ le tableau d ou j extrais les donnees
    la colonne Q c est Date Update Integration et la colonne G c est Date Update Request; c est a partir de ces deux colonnes que je calcule la moyenne
    Please Helpez moi^si vous avez d idées je suis coincée
    Merci beaucoup
    Images attachées Images attachées   

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Sans passer par VBA, tu pourrais peut-être utiliser des colonnes à droite pour y mettre des formules comme tu le fais déjà pour le nombre de jours en Z

    Donc, en AA et AB, tu pourrais mettre ces formules (à valider...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    =SI(MOIS(G2)=1;ANNEE(G2)-1 & "/" & ANNEE(G2);ANNEE(G2) & "/" & ANNEE(G2)+1)  
    =SI(ET(MOIS(G2)>=2;MOIS(G2)<=5);"M2-M5";SI(ET(MOIS(G2)>=6;MOIS(G2)<=9);"M6-M9";"M10-M1"))
    Puis dans ton autre tableau de compilation, tu fais des SOMME.SI.ENS / NB.SI.ENS (à adapter avec les noms de feuilles et les adresses des cellules)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(SOMME.SI.ENS($Z:$Z;$AA:$AA;$A2;$AB:$AB;C$1) / NB.SI.ENS($AA:$AA;$A2;$AB:$AB;C$1;$Z:$Z;">0");0)

Discussions similaires

  1. Générer date automatiquement dans un tableau
    Par valmeras dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 18/04/2014, 00h46
  2. PhpDocumentor et date automatique
    Par Philsmile dans le forum Zend
    Réponses: 1
    Dernier message: 11/03/2007, 07h59
  3. [Tableaux] tri tableau avec date
    Par omelhor dans le forum Langage
    Réponses: 12
    Dernier message: 17/10/2006, 20h24
  4. [OpenOffice][Texte] Comment générer la date automatiquement sur Openoffice.org ?
    Par wareq dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 09/11/2005, 22h41
  5. comment avoir la date automatiquement
    Par champion dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 13/01/2005, 13h07

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