supprimer arborescence tableau suite export

nickos2406

XLDnaute Junior
bonjour,

je vous contacte car je fais face à un soucis de mise en page d'un tableau de données que je récupère d'une extraction d'un logiciel...

Pour tout export, le tableau exporté est toujours hiérarchisé en sorte d'arborescence, à l'image de l'exemple ci-joint.

Le problème c'est que pour de l'analyse, c'est impossible de pouvoir faire quoi que ce soit, comme la hiérarchie des données est fonction du nombre d'espace devant l'intitulé du mot...

Du coup, je cherche un moyen pour identifier les différents niveaux (niveau 1, niveau 2...) afin de pouvoir avoir un tableau carré, à l'image de ce que les TCD en vue classique sont dans excel...

Merci par avance de votre aide

Niko
 

Pièces jointes

  • exemple - Copie.xlsx
    10.6 KB · Affichages: 34
  • exemple - Copie.xlsx
    10.6 KB · Affichages: 40
  • exemple - Copie.xlsx
    10.6 KB · Affichages: 41

FROLLINDE

XLDnaute Occasionnel
Re : supprimer arborescence tableau suite export

Bonsoir Nichos,

Avec que des formules je n'ai pas trouvé la solution.

Avec une macro peut être un peu alambiqué, ça peut fonctionner..

Elle restera à optimiser..
Combien de niveau de hiérarchie as tu au maximum ? Ici ça fonctionne avec 3


J'arrive à identifer une hiérarchie

0
---1
-------3 ou 4
en regardant combien d'espace dans l'intitulé. (colonne A pour exemple.
Mais ce n'est pas tout à fait fixe ... 3 ou 4 pour le niveau 3

Macro :

Code:
Sub hierarchie()
I = 2
X = 2
Test = True

While Test
    ' Identifier si Hiérarchie 0, 1, 3 ou 4
    VHIE1 = Len(Range("B" & I).Value) - Len(Trim((Range("B" & I).Value)))
    ' Garder le texte de hiérarchie 0
    TEXTE1 = Range("B" & I).Value
    I = I + 1
    
    VHIE1 = Len(Range("B" & I).Value) - Len(Trim((Range("B" & I).Value)))
    
    While VHIE1 <> 0
       VHIE1 = Len(Range("B" & I).Value) - Len(Trim((Range("B" & I).Value)))
       VHIE2 = Len(Range("B" & I).Value) - Len(Trim((Range("B" & I).Value)))
       TEXTE2 = Range("B" & I).Value
       I = I + 1
       VHIE2 = Len(Range("B" & I).Value) - Len(Trim((Range("B" & I).Value)))
       While VHIE2 <> 1 And VHIE1 <> 0
          
          Range("F" & X).Value = Trim(TEXTE1)
          Range("G" & X).Value = Trim(TEXTE2)
          Range("H" & X).Value = Trim(Range("B" & I).Value)
          Range("I" & X).Value = Trim(Range("C" & I).Value)
          I = I + 1
          X = X + 1
          VHIE2 = Len(Range("B" & I).Value) - Len(Trim((Range("B" & I).Value)))
          VHIE1 = Len(Range("B" & I).Value) - Len(Trim((Range("B" & I).Value)))
        Wend
    Wend
    If Range("B" & I).Value = vide Then
        Test = False
    End If
Wend
End Sub
 

Pièces jointes

  • exemple20.xlsm
    16.9 KB · Affichages: 29

ROGER2327

XLDnaute Barbatruc
Re : supprimer arborescence tableau suite export

Bonjour à tous.


Pas bien clair, tout ça... Si
(...) la hiérarchie des données est fonction du nombre d'espace devant l'intitulé (...)
alors Choux et Romans sont-ils vraiment au même niveau hiérarchique ?
Si oui, il faut préciser la fonction...

En attendant, un essai supposant qu'une espace de plus, c'est un niveau de plus.
Le nombre de niveaux n'est pas limité (voir le dernier onglet).​


Bonne journée.


ℝOGER2327
#7652


Jeudi 26 Haha 142 (Commémoration du Cure-dent - fête Suprême Quarte)
10 Brumaire An CCXXIII, 1,8685h - charrue
2014-W44-5T04:29:03Z
 

Pièces jointes

  • exemple - Copie-1.xlsm
    39.8 KB · Affichages: 38
Dernière édition:

nickos2406

XLDnaute Junior
Re : supprimer arborescence tableau suite export

bonjour,

Merci beaucoup pour vos contributions et vos réponses! ca m'aide énormément!!!! Et pour autant que cela puisse paraitre, choux et BD sont sur le même niveau... c'est un exemple :))

J'ai en fait max 6 niveaux, mais selon l'export que je fait, je ne demande pas systématiquement les 6 niveaux...

De tout façon, c'est déjà très enrichissant ce que vous avez communiqué, je vais tenter d'adapter la macro reçue.

Merci bcp encore

Bonne semaine
Nickos
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 323
Membres
103 516
dernier inscrit
René Rivoli Monin