[RESOLU] Recopier dans un tableau suivant critaire de tries

LORDDD

XLDnaute Occasionnel
Bonjour à vous tous,

Je tente d'effectuer mise en forme d'une liste de donnée vers un tableau.

Dans l'idée :

La base de donnée est sous forme de liste

3 critaires pour remplir le tableau
1 la date
2 code REV
3 Code Pur

Voici le code que j'ai commencé à écrire

Code:
Sub Copy()
Dim cel1 As String
Dim cel2 As String
Dim cel3 As String
Dim i As Integer
Dim ii As Integer
Dim iii As Integer
Dim iiii As Integer
Dim iiiii As Integer
Dim Date1 As String
Dim Date2 As String
Dim Rev1 As String
Dim Rev2 As String
Dim Pur1 As String
Dim Pur2 As String
Dim Som As Single

For i = 0 To 731 'compteur date tableau cbres par ligne
Date2 = Worksheets("CBRES").Cells(ii + 4, 1) 'ligne variable 1ere clonne
        For ii = 0 To 731 'compteur date tableau Base par ligne
        Date1 = Worksheets("Base").Cells(ii + 4, 22) 'ligne variable 1ere clonne
        Rev1 = Worksheets("Base").Cells(ii + 4, 23) 'ligne variable 1ere clonne
        Pur1 = Worksheets("Base").Cells(ii + 4, 24) 'ligne variable 1ere clonne        
        If Date1 = Date2 Then 'Controle la date
        
            For iii = 0 To 127 'compteur Rev tableau cbre par collone
            Rev2 = Worksheets("cbres").Cells(2, iii + 2) 'ligne 2 colonne variable
            
            If Rev1 = Rev2 Then 'controle du Rev
        
                For iiii = 0 To 127 'compteur Pur tableau cbre par collone
                Pur2 = Worksheets("cbres").Cells(3, iiii + 2) 'ligne 3 colonne variable
                
                If Pur1 = Pur2 Then 'controle du pur
           
                Som = Worksheets("Base").Cells(ii + 4, 25) 'ligne variable 1ere clonne
                End If
                Next iiii
    Worksheets("cbres").Cells(ii + 4, iiii + 2) = Som        
    
            End If
            Next iii      
      End If
      Next ii      
      
Next i   
End Sub

Mais cela ne donne rien de bon, si quelqu'un passe par la, j'accepte votre aide.
Un grand merci pour votre savoir et aide.
Dossier excel joint
 

Pièces jointes

  • Extracteur v1.zip
    224.7 KB · Affichages: 39
Dernière édition:

LORDDD

XLDnaute Occasionnel
Re : Recopier dans un tableau suivant critaire de tries

Merci pour ta réponse, mais le tableau doit contenir tous les segments et tout les sous segments meme si pas de valeur sous un format figé, car de ce tableau de mise en forme découlerons d'autres tableaux d'analyses

Le tcd et trop aléatoire.

Merci pour cette piste

A ce jour mon tableau existe avec des formules sous format somprod, mais il me faut plus de 15 minutes à chaque calcul, dont le but d'automatisé en VBA.

:eek:
 
Dernière édition:

LORDDD

XLDnaute Occasionnel
Re : Recopier dans un tableau suivant critaire de tries

Bon je pense que j etais partis à l'envers au niveau de la reflexion.

Voici mon nouveau code par contre le travail dure très longtemps plus de 10 minutes je pense que le code peu etre amélioré je vous laisse regarder si vous avez des idées :

Code:
Sub Copy()
Dim i As Integer
Dim ii As Integer
Dim iii As Integer
Dim iiii As Integer
Dim iiiii As Integer
Dim Date1 As String
Dim Date2 As String
Dim Rev1 As String
Dim Rev2 As String
Dim Pur1 As String
Dim Pur2 As String
Dim Som As Single
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For i = 0 To 19000
Date1 = Worksheets("Cbres").Cells(i + 4, 1)
    For ii = 0 To 126
    Rev1 = Worksheets("Cbres").Cells(2, ii + 2)
    Pur1 = Worksheets("Cbres").Cells(3, ii + 2)
    Som = 0
        For iii = 0 To 1000
        Date2 = Worksheets("base").Cells(iii + 2, 22)
        Rev2 = Worksheets("base").Cells(iii + 2, 23)
        Pur2 = Worksheets("base").Cells(iii + 2, 24)
        
        
        
        If Date1 = Date2 Then
            If Rev1 = Rev2 Then
        
                If Pur1 = Pur2 Then
                    Som = Worksheets("BASE").Cells(iii + 2, 25)
                End If
                End If
                End If
                
            Worksheets("CBRES").Cells(i + 4, ii + 2) = Som
            
            Next iii
            
            Next ii
            
            Next i
 Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
    
End Sub

Merci d'avance de l'attention que vous y porterais
 

LORDDD

XLDnaute Occasionnel
Re : Recopier dans un tableau suivant critaire de tries

