Ürün Ağacı oluşturma??

Katılım
24 Ekim 2007
Mesajlar
5
Excel Vers. ve Dili
2003 türkçe
Herkese selamlar,saygılar.O kadar yararlı işler yapılıyorki bu forumda,izlerken keyif alıyorum.Hepinizin emekleri için şimdiden teşekkür ederim.
Arkadaşlar,benim sorum şöyle:

Ekli dosyada,ürün ağacımın seviye numaraları bulunmakta.Tek sütun halinde.
Powerpoint ya da word'te uğraşılmıyo arkadaşlar tek tek,yada hazır olup da çok az kutucuk içeren kurulum şeması çıkarmak.

Merak ettiğim ve sizden yardım istediğim;mesela bu sütunu seçsek,ardından bu sütunun otomatik olarak(tabi seviye numaralarını göz önüne alacak şekilde) ürün ağacı olarak görülmesi mümkünmü excel de?

Hani,nasıl seçili verilerden sonra,otomatik grafik yaratılıyorya,aynı bu şekilde kurulum şeması şeklinde ürün ağacı oluşturabilirmiyim?

Şimdiden yardımda bulunacak arkadaşlarıma teşekkür ederim.
Saygılarımla.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Merhabalar,

Bu ürün ağaçlarının Excel'de elle çizilmiş hali var mı?

"1" nolu ürün ve/veya aramamülün en alt seviyelerinin birinde 123 adet, diğerinde 60 küsur adet, bir diğerinde 80 küsur adet component var.

Bunu çizdirdiğimizi düşünelim. Gösterdiğiniz şekilde bu bir ürün ağacı değil, ürün ormanı olur :) ve hiçbir fonksiyonelliği kalmaz. Çıktısını alabileceğinizi de sanmıyorum.

Yani kısaca, biraz uğraşılırsa yapılabilir ama karşımıza çıkacak şeyi beğeneceğinizi sanmıyorum.
 
Katılım
24 Ekim 2007
Mesajlar
5
Excel Vers. ve Dili
2003 türkçe
Sayın fpc,cevabınız için teşekkür ederim.Haksız sayılmazsınız.Ancak bnm burda esas temam,olayın uzunluğu değil de,nasıl yapılacagı.Yani bana cıktısı ya da componentlerin ismini de kutulara yazmam falan değil.

O zaman ağacımızın şu şekilde old. varsayalım:

1
1.1
1.2
1.2.1
1.2.2
2
2.1
2.2
3
3.1
3.2
3.3
3.3.1
3.3.2
3.3.3
3.3.4
3.3.4.1
3.3.4.2


Yani bu bazda da olabilir.Takıldıgım nokta yapılarbilir mi?
 
Katılım
6 Mart 2007
Mesajlar
99
Excel Vers. ve Dili
MS Office 2003 Türkçe
Ürün ağacınızı tek sütun olarak değil de 4 sütun halinde oluşturun. Örneğin 1.seviye A sütunu, 2. seviye B sütunu... gibi. Sonra filtreleyebilirsiniz.
 
Katılım
24 Ekim 2007
Mesajlar
5
Excel Vers. ve Dili
2003 türkçe
teşekkürler RFspur tavsiyen için.Ancak bnm sıkıntım,bu ağacın organizasyon şeması şeklinde,biçimsel olarak görmekdi.

Sanırım bu çözüm excelde mevcut deil.Verilere göre otomatik bi şemayı çizemeyecek sanırım.

Tavsiyeler için teşekkürler,herkese.
 
Katılım
6 Mart 2007
Mesajlar
99
Excel Vers. ve Dili
MS Office 2003 Türkçe
Bu uygulama biraz zor da olsa Excel ile yapılabileceğini düşünüyorum. Ancak Access kullanarak gerçeklenmiş böyle bir uygulamayı daha önce görmüştüm. Tecrübeli arkadaşlar yardımcı olabilirler bu konuda. Kolay gelsin.
 
Katılım
17 Kasım 2005
Mesajlar
73
Öncelik yapmak istediğiniz imkansız değil ama çok zor. Sizin yapmak istediğiniz sinoptik misali çıkış almak
Ben de sirkette ürün ağaçlarıyla uğraşıyorum

Bende başka bir programdan( Netsis) Excele sql vasitasıyla ürün ağaçlarını alıp basıyorum.
Ama şunu bilmeniz de fayda vardır
Bir ürün reçetesi veya ürün ağacında en en üç tip veri bulunmak zorundadır.
1 Mamul (En tepede)
2- Yarı mamul
3 Ham malzeme veya ilk madde gibi
bunları bunlar belli olmadan ürün ağacı tam eksik tanımlama varmının kontrolünü yapamazssınız
siz bu çıktıyı almak için bazı bigileri makronun için kodlamanız lazımdır.
Örneğin
1 Girilen referans mamul ise bu bu referansıl altında yarımamul ve ham malzeme arar
Yarımamul ise altında yarımamul veya hammalzeme ara
gibi.
Benim aldığım bir Excel çıktısı Örnek olması açısından
Yarı manul referansı : 210084010095
!..-.10 KAYIT 210084010095 kundakci@hotmail.com... ..
!..-.210084010071 Yarımamul 1......................1 AD
! !....301122100015 ham 1.......................1 AD
! !....401441510018 ham 2.......................1 KG
! !....401441520088 ham 3.......................1 KG
! !....401441540022 ham 4.......................1 KG
! !....401441550017 ham 5.......................1 KG
! !....510000500109 ham 6.......................1 KG
! !....510000500132 ham 7.......................1 KG
!....301122100016 ham 8.......................1 AD
!....301270100003 ham 8.......................1 AD
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Dosyanızda, gerekli düzenlemeler yapılmıştır. Butona basınca, Ürün Ağacı otomatik olarak oluşmaktadır.

