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 :

Aide pour création d'une macro complexe [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 132
    Points : 89
    Points
    89
    Par défaut Aide pour création d'une macro complexe
    Bonjour,

    j'essaie de faire une macro qui fait la somme de cellule en fonction d'un intervalle de temps.

    Sur mon onglet procédure j'ai une cellule I16 qui représente l'intervalle de temps saisi par exemple 1 heure.
    J'ai aussi en I12 Début de période par exemple 18/10/2010 00:00:00
    et en I14 Fin de période par exemple 19/10/2010 00:00:00

    sur mon onglet calcul j'ai deux colonnes D et E

    H.Km ELEMENT HORODATE CONSTATATION
    0,033 18/10/2010 00:55
    0,035 18/10/2010 07:08
    0,042 18/10/2010 07:33
    0,266 18/10/2010 07:48
    0,003 18/10/2010 07:01
    0,090 18/10/2010 07:02
    0,611 18/10/2010 07:28
    0,392 18/10/2010 07:23
    0,149 18/10/2010 08:10

    Par exemple si on tape en I16 un intervalle de 1h00 la macro doit faire la somme des H.Km de 0h00 à 1h00 et de 1h00 à 2h00 ainsi de suite et les placer dans un onglet Résultats, pour avoir la valeur à 0h00,1h00,2h00...

    est-ce que cela est possible ?

    Merci par avance pour vos réponses.

  2. #2
    Membre actif Avatar de Yolak
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 341
    Points : 206
    Points
    206
    Par défaut
    Bonjour,

    Bien sûr que c'est possible...
    Que veux-tu de nous ?
    Tu veux faire ça en VBA?
    Épargnez votre cerveau : éteignez votre télé !

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 132
    Points : 89
    Points
    89
    Par défaut
    J'essai de faire une macro mais je n'arrive pas à la faire, j'ai peux être fais une erreur dans l'algo.

    Je compter faire l'algo suivant :
    récupère début de période contenu dans la cellule I12 de l'onglet procedure.

    Ici on a tapé 18/10/2010 00:00:00, puis on fais I12 + 1h pour avoir la plage 0h00 - 1h00, et on boucle avec +1h encore pour avoir la plage de 1h00 à 2h00.

    Par compte il faut que je vérifie qu'une fois arrivé à 18/10/2010 23:00:00 + 1h00
    on passe bien au 19/10/2010 00:00:00.

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Points : 617
    Points
    617
    Par défaut
    salut

    je ne vais te paerler ici que de cet aspect-là :

    Citation Envoyé par dybmans Voir le message
    Par compte il faut que je vérifie qu'une fois arrivé à 18/10/2010 23:00:00 + 1h00
    on passe bien au 19/10/2010 00:00:00.
    - Existent les fonctions DateAdd (qui te permet d'ajouter des unités de temps) et Day (qui permet d'extraire le joiur d'une date)
    - lorsque l'on ajoute une unité de temps à une date/heure, c'est l'ensemble (y compris la date, donc) qui évolue

    ce petit exemple devrait êt(re suffisant pour te mettre sur les rails de l'écriture de ton code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim ladate As Date, jour As Integer, nouvelle_date As Date
    Dim jourencours As Integer, I As Integer
    ladate = "18/10/2010 21:00:00"
    jour = Day(ladate)
    For I = 1 To 10
     nouvelle_date = DateAdd("h", I, ladate)
     jourencours = Day(nouvelle_date)
     MsgBox Format(nouvelle_date, "dd/mm/yyyy hh:nn:ss") & vbCrLf & _
     IIf(jourencours = jour, "même jour", "on a changé de jour")
     jour = jourencours 'à ta convenance si tu veux trouver un nouveau changement
     
    Next
    A toi de t'en inspirer, maintenant, pour gérer ton affaire.

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2003
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2003
    Messages : 132
    Points : 89
    Points
    89
    Par défaut
    Merci je vais voir si cela me permet de découper ma période en X plages d'une heure pour après faire les graphs heure par heure.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    Une piste avec le code suivant

    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
    49
    Sub Somme_pmo()
    Dim interval
    Dim S As Worksheet
    Dim R As Range
    Dim var
    Dim i&
    Dim T()
    Dim cpt&
    Dim x#
    interval = Sheets("Procedure").[i16]
    If Not IsNumeric(interval) Then
      MsgBox "La valeur de I16 de la feuille Procedure n'es pas numérique"
      Exit Sub
    End If
    Set S = Sheets("Calculs")
    S.Copy after:=S
    Set S = ActiveSheet
    Set R = S.UsedRange
    R.Copy
    R.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    R.Sort Key1:=S.[D2], Order1:=xlAscending, Header:=xlYes
    var = R
    x# = CDbl(interval) - 0.000001
    cpt& = 1
    ReDim T(1 To 2, 1 To cpt&)
    For i& = 2 To UBound(var, 1)
      If var(i&, 4) < x# Then
        T(1, cpt&) = T(1, cpt&) + 1
        T(2, cpt&) = T(2, cpt&) + var(i&, 4)
      Else
        x# = x# + CDbl(interval)
        cpt& = cpt& + 1
        ReDim Preserve T(1 To 2, 1 To cpt&)
        T(1, cpt&) = T(1, cpt&) + 1
        T(2, cpt&) = T(2, cpt&) + var(i&, 4)
      End If
    Next i&
    S.Cells.Delete
    Set R = S.Range(S.Cells(2, 1), S.Cells(UBound(T, 2) + 1, 2))
    R = Application.WorksheetFunction.Transpose(T)
    R.NumberFormat = "General"
    Set R = S.Range("a1:c1")
    R = Array("Nombre", "Somme", "Intervalle = " & interval & "")
    R.Font.Bold = True
    R.HorizontalAlignment = xlCenter
    S.[a1].Select
    S.Columns.AutoFit
    End Sub
    Cordialement.

    PMO
    Patrick Morange

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

Discussions similaires

  1. [AC-2010] Aide pour Création d'une BD (Rapport Journalier exploitation minière)
    Par saphir5 dans le forum Modélisation
    Réponses: 2
    Dernier message: 09/06/2013, 13h06
  2. [XL-2010] Besoin d'aide à la création d'une macro dans XL-2010
    Par florian1106 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 24/12/2012, 13h18
  3. [XL-2007] Aide à la création d'une macro
    Par Vishnou dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/10/2010, 15h15
  4. Réponses: 2
    Dernier message: 22/07/2009, 22h36
  5. Aide pour création d'une page en ASP
    Par jj6401 dans le forum ASP
    Réponses: 8
    Dernier message: 06/03/2009, 11h04

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