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 :

trous dans une serie de date


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 22
    Par défaut trous dans une serie de date
    Salut

    Voici la description de ma feuille excel.
    La colonne A possède une liste de date sur un an pour chaque heure. La colonne possède les valeurs corespondante à ces dates, la colonne C les dates de l'années suivantes, la D les valeurs corresppondantes, et ainsi de suite pour trente ans.
    remarque: l'année ne commence pas forcément le premier janvier à 00:30 mais peux commencer le premier avril à 00:30 ou bien le 31 mars à 23:30.
    de même l'année ne finis pas forcément le 31 décembre à 23:30.

    j'ai problème dans ces listes de date accompagné de valeurs il est possible qu'il ait des trous. c'est à dire: par exemple j'ai 2010-01-01 16:30 8507.55181666667 puis j'ai 2010-01-02 13:30 8507.55181666667
    Je me demandais si il n'existerais pas un moyen de trouver ces trous et de rajouter entre les deux dates les dates horaires manquantes et pas de valeurs à coté.
    Comme j'ai des milliers d'années à faire je cherche une macro pour executer la tache le plus vite possible.
    j'ai joint un exemple.
    j'ai enlevé l'exemple si vraiment vous ne comprenez pas je pourrais le remettre
    Merci beaucoup

  2. #2
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    ce sont des paliers de 30 minutes??
    la liste est ordonnée ou pas??

  3. #3
    Membre averti
    Inscrit en
    Août 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 22
    Par défaut uun exemple
    Il y a des données chaque heure.La liste est ordonnées mais il peux y avoir des trous et c'est justement ces trous que je veux trouver et compléter
    j'envoie un exemple pour que ce soit clair une année à des trous l'autre pas.
    merci
    Fichiers attachés Fichiers attachés

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 97
    Par défaut
    Si la liste est ordonnée, le plus simple est de faire deux boucles imbriquées, l'une sur une année qui s'arrête dès la première cellule vide et l'autre sur les années qui s'arrête des la première colonne vide.

    Je proposerais une ébauche du genre (a modifier selon ton besoin)

    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
    Dim Compteur_Annees As Integer
    Dim Compteur_Heures As Long
    Dim DateCourante As Date
    Dim DateCourante_Str As String
     
    Compteur_Annees = 1
    Do
        Compteur_Heures = 1
        DateCourante = Cells(1, Compteur_Annees)
        Do While (Cells(Compteur_Heures + 1, Compteur_Annees) <> "")
            Compteur_Heures = Compteur_Heures + 1
            DateCourante = DateCourante + TimeValue("00:30:00")
            DateCourante_Str = DateCourante
            If (Cells(Compteur_Heures, Compteur_Annees) <> DateCourante_Str) Then
                Range(Cells(Compteur_Heures, Compteur_Annees), Cells(Rows.Count - 1, Compteur_Annees + 1)).Copy Cells(Compteur_Heures + 1, Compteur_Annees)
                Cells(Compteur_Heures, Compteur_Annees) = DateCourante
                Cells(Compteur_Heures, Compteur_Annees + 1).ClearContents
            End If
        Loop
        Compteur_Annees = Compteur_Annees + 2
    Loop While Cells(1, Compteur_Annees) <> ""
    Est-ce que ca t'avance ?

  5. #5
    Membre averti
    Inscrit en
    Août 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 22
    Par défaut re,
    super merci bien

  6. #6
    Membre averti
    Inscrit en
    Août 2010
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 22
    Par défaut question
    bonjour,


    j'ai un nouveau problème, j'ai la même serie de données mais les dates sont notés différemment ce n'est même pas un format date je ne sais pas comment changer ma macros (celle qu'il y aen dessus pour qu'elle trouve les trous).
    mon nouveau format est comme ceci: exemple 1976.10.15-02:00:00
    merci d'avance

Discussions similaires

  1. detecter les trous dans une serie entière
    Par Msysteme dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 09/12/2009, 09h07
  2. Réponses: 2
    Dernier message: 30/06/2008, 18h58
  3. Réponses: 5
    Dernier message: 23/05/2007, 11h43
  4. Réponses: 16
    Dernier message: 14/09/2006, 06h43
  5. [date] Recherche dans une plage de dates
    Par astro84 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/06/2005, 17h13

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