Örnek dosyayı inceleyiniz.

Sayfa1'de, bol malzemeli ve bol seviyeli olan ürün ağacının çizimi, tahmin ettiğim gibi, kötü oldu. Çünkü, yüzlerce malzemeyi ürün ağacı üstünde estetik olarak göstermek, siz de takdir edersiniz ki mümkün değil.

Sayfa2'de daha az malzemeli, sonradan gönderdiğiniz ürün ağacı bulunmaktadır. Bunun çizimi nispeten daha anlamlı çıktı.

Microsoft'un Diagram düzenlemeleri için kabul ettiği bir aksaklık nedeniyle, Diagram MS Word'de oluşturulmakta sonrada MS Excel'e çekilmektedir. Excel'deki bu eksiklik (veya hata) ile ilgili daha fazla ayrıntı için linki inceleyebilirsiniz.

http://support.microsoft.com/kb/317293

Kodlar ve yapı, daha da geliştirilebilir ama sadece "görmek istediğiniz" için basit bir kodlama yapıldı.

VBA kodları, aşağıda verildiği gibidir.

Kod:
Sub Urun_Agaci_Olustur()
Set objWordApp = CreateObject("Word.Application")
Set objWordDoc = objWordApp.Documents.Add
On Error GoTo f1
'objWordDoc.Application.Visible = True
'objWordDoc.Application.ShowMe
With objWordDoc
     Set UrunAgaci = .Shapes.AddDiagram(msoDiagramOrgChart, 10, 15, 1000, 1000)
     With UrunAgaci
          Set mamul = .DiagramNode.Children.AddNode
          mamul.TextShape.TextFrame.textrange.Text = Range("B1")
     End With
     
     For i = 3 To Cells(65536, 1).End(xlUp).Row
         For j = 1 To Len(Cells(i, 1))
             If Mid(Cells(i, 1), j, 1) = "." Then: x = x + 1
         Next j
         Select Case x
                Case 0:
                     mamul.Children.AddNode
                     Set malzeme_S1 = mamul.Children.Item(mamul.Children.Count)
                     malzeme_S1.TextShape.TextFrame.textrange.Text = Cells(i, 1)
                Case 1:
                     malzeme_S1.Children.AddNode
                     Set malzeme_S2 = malzeme_S1.Children.Item(malzeme_S1.Children.Count)
                     malzeme_S2.TextShape.TextFrame.textrange.Text = Cells(i, 1)
                Case 2:
                     malzeme_S2.Children.AddNode
                     Set malzeme_S3 = malzeme_S2.Children.Item(malzeme_S2.Children.Count)
                     malzeme_S3.TextShape.TextFrame.textrange.Text = Cells(i, 1)
                Case 3:
                     malzeme_S3.Children.AddNode ' (msoDiagramAssistant)
                     Set malzeme_S4 = malzeme_S3.Children.Item(malzeme_S3.Children.Count)
                     malzeme_S4.TextShape.TextFrame.textrange.Text = Cells(i, 1)
                Case 4:
                     malzeme_S4.Children.AddNode ' (msoDiagramAssistant)
                     Set malzeme_S5 = malzeme_S4.Children.Item(malzeme_S4.Children.Count)
                     malzeme_S5.TextShape.TextFrame.textrange.Text = Cells(i, 1)
         End Select
         x = 0
     Next i
End With
With objWordApp
    .ActiveDocument.Shapes.SelectAll
    .Selection.Copy
    ActiveSheet.Paste
f1:
    .Quit saveChanges:=False
End With
End Sub
 
Katılım
6 Mart 2007
Mesajlar
99
Excel Vers. ve Dili
MS Office 2003 Türkçe
Ürün ağacından benim anladığım şekilsel olarak güzel göstergelemekten çok fonksiyonel olmasıdır. Yani en üst seviyede bir ürün kodundan başlayarak en alttaki komponente kadar dallanmaktır amaç. Bunu grafiksel olarak yaparsanız güzel gözükebilir. Ama çok karmaşık bir yapıya ve kalabalık bir komponent sayısına sahip bir ürünü bu şekilde gösterirseniz sayfalara sığdıramazsınız. Yanlış anlamadıysam alperenoz arkadaşımız Windows'daki Explorer penceresine benzer bir görsel yapı oluşturup tıkladıkça alt seviyelere geçmek istiyor. Bunu Excel ile yapmak çok kolay değil.
 
