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 :

réorganiser et analyses de données aprés extraction


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Par défaut réorganiser et analyses de données aprés extraction
    Bonjour à tous,

    Je suis nouveau sur ce site et je souhaite votre aide concernant un fichier. Je m'explique, après extraction de données je souhaiterais réorganiser et trier toutes les données selon mon envie et aussi analyser ces données. J'ai réussi à le faire en mode "enregistrer macro" cependant si je fais tous en mode "Enregistrer macro" Excel me dis que la macro est trop grande. donc avez vous une solution. je vous joint le fichier excel correspondant et vous verrez par vous même. voila ce que je souhaite faire:

    Les étapes :

    1er étape : Après extraction des données via un logiciel voila ce que j’obtiens (voir feuille Bases) ensuite je mets en place un filtre le long de la ligne A1. Ensuite concernant la colonne « Sigma » je mets un critère qui est « Sigma est inférieur à 1 » et pour la colonne mesures je mets une condition qui est « Mesures supérieur à 10 » et j’effectue un tri par ordre alphabétique de A à Z pour la colonne « Types ».

    2ieme étapes : Je fais « Copier » les colonnes « Lignes », « Machine », « Moyenne », « Sigma », « Nb Mesures », « Types » de la feuille « Bases » puis je fais « Coller » dans la feuille « Synthèse » en débutant de la cellule A1. Une fois cela fait je mets un filtre sur la ligne 1.

    3ieme étape : Je crée un tableau croisé dynamique en le plaçant dans la cellule H3 à partir de l’étape 2. Donc dans la case « Étiquettes de lignes » j’ai mis « Types » et « Machine » a noter que « Types » doit se trouver avant « Machine » et en « Somme valeur » la case qui se trouve à droite j’ai mis « Moyenne » et j’ai ensuite modifier le paramètre champ pour le mettre en « Nombre de moyenne » . La colonne « Nb de moyenne » du tableau croisé dynamique j’ai mis une condition qui est « Nb de moyenne supérieur à 15 donc en vert ». Ce qui me permettra d’établir des classes.

    4ieme étape : Une fois le tableau croisé dynamique établi j’ai recopié la colonne « Étiquettes de ligne » et « Nombre de moyenne » à coter du tableau croisé dynamique en faisant dans la cellule J3 « =H3 » et dans la cellule K3 « =I3 » puis je tiré pour obtenir la mm forme que le tableau croisé dynamique. Cela va me permettre de calculer les classes pour chaque type de machine du tableau croisé dynamique en prenant en compte le nb de moyenne. Pour avoir mes classes j’ai fais la fonction « Racine » donc en L4 j’ai fais « =RACINE(K4) » ou K correspond à la colonne « Nb de moyenne ».

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonsoir,
    Je crois que lasolution est dans ton message d'erreur ...divise ton projet en une sucession de petite tâches que tu materialise en autant de procédure ... reviens ensuite vers nousen creant une discussion différentes pour chacun de tes problèmes

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Par défaut
    Bonsoir Bbil,

    Voila ce que j'ai fais, je l'ai fais pour une machine cependant comment faire pour que cela se repete mais pour toutes les autres nom de machines.

    Ci joint le fichier excel avec la macro, si vous activez la macro vous verrez peut être mieux ce que je souhaitais faire.

    Merci d'avance pour votre aide

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonsoir,
    J'evite de télécharger des fichiers inconnus.. poste une petite partie de ton code entre balise histoire de voir comment tu traite tes fichiers

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Par dé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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    Option Explicit
     
    Sub test()
    '
    ' test Macro
    '
     
    '
        Range("A1:K1").Select
        Selection.AutoFilter
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 65535
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        ActiveSheet.Range("$A$1:$K$3892").AutoFilter Field:=7, Criteria1:="<1", _
            Operator:=xlAnd
        ActiveSheet.Range("$A$1:$K$3892").AutoFilter Field:=10, Criteria1:=">10", _
            Operator:=xlAnd
        Columns("K:K").Select
        ActiveWorkbook.Worksheets("Bases").AutoFilter.Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Bases").AutoFilter.Sort.SortFields.Add Key:=Range( _
            "K1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortNormal
        With ActiveWorkbook.Worksheets("Bases").AutoFilter.Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        Range("A1").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        Sheets("Synthèse").Select
        Range("A1").Select
        ActiveSheet.Paste
        Sheets("Bases").Select
        ActiveWindow.ScrollRow = 1
        Range("C1").Select
        Range(Selection, Selection.End(xlDown)).Select
        Application.CutCopyMode = False
        Selection.Copy
        ActiveWindow.SmallScroll Down:=1
        Sheets("Synthèse").Select
        Range("B1").Select
        ActiveSheet.Paste
        Sheets("Bases").Select
        ActiveWindow.ScrollRow = 3074
        ActiveWindow.ScrollRow = 3048
        ActiveWindow.ScrollRow = 2971
        ActiveWindow.ScrollRow = 2815
        ActiveWindow.ScrollRow = 2550
        ActiveWindow.ScrollRow = 2207
        ActiveWindow.ScrollRow = 1819
        ActiveWindow.ScrollRow = 1088
        ActiveWindow.ScrollRow = 823
        ActiveWindow.ScrollRow = 486
        ActiveWindow.ScrollRow = 324
        ActiveWindow.ScrollRow = 214
        ActiveWindow.ScrollRow = 137
        ActiveWindow.ScrollRow = 111
        ActiveWindow.ScrollRow = 98
        ActiveWindow.ScrollRow = 53
        ActiveWindow.ScrollRow = 20
        ActiveWindow.ScrollRow = 1
        Range("F1:G1").Select
        Range(Selection, Selection.End(xlDown)).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Synthèse").Select
        Range("C1").Select
        ActiveSheet.Paste
        Sheets("Bases").Select
        ActiveWindow.ScrollRow = 3080
        ActiveWindow.ScrollRow = 3067
        ActiveWindow.ScrollRow = 3054
        ActiveWindow.ScrollRow = 3028
        ActiveWindow.ScrollRow = 2950
        ActiveWindow.ScrollRow = 2821
        ActiveWindow.ScrollRow = 2679
        ActiveWindow.ScrollRow = 2472
        ActiveWindow.ScrollRow = 2336
        ActiveWindow.ScrollRow = 2161
        ActiveWindow.ScrollRow = 2077
        ActiveWindow.ScrollRow = 1987
        ActiveWindow.ScrollRow = 1915
        ActiveWindow.ScrollRow = 1844
        ActiveWindow.ScrollRow = 1773
        ActiveWindow.ScrollRow = 1708
        ActiveWindow.ScrollRow = 1624
        ActiveWindow.ScrollRow = 1553
        ActiveWindow.ScrollRow = 1463
        ActiveWindow.ScrollRow = 1327
        ActiveWindow.ScrollRow = 1243
        ActiveWindow.ScrollRow = 1172
        ActiveWindow.ScrollRow = 1113
        ActiveWindow.ScrollRow = 1042
        ActiveWindow.ScrollRow = 978
        ActiveWindow.ScrollRow = 913
        ActiveWindow.ScrollRow = 861
        ActiveWindow.ScrollRow = 797
        ActiveWindow.ScrollRow = 719
        ActiveWindow.ScrollRow = 648
        ActiveWindow.ScrollRow = 590
        ActiveWindow.ScrollRow = 525
        ActiveWindow.ScrollRow = 447
        ActiveWindow.ScrollRow = 421
        ActiveWindow.ScrollRow = 299
        ActiveWindow.ScrollRow = 260
        ActiveWindow.ScrollRow = 214
        ActiveWindow.ScrollRow = 124
        ActiveWindow.ScrollRow = 98
        ActiveWindow.ScrollRow = 79
        ActiveWindow.ScrollRow = 40
        ActiveWindow.ScrollRow = 7
        ActiveWindow.ScrollRow = 1
        Range("J1:K1").Select
        Range(Selection, Selection.End(xlDown)).Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets("Synthèse").Select
        Range("E1").Select
        ActiveSheet.Paste
        Range("A1:F1").Select
        Application.CutCopyMode = False
        Selection.AutoFilter
        Range("H1").Select
        ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
            "Synthèse!R1C1:R2004C6", Version:=xlPivotTableVersion12).CreatePivotTable _
            TableDestination:="Synthèse!R1C8", TableName:="Tableau croisé dynamique1", _
            DefaultVersion:=xlPivotTableVersion12
        Sheets("Synthèse").Select
        Cells(1, 8).Select
        ActiveWindow.ScrollRow = 1965
        ActiveWindow.ScrollRow = 1945
        ActiveWindow.ScrollRow = 1915
        ActiveWindow.ScrollRow = 1882
        ActiveWindow.ScrollRow = 1845
        ActiveWindow.ScrollRow = 1785
        ActiveWindow.ScrollRow = 1695
        ActiveWindow.ScrollRow = 1602
        ActiveWindow.ScrollRow = 1485
        ActiveWindow.ScrollRow = 1381
        ActiveWindow.ScrollRow = 1278
        ActiveWindow.ScrollRow = 1181
        ActiveWindow.ScrollRow = 1078
        ActiveWindow.ScrollRow = 975
        ActiveWindow.ScrollRow = 878
        ActiveWindow.ScrollRow = 805
        ActiveWindow.ScrollRow = 758
        ActiveWindow.ScrollRow = 721
        ActiveWindow.ScrollRow = 675
        ActiveWindow.ScrollRow = 615
        ActiveWindow.ScrollRow = 538
        ActiveWindow.ScrollRow = 471
        ActiveWindow.ScrollRow = 418
        ActiveWindow.ScrollRow = 374
        ActiveWindow.ScrollRow = 344
        ActiveWindow.ScrollRow = 311
        ActiveWindow.ScrollRow = 284
        ActiveWindow.ScrollRow = 258
        ActiveWindow.ScrollRow = 178
        ActiveWindow.ScrollRow = 88
        ActiveWindow.ScrollRow = 68
        ActiveWindow.ScrollRow = 48
        ActiveWindow.ScrollRow = 24
        ActiveWindow.ScrollRow = 1
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Types")
            .Orientation = xlRowField
            .Position = 1
        End With
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Machine" _
            )
            .Orientation = xlRowField
            .Position = 2
        End With
        ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
            PivotTables("Tableau croisé dynamique1").PivotFields("Moyenne"), _
            "Somme de Moyenne", xlSum
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "Somme de Moyenne")
            .Caption = "Nombre de Moyenne"
            .Function = xlCount
        End With
        Columns("I:I").Select
        Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
            Formula1:="=15"
        Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        With Selection.FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 5287936
            .TintAndShade = 0
        End With
        Selection.FormatConditions(1).StopIfTrue = False
        Range("J1").Select
        ActiveCell.FormulaR1C1 = "=RC[-2]"
        Range("K1").Select
        ActiveCell.FormulaR1C1 = "=RC[-2]"
        Range("J2").Select
        ActiveCell.FormulaR1C1 = "=RC[-2]"
        Range("K2").Select
        ActiveCell.FormulaR1C1 = "=RC[-2]"
        Columns("J:K").Select
        Columns("J:K").EntireColumn.AutoFit
        Range("J2:K2").Select
        Selection.AutoFill Destination:=Range("J2:K140"), Type:=xlFillDefault
        Range("J2:K140").Select
        ActiveWindow.ScrollRow = 108
        ActiveWindow.ScrollRow = 104
        ActiveWindow.ScrollRow = 101
        ActiveWindow.ScrollRow = 98
        ActiveWindow.ScrollRow = 94
        ActiveWindow.ScrollRow = 91
        ActiveWindow.ScrollRow = 88
        ActiveWindow.ScrollRow = 84
        ActiveWindow.ScrollRow = 81
        ActiveWindow.ScrollRow = 74
        ActiveWindow.ScrollRow = 71
        ActiveWindow.ScrollRow = 64
        ActiveWindow.ScrollRow = 58
        ActiveWindow.ScrollRow = 51
        ActiveWindow.ScrollRow = 48
        ActiveWindow.ScrollRow = 38
        ActiveWindow.ScrollRow = 34
        ActiveWindow.ScrollRow = 28
        ActiveWindow.ScrollRow = 24
        ActiveWindow.ScrollRow = 18
        ActiveWindow.ScrollRow = 14
        ActiveWindow.ScrollRow = 11
        ActiveWindow.ScrollRow = 8
        ActiveWindow.ScrollRow = 4
        ActiveWindow.ScrollRow = 1
        Range("L1").Select
        ActiveCell.FormulaR1C1 = "Racine²"
        Range("L2").Select
        ActiveCell.FormulaR1C1 = "=SQRT(RC[-1])"
        Range("L2").Select
        Selection.AutoFill Destination:=Range("L2:L140"), Type:=xlFillDefault
        Range("L2:L140").Select
        Selection.NumberFormat = "0.0000000"
        Selection.NumberFormat = "0.000000"
        Selection.NumberFormat = "0.00000"
        Selection.NumberFormat = "0.0000"
        Selection.NumberFormat = "0.000"
        Selection.NumberFormat = "0.00"
        Selection.NumberFormat = "0.0"
        Selection.NumberFormat = "0"
        Range("N1").Select
        ActiveCell.FormulaR1C1 = "1"
        Range("N1:O1").Select
        With Selection
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlBottom
            .WrapText = False
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
            .MergeCells = False
        End With
        Selection.Merge
        ActiveWindow.ScrollColumn = 3
        Selection.AutoFill Destination:=Range("N1:BU1"), Type:=xlFillDefault
        Range("N1:BU1").Select
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 65535
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        ActiveWindow.ScrollColumn = 8
        ActiveWindow.ScrollColumn = 7
        ActiveWindow.ScrollColumn = 6
        ActiveWindow.ScrollColumn = 5
        ActiveWindow.ScrollColumn = 4
        ActiveWindow.ScrollColumn = 3
        ActiveWindow.ScrollColumn = 1
        Sheets("Bases").Select
        ActiveWindow.ScrollRow = 3080
        ActiveWindow.ScrollRow = 3060
        ActiveWindow.ScrollRow = 3041
        ActiveWindow.ScrollRow = 3008
        ActiveWindow.ScrollRow = 2911
        ActiveWindow.ScrollRow = 2788
        ActiveWindow.ScrollRow = 2640
        ActiveWindow.ScrollRow = 2413
        ActiveWindow.ScrollRow = 2239
        ActiveWindow.ScrollRow = 2103
        ActiveWindow.ScrollRow = 1974
        ActiveWindow.ScrollRow = 1864
        ActiveWindow.ScrollRow = 1754
        ActiveWindow.ScrollRow = 1650
        ActiveWindow.ScrollRow = 1534
        ActiveWindow.ScrollRow = 1424
        ActiveWindow.ScrollRow = 1314
        ActiveWindow.ScrollRow = 1210
        ActiveWindow.ScrollRow = 1133
        ActiveWindow.ScrollRow = 1068
        ActiveWindow.ScrollRow = 1029
        ActiveWindow.ScrollRow = 952
        ActiveWindow.ScrollRow = 913
        ActiveWindow.ScrollRow = 803
        ActiveWindow.ScrollRow = 719
        ActiveWindow.ScrollRow = 674
        ActiveWindow.ScrollRow = 583
        ActiveWindow.ScrollRow = 486
        ActiveWindow.ScrollRow = 441
        ActiveWindow.ScrollRow = 363
        ActiveWindow.ScrollRow = 318
        ActiveWindow.ScrollRow = 286
        ActiveWindow.ScrollRow = 227
        ActiveWindow.ScrollRow = 195
        ActiveWindow.ScrollRow = 124
        ActiveWindow.ScrollRow = 98
        ActiveWindow.ScrollRow = 66
        ActiveWindow.ScrollRow = 40
        ActiveWindow.ScrollRow = 1
        ActiveSheet.Range("$A$1:$K$3892").AutoFilter Field:=11, Criteria1:="AL"
        ActiveSheet.Range("$A$1:$K$3892").AutoFilter Field:=3, Criteria1:= _
            "LAPOINTE N° 52218"
        Columns("F:F").Select
        ActiveWorkbook.Worksheets("Bases").AutoFilter.Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Bases").AutoFilter.Sort.SortFields.Add Key:=Range( _
            "F1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortNormal
        With ActiveWorkbook.Worksheets("Bases").AutoFilter.Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        Range("F2:G17").Select
        ActiveSheet.Range("$F$1:$G$17").RemoveDuplicates Columns:=Array(1, 2), Header _
            :=xlYes
        Selection.Copy
        Sheets("Sigma").Select
        Range("B3").Select
        ActiveSheet.Paste
        Sheets("Synthèse").Select
    End Sub

    Je l'ai fais en mode enregistrement macro.

    Help meeee please !!!

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/10/2007, 13h48
  2. Réponses: 5
    Dernier message: 17/09/2007, 17h01
  3. Réponses: 2
    Dernier message: 21/04/2007, 20h19
  4. Récupérer ses données après formatage
    Par Sékiltoyai dans le forum Composants
    Réponses: 7
    Dernier message: 21/04/2007, 18h01
  5. [TComPort] Analyse des données reçues avec ReadStr
    Par chourmo dans le forum Langage
    Réponses: 4
    Dernier message: 22/06/2005, 14h12

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