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 :

Mise à jour graphique glissant sur date [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 180
    Points : 72
    Points
    72
    Par défaut Mise à jour graphique glissant sur date
    Bonjour à tous,

    J'ai créé un Bouton permettant de mettre à jour un graphique basé sur un sheet nommé "BDD", qui comprend 3 colonnes :
    1- Date&Heure au Format "dd/mm/aaaa xx : xx : xx"
    2- Hauteur poubelle en cm
    3- Poids en Kg

    Je souhaite faire afficher :
    en x : Date& Heure
    en y : Poids en Kg

    Jusque là, pas de souci !

    Mais le Bouton que j'ai créé ne veux pas mettre à jour mon graphique afin de faire afficher les données des 7 derniers jours (je suis par contre arrivé à faire afficher les x derniers Points) :

    Voici le code que j'ai réalisé :
    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
    Function MAJ_graphique()
    ActiveSheet.Unprotect "123"
     
    'Mise à jour du graphique :
        ActiveSheet.ChartObjects("Graphique").Activate
        Lastdate = Sheets("BDD").Range("A" & Rows.Count).End(xlUp)     'Dernière date
        LastLine = Sheets("BDD").Range("A" & Rows.Count).End(xlUp).Row 'Dernière ligne
        'DeconcatDate = Left(Lastdate, 10) 'Deconcaténation de l'heure
        LD = DeconcatDate - 6 'Lastdate - 7 jours
        LL = LastLine - 6 'Lastline - 7 lignes
     
        Dim res As String
        Dim res2 As Double
     
        res = CStr(Lastdate)
        'res2 = DateValue(res)
        DeconcatDate = Left(res, 5) 'Deconcaténation de l'heure
     
        'Application.VLOOKUP(lookup_value, table_array, column_index, range_lookup)
     
        x = Application.VLookup(DeconcatDate, Sheets("BDD").Range("A3:C" & Rows.Count).End(xlUp), 2, 1)
        MsgBox x
     
        If LastLine < 10 Then
            ActiveChart.SetSourceData Source:=Sheets("BDD").Range("A3:A" & LastLine, "C3:C" & LastLine), PlotBy:=xlColumns
        Else
            ActiveChart.SetSourceData Source:=Sheets("BDD").Range("A" & LL & ":" & "A" & LastLine, "C" & LL & ":" & "C" & LastLine), PlotBy:=xlColumns
        End If
    ActiveSheet.Protect "123"
    End Function

    Merci de votre Aide.

    Cordialement.

    GK

  2. #2
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 180
    Points : 72
    Points
    72
    Par défaut
    J'ai modifié un peu mon code , j'arrive à retourner :

    Valeur de la dernière ligne
    Valeur de la dernière date
    Valeur de la dernière ligne - 6 lignes --> Vision du graph sur les 7 derniers Points

    Mais je n'arrive pas :
    Valeur de la dernière date - 7 jours --> Vision du graph sur les 7 derniers Jours

    Je possède la valeur de la date - 7 jours, il me faut uniquement un moyen de convertir cette date en "numéro de ligne" ? une idée ?

    Mon code actualisé :
    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
    Function MAJ_graphique()
    ActiveSheet.Unprotect "123"
     
    'Mise à jour du graphique :
        ActiveSheet.ChartObjects("Graphique").Activate
        Lastdate = Sheets("BDD").Range("A" & Rows.Count).End(xlUp)     'Dernière date
        Lastline = Sheets("BDD").Range("A" & Rows.Count).End(xlUp).Row 'Dernière ligne
     
        DeconcatDate = Left(Lastdate, 10) 'Deconcaténation de l'heure
        LD = Lastdate - 6 'Lastdate - 7 jours
        LL = Lastline - 6 'Lastline - 7 lignes
     
    Dim res As String
    res = CStr(LD)
     
    Dim res2 As Double
    res2 = DateValue(res)
     
       x = Application.VLookup(res2, Sheets("BDD").Range("A3:C" & Lastline), 1, 1) 'Valeur de LD
     
     
    '----------------------- --> tous est OK jusqu'ici.
        If Lastline < 10 Then
            ActiveChart.SetSourceData Source:=Sheets("BDD").Range("A3:A" & Lastline, "C3:C" & Lastline), PlotBy:=xlColumns
        Else
            ActiveChart.SetSourceData Source:=Sheets("BDD").Range("A" & LL & ":" & "A" & Lastline, "C" & LL & ":" & "C" & Lastline), PlotBy:=xlColumns
        End If
    ActiveSheet.Protect "123"
    End Function

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 180
    Points : 72
    Points
    72
    Par défaut
    Probleme résolu après recherche sur different Forums :

    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
    Function MAJ_graphique()
    ActiveSheet.Unprotect "123"
     
    'Mise à jour du graphique :
        ActiveSheet.ChartObjects("Graphique").Activate
        LastDate = Sheets("BDD").Range("A" & Rows.Count).End(xlUp)     'Dernière date
        Lastline = Sheets("BDD").Range("A" & Rows.Count).End(xlUp).Row 'Dernière ligne
     
        Deconcatdate = Left(LastDate, 10) 'Deconcaténation de l'heure
        LD = LastDate - 6 'Lastdate - 7 jours
        LL = Lastline - 6 'Lastline - 7 lignes
     
    Dim res As String
    res = CStr(LD)
     
    Dim res2 As Double
    res2 = DateValue(res)
     
       x = Application.VLookup(res2, Sheets("BDD").Range("A3:C" & Lastline), 1, 1) 'Valeur de LD
    colonne = 1
    ligne = Application.Match(x, Sheets("BDD").Range("A3:A" & Lastline), False)
    'Adresse = Cells(ligne, colonne).Address
     
        If Lastline < 10 Then
            ActiveChart.SetSourceData Source:=Sheets("BDD").Range("A3:A" & Lastline, "C3:C" & Lastline), PlotBy:=xlColumns
        Else
            ActiveChart.SetSourceData Source:=Sheets("BDD").Range("A" & ligne & ":" & "A" & Lastline, "C" & ligne & ":" & "C" & Lastline), PlotBy:=xlColumns
        End If
    ActiveSheet.Protect "123"
    End Function
    Cordialement.

    Gk

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Solution sans macro paramétrable (cellule F2)
    Fichiers attachés Fichiers attachés
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

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

Discussions similaires

  1. [EasyPHP] Mise à jour de GD sur EasyPHP
    Par Ricou13 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 06/02/2006, 23h29
  2. Quelles mises à jours sont installés sur mon Windows 2000 ?
    Par beegees dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 21/12/2005, 11h33
  3. mise à jour d'un champ date
    Par Flagny dans le forum Access
    Réponses: 11
    Dernier message: 14/11/2005, 07h30
  4. Juste le JOUR (Jeudi,Vendredi...) sur Date()+1 ?
    Par samlepiratepaddy dans le forum Access
    Réponses: 4
    Dernier message: 21/09/2005, 09h59
  5. Réponses: 17
    Dernier message: 15/10/2003, 01h45

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