Katılım
24 Ekim 2007
Mesajlar
5
Excel Vers. ve Dili
2003 türkçe
Sayın RFspur,kundakci,uzmanamele ve fpc;değerli vakitlerinizi ayırdığınız için çok teşekkür ederim hepinize.Tavsiyeleriniz çok güzeldi.

Özellikle fpc isimli arkadaşım,sana ayrı bir parantez açmak istiyorum.Hazırladığın dosya için,aklına,eline,yüreğine sağlık.Tam anlatmak istediğim şeyi yapmışsın.Çok çok teşekkür ederim.

Hepinizin yüreğine sağlık.Ben sizler kadar excel bilgisine sahip değilim,bu yüzden saygı ile takip ediyorum.Paylaşım yapamadığım için kusurumuza bakmayın.Biz,şu anda sadece takip edip,bilgilerinizden yararlanıyoruz.Umarım birgün paylaşacak seviyeye geliriz.İşler yogun oldugu için fazla giremiyorum foruma.

Tekrar herkese teşekkürler.Sağlıcakla kalın.
 
Katılım
24 Haziran 2009
Mesajlar
1
Excel Vers. ve Dili
Excel 2003,VBA
Burdaki dosyayı tekrar upload ederseniz çok sevinirim....


Dosyanızda, gerekli düzenlemeler yapılmıştır. Butona basınca, Ürün Ağacı otomatik olarak oluşmaktadır.

Örnek dosyayı inceleyiniz.

Sayfa1'de, bol malzemeli ve bol seviyeli olan ürün ağacının çizimi, tahmin ettiğim gibi, kötü oldu. Çünkü, yüzlerce malzemeyi ürün ağacı üstünde estetik olarak göstermek, siz de takdir edersiniz ki mümkün değil.

Sayfa2'de daha az malzemeli, sonradan gönderdiğiniz ürün ağacı bulunmaktadır. Bunun çizimi nispeten daha anlamlı çıktı.

Microsoft'un Diagram düzenlemeleri için kabul ettiği bir aksaklık nedeniyle, Diagram MS Word'de oluşturulmakta sonrada MS Excel'e çekilmektedir. Excel'deki bu eksiklik (veya hata) ile ilgili daha fazla ayrıntı için linki inceleyebilirsiniz.

http://support.microsoft.com/kb/317293

Kodlar ve yapı, daha da geliştirilebilir ama sadece "görmek istediğiniz" için basit bir kodlama yapıldı.

VBA kodları, aşağıda verildiği gibidir.

Kod:
Sub Urun_Agaci_Olustur()
Set objWordApp = CreateObject("Word.Application")
Set objWordDoc = objWordApp.Documents.Add
On Error GoTo f1
'objWordDoc.Application.Visible = True
'objWordDoc.Application.ShowMe
With objWordDoc
     Set UrunAgaci = .Shapes.AddDiagram(msoDiagramOrgChart, 10, 15, 1000, 1000)
     With UrunAgaci
          Set mamul = .DiagramNode.Children.AddNode
          mamul.TextShape.TextFrame.textrange.Text = Range("B1")
     End With
     
     For i = 3 To Cells(65536, 1).End(xlUp).Row
         For j = 1 To Len(Cells(i, 1))
             If Mid(Cells(i, 1), j, 1) = "." Then: x = x + 1
         Next j
         Select Case x
                Case 0:
                     mamul.Children.AddNode
                     Set malzeme_S1 = mamul.Children.Item(mamul.Children.Count)
                     malzeme_S1.TextShape.TextFrame.textrange.Text = Cells(i, 1)
                Case 1:
                     malzeme_S1.Children.AddNode
                     Set malzeme_S2 = malzeme_S1.Children.Item(malzeme_S1.Children.Count)
                     malzeme_S2.TextShape.TextFrame.textrange.Text = Cells(i, 1)
                Case 2:
                     malzeme_S2.Children.AddNode
                     Set malzeme_S3 = malzeme_S2.Children.Item(malzeme_S2.Children.Count)
                     malzeme_S3.TextShape.TextFrame.textrange.Text = Cells(i, 1)
                Case 3:
                     malzeme_S3.Children.AddNode ' (msoDiagramAssistant)
                     Set malzeme_S4 = malzeme_S3.Children.Item(malzeme_S3.Children.Count)
                     malzeme_S4.TextShape.TextFrame.textrange.Text = Cells(i, 1)
                Case 4:
                     malzeme_S4.Children.AddNode ' (msoDiagramAssistant)
                     Set malzeme_S5 = malzeme_S4.Children.Item(malzeme_S4.Children.Count)
                     malzeme_S5.TextShape.TextFrame.textrange.Text = Cells(i, 1)
         End Select
         x = 0
     Next i
End With
With objWordApp
    .ActiveDocument.Shapes.SelectAll
    .Selection.Copy
    ActiveSheet.Paste
f1:
    .Quit saveChanges:=False
End With
End Sub
*** alperenoz_UrunAgaci.xls
 
Üst