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 :

Créer 3 tables de données par extraction sur la feuille 1


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 32
    Par défaut Créer 3 tables de données par extraction sur la feuille 1
    bonjour
    je suis débutante en VBA et j'ai un petit problème de code.
    mon objectif est de créer à partir des informations de la "feuil1", 3 onglets qui contiennent chacun une partie des informations de la "feuil1" mais présenté autrement.
    je m'explique:

    dans la feuil1 j'ai un tableau qui comprends plusieurs champs mais je m'intéresse seulement à 5 champs qui sont:
    - name (on a plusieurs name différents)
    - seri
    - version
    - term
    - et percentB

    à partir de ce tableau je dois extraire 3 tables pour 3 "names" différents ( a, b et f par exemple). Pour chaque table je ne conserve pour chaque "seri" que les lignes avec la "version" la plus récente. De plus, j'aimerai que les lignes avec la même "seri" et la même "version" soit concatenées pour ne donner qu'une seule ligne contenant les valeurs des autres champs (les champs 3Y, 5Y, 7Y et 10Y).

    Mon code est ci-dessous. Le problème est que j'obtiens plusieurs lignes. à chaque qu'une cellule est renseigné mon pointeur se déplace a la ligne suivante. Du coup j'ai plus de lignes qu'il ne m'en faut.

    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
    50
    51
    52
    53
    54
    55
    56
    57
    Option Explicit
     
    Sub test()
     
        Dim SERIE, version, TERM, nom As String
        Dim val As Double
     
     
        Sheets("res_a").Select
        Range("A1").Select
     
        Sheets("feuil1").Select
        Range("a1").Select
     
            While ActiveCell.value <> ""
     
                If ActiveCell.value = "a" Then
                    nom = ActiveCell.value
                    SERIE = ActiveCell.Offset(0, 1).value
                    version = ActiveCell.Offset(0, 2).value
                    TERM = ActiveCell.Offset(0, 3).value
                    val = ActiveCell.Offset(0, 4).value
     
     
                Sheets("res_a").Select
                ActiveCell.Offset(1, 0).Select
                ActiveCell.value = nom
                ActiveCell.Offset(0, 1).value = SERIE
                ActiveCell.Offset(0, 2).value = version
     
                If TERM = "3Y" Then
                    ActiveCell.Offset(0, 3) = val * 10000
     
                ElseIf TERM = "5Y" Then
                    ActiveCell.Offset(0, 4) = val * 10000
     
                ElseIf TERM = "7Y" Then
                    ActiveCell.Offset(0, 5) = val * 10000
     
                Else
                    ActiveCell.Offset(0, 6) = val * 10000
     
                End If
                End If
     
                Sheets("feuil1").Select
     
                ActiveCell.Offset(1, 0).Select
     
            Wend
     
                ' Order by descending
               ' Call tri
     
        MsgBox (" Fin de l'execution ")
     
    End Sub


    Name Series Version Term percentB
    b 7 1 3Y
    b 7 1 10Y 1.64%
    a 7 1 7Y 1.30%
    a 7 1 10Y 1.63%
    c 7 1 5Y 0.64%
    c 7 1 10Y 1.40%
    f 7 1 10Y 4.43%
    f 7 2 5Y 4.99%
    f 7 2 10Y 4.43%
    b 11 1 3Y 0.66%
    b 11 1 5Y 1.14%
    b 11 1 7Y 1.47%
    b 11 1 10Y 1.68%
    f 11 1 3Y 5.14%
    f 11 1 5Y 4.09%
    f 11 1 7Y 4.32%
    f 11 1 10Y 4.36%
    a 11 1 3Y 0.81%
    a 11 1 5Y 1.11%
    a 11 1 7Y 1.36%
    a 11 1 10Y 1.53%
    a 7 2 3Y
    a 7 2 5Y 0.96%
    a 7 2 7Y 1.30%
    a 7 2 10Y 1.63%
    c 7 2 5Y 0.64%
    c 7 2 10Y 1.40%
    b 7 2 3Y
    b 7 2 10Y 1.64%
    f 11 2 3Y 5.14%
    f 11 2 5Y 4.09%
    f 11 2 7Y 4.32%
    f 11 2 10Y 4.36%
    f 7 3 5Y 4.99%
    f 7 3 10Y 4.43%
    f 7 4 5Y 4.99%
    f 7 4 10Y 4.43%
    f 7 5 5Y 4.99%
    f 7 5 10Y 4.43%
    b 15 1 3Y 1.66%
    b 15 1 5Y 1.97%
    b 15 1 7Y 2.11%
    b 15 1 10Y 2.20%
    a 15 1 3Y 1.03%
    a 15 1 5Y 1.31%
    a 15 1 7Y 1.45%
    a 15 1 10Y 1.55%
    f 15 1 3Y 3.66%
    f 15 1 5Y 4.60%
    f 15 1 7Y 4.92%
    f 15 1 10Y 5.02%


    resultat souhaité

    onglet: res_a

    name seri Version 3Y 5Y 7Y 10Y
    a 15 1 103 31 145 155
    a 11 1 81 111 136 153
    a 7 2 96 130 163

    resulta obtenue:

    name seri Version 3Y 5Y 7Y 10Y
    a 7 1 130
    a 7 1 163
    a 11 1 81
    a 11 1 111.2375201
    a 11 1 136.0920773
    a 11 1 152.9323278
    a 7 2 0
    a 7 2 96.26005998
    a 7 2 130.3477709
    a 7 2 162.8249332
    a 15 1 103.2113366
    a 15 1 130.5606504
    a 15 1 144.9299307
    a 15 1 154.5115675
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [MySQL] création d'une table de donnée par php
    Par j-cpierson dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 16/10/2009, 08h29
  2. Comptage de données par intervalle sur valeur supérieure
    Par Waylander44 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 20/11/2008, 20h30
  3. Réponses: 3
    Dernier message: 14/04/2008, 17h33
  4. sauvegarde liant des données par appui sur bouton
    Par Flavien44 dans le forum IHM
    Réponses: 2
    Dernier message: 11/06/2007, 18h20
  5. [C#/SQL Server 2005] Comment créer une base de donnée par le code ?
    Par FraktaL dans le forum Accès aux données
    Réponses: 4
    Dernier message: 09/09/2006, 17h27

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