Transformer "listing" en base de données exploitable

titiborregan5

XLDnaute Accro
Bonjour à tous,

je rencontre un petit souci sur une extraction que je n'arrive pas à exploiter.

Mon logiciel de gestion permet de choisir un ou des type(s) d'axes (Activités & ressources) et le code de l'axe qui va avec pour un "EJ".

Du coup lorsque je fais mon extraction il me renvoie en "listing" (autant de lignes que de types et codes différents) le détail de l'EJ.

Or, je le souhaiterais au format base de données qui me permettrait de pouvoir en faire un TCD ensuite, car en l'état actuel il me somme les lignes alors que c'est une répartition faite sur 2 axes!

Un bon fichier valant mieux qu'un long discours j'ai fait un petit fichier exemple de quelques lignes, le réel s'approchant des 15000 lignes!

Merci d'avance pour votre aide!
Je ne sais pas comment faire ce retravail de la base via formules/filtres élaborés, mix de 2 bases ou macro...

Tibo
 

Pièces jointes

  • Exemple transfo bdd.xls
    18.5 KB · Affichages: 40
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Transformer "listing" en base de données exploitable

Bonjour Tibo, CHALET53,

On en était tout de même un peu réduit à essayer de comprendre dans quel cas on devait recopier ... ou pas ... et quoi!? À regarder en diagonale le code de CHALET53, je doute encore un peu plus :confused:

Pas recopié la dernière ligne qui -dans ce que j'avais compris- ne devait pas l'être

... Tu nous en diras plus, si aucune des propositions n'est correcte :rolleyes:

Ajoute une feuille "Feuil1" à ton classeur, place le code suivant dans un Module standard ... et essaie!
VB:
Sub listing()
Dim x As Long
Dim tablo()
With Sheets("Rapport 1")
    For Each c In Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(xlUp))
        If c = "ACTIVI" Then
            codeAct = c.Offset(0, 1)
            ligne = 1
            Do While c.Offset(ligne, 0) = "RESSOU"
                ReDim Preserve tablo(3, x)
                tablo(0, x) = .Cells(c.Offset(ligne, 0).Row, 1).Value
                tablo(1, x) = codeAct
                tablo(2, x) = .Cells(c.Offset(ligne, 0).Row, 3).Value
                tablo(3, x) = .Cells(c.Offset(ligne, 0).Row, 4).Value
                ligne = ligne + 1
                x = x + 1
            Loop
        End If
    Next c
End With
With Sheets("Feuil1")
    .Cells(2, 1).Resize(x, 4) = Application.Transpose(tablo)
End With
End Sub
 

titiborregan5

XLDnaute Accro
Re : Transformer "listing" en base de données exploitable

Hello les bricolos ;)!!!!
merci pour vos retours!!! je suis désolé si je n'ai pas été clair! c'est vous comment lorsqu'on expose son problème on croit que tout est logique!!! encore désolé!

J'ai bricolé également et en fait le but était vraiment d'obtenir le format "base de données" pour faire un TCD exploitable!

Bizarrement, j'ai fait ça en très peu de lignes :
VB:
Sub t()
    For i = 2 To Range("a1").End(xlDown).Row
        If Cells(i, 1) = Cells(i - 1, 1) And Cells(i, 2) = "RESSOU" Then
        x = Application.Match(Cells(i, 1), Range("a:a"), 0)
        Cells(i, 4) = Cells(x, 3)
        Cells(x, 6) = "non"
        End If
    Next
End Sub

j'ai résonné un peu à l'inverse et la base est (très) légèrement différente mais pas tant!!!

Là où je bloquais c'était pour les EJ avec plus de 2 lignes!!!

Je ne vous embête pas plus, je garde vos solutions sous le coude car elles fonctionnent et on ne sait jamais pour la mienne qui m'a l'air un peu bancale tout de même!, et vous remercie encore une fois!!!!

A+
 

titiborregan5

XLDnaute Accro
Re : Transformer "listing" en base de données exploitable

Re,

Eh ben, maintenant, je comprends encore moins ;)
Arf ... désolé :rolleyes:
Quel rapport avec l'étape 2 (ou 3) de ton premier fichier :confused:

... Enfin, si tu as trouvé ton bonheur, tant mieux!
L'étape 1 est pour transformer la base pour pouvoir en faire un TCD sur 2 axes sans doubler les montants
et l'étape 2 c'est la finalité, c'est à dire le TCD, qui était là juste pour illustrer mes propos! Visiblement ça n'a pas marché (rires)!!!

Du coup il me fallait recréer des lignes avec les 2 types (activité et ressource) sur la même ligne et non sur 2 différentes.
On a plusieurs lignes quand on a 2 codes ressources pour 1 même activité...

Bref j'ai l'impression que plus j'en dis moins je suis clair!!!

En gros plus je pédale moins fort, et moins j'avance plus vite!!!
Modeste, plus t'as de gruyère plus t'as de trous, ok? mais plus t'as de trous, moins t'as gruyère en fait? ;)

Merci encore!
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 299
Messages
2 086 989
Membres
103 420
dernier inscrit
abdel665