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 :

Tableau Multidimensionnel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 99
    Par défaut Tableau Multidimensionnel
    Bonjour,
    Voici mon petit soucis,
    Je dispose d'un fichier excel composé comme ceci :

    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
    ligne 1 : 10h
    ligne 2 : 9h
    ligne 3 : 8h
    ligne 4 : date (ex:02/03/2010)
    ligne 5 : 10h
    ligne 6 : 9h
    ligne 7 : 8h
    ligne 8 : date (ex : 01/01/2010)
    ligne 9 : 10h
    ligne 10 : 9h
    ligne 11 : 8h
    ligne 12 : date (ex : 20/04/2010)
     
    ...
    ...
    Un groupe de 4 ligne représente donc 1 jour.
    Je souhaiterais pouvoir filtrer cette feuille excel dans l'ordre chornologique suivant les dates en "groupant" les 4 lignes, de façon à avoir dans le bon ordres les différentes entrées.
    L'exemple :
    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
    ligne 1 : 10h
    ligne 2 : 9h
    ligne 3 : 8h
    ligne 4 : date (ex:01/01/2010)
    ligne 5 : 10h
    ligne 6 : 9h
    ligne 7 : 8h
    ligne 8 : date (ex : 02/03/2010)
    ligne 9 : 10h
    ligne 10 : 9h
    ligne 11 : 8h
    ligne 12 : date (ex : 20/04/2010)
     
    ...
    ...
    Je ne vois pas comment faire...
    Merci d'avance

  2. #2
    Membre émérite Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Par défaut
    bonjour iperkut,

    cet macro met les dates en colonne B vis à vis chaque heure, tu pourras par la suite trier la colonne A:B par ordre croissant sur la clé colonne B.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Macro1()
    'en supposant que le tableau commence à la ligne 1
    Set dt = Range("A4")
    For i = 1 To Range("A65536").End(xlUp).Row Step 4
            Range("B" & i ) = dt
            Range("B" & i + 1) = dt
            Range("B" & i + 2) = dt
      Set dt = Range("A" & i + 7)
    Next
    End Sub

  3. #3
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir à vous,
    J'avais le même genre d'idée, en supprimant ensuite la col B
    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
    Sub test()
    Dim x As Integer, valdate As Integer, derlg As Integer
    derlg = Range("a" & Rows.Count).End(xlUp).Row
    valdate = 0
    For valdate = derlg To 4 Step -4
    For x = 1 To 3
    Range("b" & valdate - x) = Range("a" & valdate)
    Next x
    Range("b" & valdate) = Range("a" & valdate)
    Next valdate
    Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("B1:B" & derlg) _
       , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    Worksheets("Feuil1").Sort.SetRange Range("A1:B" & derlg)
    Range("B1:B" & derlg).ClearContents
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/12/2005, 14h41
  2. Réponses: 2
    Dernier message: 27/11/2005, 23h36
  3. Nombre de dimensions d'un tableau multidimensionnel
    Par Bruno75 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 08/07/2005, 10h03
  4. type de donnée tableau multidimensionnel
    Par opheliegomes dans le forum Débuter
    Réponses: 2
    Dernier message: 03/02/2005, 12h29
  5. [langage] tableau multidimensionnel
    Par totox17 dans le forum Langage
    Réponses: 3
    Dernier message: 03/12/2002, 15h58

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