• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Breakdown Structure vanuit Excel gegevens

Status
Niet open voor verdere reacties.

bgerco

Gebruiker
Lid geworden
10 okt 2007
Berichten
64
Hallo,

Ik ben opzoek naar een mogelijkheid om vanuit Excel door middel van een Macro een Breakdown Structuur op te bouwen. Dat wil zeggen dat vanuit beschikbare data de volgorde aangegeven wordt. Ik heb in de bijlage een voorbeeld toegevoegd. In de ene sheet staat de data. De locatienaam en de bijbehorende bovenliggende locatieplaats. De locatienaam moet onder de bijbehorende locatieplaats komen zoals weergegeven is in de 2e sheet. Mijn vraag is of hier een macro voor te bedenken is zodat ik meerdere data in kan voeren en deze breakdown structuur vanuit zichzelf opgebouwd wordt. De data heb ik wel, maar ik zoek dus naar een handige manier om de boom structuur te creeeren. Ik ben erg benieuwd of dat mogelijk is.

Mvg

Gerco van den Brink
 

Bijlagen

In het bestand zit een macro die een nieuw werkblad toevoegt en vervolgens de gegevens in dat werkblad plaatst in het door jou gewenste opmaak.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Roncancio,

Bedankt voor je reactie!
Het is een stap in de goede richting, maar nog niet compleet.
Ik probeer te begrijpen hoe je het hebt opgebouwd, zodat ik het zelf ook kan veranderen, maar dat lukt me nog niet.

De bedoeling is dat ik uiteindelijk in de 2 invulvelden alle data wil zetten die mogelijk zijn. Ik probeerde dat voor een andere locatie, maar toen ik de macro liet lopen ging het niet goed. Zie bijlage voor het voorbeeld.

De bedoeling is om uiteindelijk alle mogelijke data hier in te kunnen voeren.
Is het ook mogelijk om dit aan te passen dat het altijd goed gaat?

Ik hoor graag van je

Met vriendelijke groet

Gerco van den Brink
 

Bijlagen

Roncancio,

Bedankt voor je reactie!
Het is een stap in de goede richting, maar nog niet compleet.
Ik probeer te begrijpen hoe je het hebt opgebouwd, zodat ik het zelf ook kan veranderen, maar dat lukt me nog niet.

De bedoeling is dat ik uiteindelijk in de 2 invulvelden alle data wil zetten die mogelijk zijn. Ik probeerde dat voor een andere locatie, maar toen ik de macro liet lopen ging het niet goed. Zie bijlage voor het voorbeeld.

De bedoeling is om uiteindelijk alle mogelijke data hier in te kunnen voeren.
Is het ook mogelijk om dit aan te passen dat het altijd goed gaat?

Ik hoor graag van je

Met vriendelijke groet

Gerco van den Brink

Wat ik heb gedaan is een onderscheid maken obv het aantal streepjes in de naam.
Dus als er 2 streepjes in de naam staan (bijv NL.EKRO-00-00) dan schuift de naam 2 kolommen op tov NL.EKRO.

Ik zie weinig tot geen logica tussen kolommen A en B.
Ik vraag mij af of de bovenliggende locatie wel overeenkomt met het naastgelegen locatienaam.

Met vriendelijke groet,


Roncancio
 
Uitgaande van je oorspronkelijke bestand:

Code:
Sub bomen()
  With Sheets.Add
    Worksheets(2).Columns(1).Copy .Columns(1)
      .Columns(1).Sort .[A3]
      For Each cl In .Columns(1).SpecialCells(xlCellTypeConstants)
        If cl.Row > 2 Then
           cl.Offset(, UBound(Split(cl.Value, "-"))) = cl.Value
           If UBound(Split(cl.Value, "-")) > 0 Then cl.Value = ""
        End If
     Next
  End With
End Sub
 
Inderdaad, de logica die je voorschreef gaat niet altijd op. Dat is het lastige. Wat ik voor formule in mijn hoofd heb, is:

Zoek B2 in rij A, plaats A2 onder B2 en 1 rij verder. Een dergelijke formule moet het volgens mij worden. Ik weet alleen niet of het mogelijk is, zelf kome ik er ook slecht uit.
Er moet een vergelijking komen tussen B2 en de Rij A. A2 moet geplaatst worden onder B2 in de rij ernaast.

Hopelijk is het enigzins helder. (en mogelijk!)

Groeten Gerco
 
Heb je mijn suggestie uitgeprobeerd ?
 
Ja, dat heb ik geprobeerd.
Alleen zodra ik andere data ga gebruiken, zie 2e post van mijzelf, dan loopt het vast op dezelfde manier als die andere.
 
