[Résolu] Réorganisation et simplification d'un Tableau de données.

Franckxxx

XLDnaute Junior
Bonjour à tous,

Je cherche à simplifier un ancien tableau de base données pour pouvoir en faire une analyse plus simple et l'uniformiser à d'autres fichiers.

Lorsqu'il a été créé il prenais en compte chaque lots V sous différentes colonnes avec leur couts et quantités associés. J'aimerais uniformiser les lots V sous les mêmes colonnes. J'ai illustré ce que j'essaye d'atteindre dans les fichier Excel associé, je tente de transformer la feuille1 en feuille2.

Le tableau réel fait 61 colonnes et possède beaucoup de lignes (>1000) dont le nombre varie car des lignes sont ajoutées régulièrement.

J'avais commencé par effectuer des copier/coller en effectuant des filtres mais la colonne V s’avère difficile a remplir (je n'arrive pas a utiliser l'outil rechercher/remplacer sur une seule colonne) et je risque de perdre des données si elles sont rajoutées après en effectuant ses opérations.

Si quelqu'un a une idée pour résoudre ce problème, je suis preneur..
Merci à vous! :)
 

Pièces jointes

  • Classeur1.xls
    33 KB · Affichages: 35
  • Classeur1.xls
    33 KB · Affichages: 46
  • Classeur1.xls
    33 KB · Affichages: 49
Dernière édition:

Paf

XLDnaute Barbatruc
Re : Réorganisation et simplification d'un Tableau de données.

Bonjour Franckxxx et bonjour pierrejean

Une version un peu différente:

Code:
Sub Franckxxx()
Dim DerLig As Long, TablIni, TablFin(), i, x, z, j

Worksheets("Feuil1").Range("A1").CurrentRegion.Copy Worksheets("Feuil3").Range("A1")

    DerLig = Worksheets("Feuil3").Range("A" & Rows.Count).End(xlUp).Row
    TablIni = Worksheets("Feuil3").Range("D2:O" & DerLig)
    z = 0: x = 0

    For i = LBound(TablIni) To UBound(TablIni)
        x = x + 1
        ReDim Preserve TablFin(1 To 3, 1 To x)
        For j = 1 To 10 Step 3
            z = z + 1
            If TablIni(i, j + 2) = "OUI" Then
                TablFin(1, x) = z
                TablFin(2, x) = TablIni(i, j)
                TablFin(3, x) = TablIni(i, j + 1)
                Exit For
            End If
        Next
        z = 0
    Next
                
   Worksheets("Feuil3").Range("D2").Resize(UBound(TablFin, 2), UBound(TablFin, 1)) = Application.Transpose(TablFin)
   Worksheets("Feuil3").Columns("G:O").Delete Shift:=xlToLeft
   Worksheets("Feuil3").Range("D1:F1") = Array("V", "COUT V", "QUT V")

End Sub

A+
 

Franckxxx

XLDnaute Junior
Re : Réorganisation et simplification d'un Tableau de données.

Bonjour pierrejean, bonjour Paf,

J'ai adapté les codes au fichier original et tout fonctionne parfaitement (même si j'ai mit un bout de temps a comprendre comment :p).
Je n'ai pas aperçus de cas particuliers impliquant des erreurs.

Merci énormément pour l'aide et l'apprentissage que vous m'apportez!
Bonne soirée!! :)
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 079
Membres
103 455
dernier inscrit
saramachado