Speel,

Merci pour le super boulot que tu as fait.

Malgré les éléments qui te manquais, tu à cerné mon probleme, et tu y a trouvé une solution.

Si j'ai bien compris le principe :
Tu prends les donnée de la F base, tu en fait un traitement pour les mettre en forme suivant les date et les labels qui s y trouvent.
Ensuite tu vas recopier dans la feuille Cbre les donnée trouvées, ne sont présent que les labels trouvés sur la feuille base, et les dates présente.

Ce tableau sera changeant chaque fois que les donées de la F base evolueront.

De ce fait si je souhaite avoir un tableau fixe avec mes 126 labels et 365 jour ou plus, il me faut retraiter le tableau que tu viens de copier dans la F cbres.

Je sais que c est peut etre trop demandé mais peux tu me donner des infos sur le code que tu as écrit, de facons à pouvoir l'adapter ou le mettre à ma sauce (lol), travaillant sur des données que je dois mettre à jour régulièrement, le fait de comprendre un code, m'évite d'ennuyer quelqu'un chaque fois...

car losque que je rentre tous mes element sur ma base de donnée (F base) soit a aujourd'hui 5771 lignes, j'ai une erreur d'execution '9' --- l'indice n'apartient pas à la selection :

Code:
 TabGen(lig, col) = TabGen(lig, col) + c.Offset(, 3)

Merci pour ta patience et ton aide.
 
Dernière édition:

Speel

XLDnaute Occasionnel
Re : Recopier dans un tableau suivant critaire de tries

bonsoir,
En principe tu peux mettre n'importe quelle taille de données dans la F "Base" ( colonne de A à S ) ça se met a jour automatiquement. D’ailleurs essais avec la base du premier fichier de ton premier post.
Le tableau de la F "Cbres" reprend l'ensemble des données filtrées avec les totaux en colonne DY et l'autre tableau de EB à FD s'actualise également.
Je n'ai pas compris à quoi servaient les colonnes AA AB et AC de la F "Base". précision je ne me sert pas des colonnes V W X et Y , je les ai laissées mais j'aurai pu les supprimer.
 

LORDDD

XLDnaute Occasionnel
Re : Recopier dans un tableau suivant critaire de tries

Je viens de refaire un test et j'ai tjs le meme code erreur.

Pour les colones AA AB AC ce sont des element a extraire aussi dans 3 autre tableaux comme la f Cbre.

Oui les colonne V W X Y etait utile dans ma methode à moi (lol) elles mettaient en forme mon code à l'identique de mon code dans le tableau F Cbre (logique du sommeprod)

Par contre pet tu me dire dans le cas ou ce glisse un code non ref dans la feuille Para que se passe t il.
 

Speel

XLDnaute Occasionnel
Re : Recopier dans un tableau suivant critaire de tries

Je viens de refaire un test et j'ai tjs le meme code erreur.

mettre : Dim TabTotal() As Long

Pour les colones AA AB AC ce sont des element a extraire aussi dans 3 autre tableaux comme la f Cbre.

donc ça devrai pouvoir se faire comme pour la première partie , mais je n'ai vu que 2 tableau dans F "Cbre"

Oui les colonne V W X Y etait utile dans ma methode à moi (lol) elles mettaient en forme mon code à l'identique de mon code dans le tableau F Cbre (logique du sommeprod)

donc elles servent plus

Par contre pet tu me dire dans le cas ou ce glisse un code non ref dans la feuille Para que se passe t il.

dans se cas en principe les lignes 2 et 3 de la F "Cbre" ne seront pas renseignées < non j'ai vérifié
les lignes 2 et 3 sont renseignées par contre la ligne 1 n'aura pas de valeur puisque n'existant pas de la F "Para"
mais ça peut se régler :)
 
Dernière édition:

LORDDD

XLDnaute Occasionnel
Re : Recopier dans un tableau suivant critaire de tries

mettre : Dim TabTotal() As Long

Toujour meme erreur apres avoir changer la déclaration ci dessus

donc ça devrai pouvoir se faire comme pour la première partie , mais je n'ai vu que 2 tableau dans F "Cbre"
Oui pour aléger le tableau j'avais enlever les autres feuille qui se présente à l'indentique de la F Cbre

donc elles servent plus
non plus avec ton travail

dans se cas en principe les lignes 2 et 3 de la F "Cbre" ne seront pas renseigné
A voir quand j'aurais plus le bug
 
Dernière édition:

LORDDD

XLDnaute Occasionnel
Re : Recopier dans un tableau suivant critaire de tries

Ok je te souhaite un bon dimanche et merci de ton aide,

Je regarde de faire deux ou trois modif sur mon tableur, pour voir si nous avons la meme logique pour arriver à mon resultats...

Bonne nuit
 

Discussions similaires

Statistiques des forums

Discussions
312 163
Messages
2 085 860
Membres
103 005
dernier inscrit
gilles.hery