Straks of morgen zal ik mijn poging (onafhankelijk van datastructuur) even posten.
 
Bijgevoegd een voorbeeldbestand dat zulke boomstructuur moet verwezelijken.
De code verdient echter geen schoonheidsprijs. Het is meer een soort proof-of-concept, voor elegante code heb ik momenteel echter niet de tijd. Error handling is niet aanwezig in het bestand.

Enkele opmerkingen:
*er zit geen controle op de juistheid van de initiële waarden. Staan er dubbele takken in de brondata, dan staan er ook dubbele takken in de boom.
*Het eerste niveau (level) moet steeds een blanco waarde hebben in de tweede kolom. (zoals bij NL.GRK).
*Het tabblad "Boom" wordt bij elke aanroep van de macro leeggemaakt en opnieuw opgebouwd, bestaat de sheet niet, dan wordt deze aangemaakt.
*Het aantal niveaus is niet beperkt.

Je laat maar weten wat je er van denkt.
 

Bijlagen

Laatst bewerkt:
Zo! :thumb:

Volgens mij werkt de formule wel helemaal goed! Ik heb een paar testen gedaan, maar hij bouwt alles naar behoren op! Hij geeft alleen welke elke keer een foutmelding, maar dan is de boom al naar behoren opgebouwd!

Bedankt!!
Nu heb ik alleen nog 1 aanvullende vraag. is het ook mogelijk om de lay-out (kleur) van de cel mee te nemen? Dus als inderdaad alle Cellen geel zijn, dat ze dan in de boom ook die gele kleur krijgen? Zodat ik straks kleuren kan onderscheiden??

Groeten Gerco
 
Zo! :thumb:

Volgens mij werkt de formule wel helemaal goed! Ik heb een paar testen gedaan, maar hij bouwt alles naar behoren op! Hij geeft alleen welke elke keer een foutmelding, maar dan is de boom al naar behoren opgebouwd!

Bedankt!!
Nu heb ik alleen nog 1 aanvullende vraag. is het ook mogelijk om de lay-out (kleur) van de cel mee te nemen? Dus als inderdaad alle Cellen geel zijn, dat ze dan in de boom ook die gele kleur krijgen? Zodat ik straks kleuren kan onderscheiden??

Groeten Gerco

wanneer en welke foutmelding geeft hij?
Ik zal dat van die kleuren eens bekijken.
edit: als je een cel in eerste kolom een kleur geeft, krijgt hij die toch ook in de boom. Nee? maw volgens mij is dat al functioneel, tenzij je iets anders in gedachte had.
 
Laatst bewerkt:
De foutmelding die te voren komt bij het invoeren van andere data is:

Run-time error 1004:
No cells were found

Deze foutmelding geeft hij aan het eind.

Het is de bedoeling om binnenkort op het laagste niveau een groene kleur aan te brengen, zodat duidelijk te onderscheiden is wat bij wat hoort. Dit zou dan ook meegekopieerd moeten worden in de breakdown structure. Als dat mogelijk is natuurlijk?

Groeten Gerco
 
Kan je een voorbeeldbestandje posten waar je die fout tegenkomt.

Voor je tweede vraag: Als je een cel in de eerste kolom van de data een kleur geeft, neemt hij die kleur mee in de boom.
 
Ik heb al door waar de fout zat. Niet alle bovenliggende locatienamen bestonden in de lijst, dus hij kon een 'x' aantal tags niet plaatsen in de boom, maar dat is nu dus opgelost!

Daarnaast nog wel 1 probleem met de kleuren etc. Hij kopieert het vreemd door.
Zie onderstaande jpg afbeelding.
 

Bijlagen

  • Voorbeeld.gif
    Voorbeeld.gif
    4,3 KB · Weergaven: 24
Ik heb al door waar de fout zat. Niet alle bovenliggende locatienamen bestonden in de lijst, dus hij kon een 'x' aantal tags niet plaatsen in de boom, maar dat is nu dus opgelost!

Daarnaast nog wel 1 probleem met de kleuren etc. Hij kopieert het vreemd door.
Zie onderstaande jpg afbeelding.


Over je probleem van de foutmelding. Het stelde ook in mijn post dat er geen "onderzoek" is naar de geldigheid van de data. Ik had het over dubbele takken, maar ook het ontbreken van bovenliggende paden is daar een voorbeeld van. Zoals je zelf zei, best oplossen in de oorspronkelijke data.

Betreffende dat kleurprobleem. Hierbij een nieuwe versie, waarbij dat opgelost moet zijn, heb het wel niet uitvoerig getest. Moest je tegen problemen aanlopen, laat het maar weten.
 

Bijlagen

Perfect Finch!

Thanks a lot..

Werkt als een trein..

Groeten Gerco
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan