• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

ppt excel chart objesine veri yazdırma

Katılım
21 Aralık 2010
Mesajlar
135
Excel Vers. ve Dili
MS Office 2007 Ing.
İyi gunler arkadaşlar,

İsmim Barış.Forum'a bugun üye oldum.Foruma emeği geçen herkese teşekkurler.
Veri analizi işi yapıyorum ( sigorta şirketi ) periodik olarak müşterilerimizin verilerini işleyip yıl sonunda musterilerimize powerpointten oluşan bir sunum ile paylaşıyorum.

Powerpoint dosyamda verileri excel den ilgili tabloma alıyorum aldıgım bu verileri ppt dosyamda object microsoft excel chart eklenerek grafik oluşturulmuş ( Template bir dosya değişiklik yapılmaması isteniyor ). Bu chart içerisindeki verilere slide içerisindeki tablodan veri alarak eklemek istiyorum
Bu konuda yardımcı olabilirmisiniz.

Teşekkurler.
 

Ekli dosyalar

Son düzenleme:
Sn mancubus,

paylaştıgınız linkte veriler resim olarak kopyalanıyor.Bunun yanında şablyon yurt dışının hazırladıgı formatta olmalı, başka bir format kullanamam.

Desteğiniz için teşekkurler.

Aşağıdaki kodda ne gibi bir değişiklik yapmam gerekecek ki açılan objenın Sheet1 sayfasına verileri yazdırabileyim.

Bu konuda yardımcı olabilirmisiniz.

Kod:
Sub ObjeExCelChartEkle()
    For z = 2 To 7
        With ActiveWindow.Selection.SlideRange.Shapes(2)
            deger = .Table.Cell(z, 4).Shape.TextFrame.TextRange.Text
        End With
            ActiveWindow.Selection.SlideRange.Shapes(1).Select
            ActiveWindow.Selection.ShapeRange.OLEFormat.DoVerb Index:=2
            ActiveWindow.Selection.ShapeRange.OLEFormat.Object.Application.DataSheet.Cells(6, z) = deger
    Next
    
End Sub
 
Son düzenleme:
uluslararası şirketlerin kurumsal kimlik ilkeleri....
font tipi ve büyüklüğü bile tanımlı olur genelde.

yanlış anlamadı isem...
excel'den grafik alıyorsunuz. slide içinde grafiğe tıkladığınızda mini bir excel sayfası görünür. grafiğin esas aldığı kaynaktır bu. şimdi bu kaynağı, kendisine benzemeyen bir pp tablosu ile karıştırarak yeni bir grafik üretmek istiyorsunuz.

benim bildiği bir konu değil. normalsde açılan mini excel de ndüzeltmek uygun olabilir.
 
Sn mancubus,

Bence yapılması muhtemel gibi görünüyor.VBA kod ile Excel chart Object içerisine giriliyor.Açılan xls sayfasında active edildiği için bana bu işlemler muhtemelen olabilir gibi geldi.
Beklemeye devam edeyim.

Yardımlarınız için teşekkurler.
 
Bu konu hakkında bilgi sahibi olan arkadaslarımız varmı?

Teşekkurler.
 
Sn.yurttaş ,

Cevabınız için teşekkurler.Tek slide için çözüm olabilir.Tekrar teşekkurler.
Slide sayım fazla olacak.Bunu koda dokmemiz mumkun değilmi? Veriler table içerisinden alınacak.
Bunun code ile yapılması muhtemel midir.

İyi çalışmalar.
 
şu sitelerdeki kodlar fikir verebilir. ancak temel husus veri excel'den geliyor.
powerpoint'e excel'den grafik eklediğinizde, ografiğin kaynak verisine link kurmak suretiyle grafiği alıyor. dolayısı ile grafik veri kaynağındaki veriye ilave oldukça grafiğin güncellenmesi lazım.

(excel VBE'de tools-references'dan "microsoft powerpoint XX.0 object library" işaretli farzediyorum. değilse yapın.)

http://www.mahipalreddy.com/vba.htm
http://support.microsoft.com/kb/q267974/

tabii kodlarla oynamanız, klasörleri, dosya isimlerini kendi senaryonuza uyarlamanız gerekiyor. bana göre buradan çözüm çıkması lazım.
 
sn mancubus,

Ekteki dosyamda da buna benzer bir kod var.*.ppt dosyama bu şekilde excelden bağlanarak verileri alıyorum.
Biraz daha incelesem iyi olacak galiba.
Object Excel Chart ı edit edilebilceği yada ınsert edilebilceği konusunda ılımlıyım.Araştırmaya devam edeceğim.Soruma cevap verebilirseniz teşekkurler.
Fazlada vaktinizi almak istemem.

Kolay Gelsin

Kod:
Sub ExCelVeriGetir()
dosyaadi = "C:\kpidp.xls"
sayfasay = GetObject(dosyaadi, "Excel.Sheet").Sheets.Count
Set xlsheet = GetObject(dosyaadi, "Excel.Sheet").Sheets(1)
ActivePresentation.Slides(1).Select
With ActiveWindow.Selection.SlideRange.Shapes(1)
For p = 2 To 7
 .Table.Cell(p, 4).Shape.TextFrame.TextRange.Text = xlsheet.Cells(p, 3)
Next
End With
End Sub
 
tabii konunun uzmanı olmadığım için araştırma yaparak bir şeyler yazıyorum.

aşağıdaki linkteki dosyaları indiririp (aynı klasöre koyapalayarak/açarak) access'ten data alarak grafik refresh etmek ile ilgili bir örnek var. excel'e uyarlanabilir belki...


http://www.pptfaq.com/FAQ00920.htm


slide show esnasında düğmeleri tıklayın. ayrıca eklenen açıklayıcı word dokümanı çok faydalı bilgiler içeriyor.
 
Son düzenleme:
Sn mancubus,

Ornekler için teşekkurler.İstediğim sonucu alamadım ama ilgin için ayrıca teşekkurler.
 
Aşağıdaki gibi denermisiniz.

Kod:
Sub tabloyayaz()
ayadi = ActiveWindow.Selection.SlideRange.Shapes(2).Table.Cell(1, 1).Shape.TextFrame.TextRange.Text
ActiveWindow.Selection.SlideRange.Shapes("Object 7").Select
Set sayfa = ActiveWindow.Selection.ShapeRange.OLEFormat.Object
sat = WorksheetFunction.Match(ayadi, sayfa.Sheets("sheet1").Columns(1), 0)
With ActiveWindow.Selection.SlideRange.Shapes(2)
For p = 2 To 7
marka = .Table.Cell(p, 1).Shape.TextFrame.TextRange.Text
sut = WorksheetFunction.Match(marka, sayfa.Sheets("sheet1").Rows(1), 0)
sayfa.Sheets("sheet1").Cells(sat, sut) = .Table.Cell(p, 4).Shape.TextFrame.TextRange.Text
Next
End With
ActiveWindow.Selection.Unselect
End Sub
 
sn cellswhite,
rica ederim. yardımcı olamadım.
umarım Levent Bey'in makrosu işinizi görür.
 
Gunaydın,

Levent bey ilginiz için teşekkurler aşağıdaki satırda hata alıyorum.

sat = WorksheetFunction.Match(ayadi, sayfa.Sheets("sheet1").Columns(1), 0)

hata:Unable to get the match property of the Wokrsheetfunction class texti çıkıyor.

Tekrar destek olabilirmisiniz.
 
Dosyanız ektedir. Grafiğin tablosuna MAYIS ayı eklenmiştir. Bunada dikkat ediniz. Slayt üzerindeki tabloda bulunan A, B, C, .... alanlarının anlamı nedir. Veriler hep C alanındamı bulunacaktır.
 

Ekli dosyalar

Levent Bey,

Yine aynı hatayı alıyorum.Dosyayı muhtemelen göndermeden evvel kontrol ettiniz kod çalışıyordur bu konuda herhangibir kuşkum yok.Oyle zannediyorum ki iş yerindeki Office ( 2007 ) evde çalıştıgım office 2003 olmasının farklıgından dolayı ( dosyada 2003 formatında creat edillmiş) veriyor olabilir mi eğer bu neden değil ise tekrar dosyaya bakabilmeniz mümkünmüdür.

Teşekkurler

NOT:A, B, C, vs.. alanlarının adı marka isimleri oluyor. herhangibir match edilecek alan değil.
 
Dosyayı deneyerek gönderdim. Ancak siz makroyu slayt aktif durumdaykenmi çalıştırdınız. Makroyu slayt tasarım konumundeyken çalıştırmanız gerekiyor. Birde VB editöründeki tools-references menüsünden işaretli referansların bir resmini çekip eklermisiniz.
 
Levent Bey,

Tasarım modunda iken bu işlemi yapıyorum.Referansların resmi ektedir.
Teşekkurler.
 

Ekli dosyalar

  • Clipboard01.jpg
    Clipboard01.jpg
    39.9 KB · Görüntüleme: 6
Referanslarda bir sorun görünmüyor. Ben 2007 versiyonunda denemedim. Ancak sorun çıkartacağını sanmıyorum. Başka bir bilgisayarda deneme şansınız varsa denermisiniz. Birde kod içindeki fonksiyonların kaldırılmış hali ile aşağıdaki şekilde denermisiniz.

Kod:
Sub tabloyayaz()
ayadi = Trim(ActiveWindow.Selection.SlideRange.Shapes(2).Table.Cell(1, 1).Shape.TextFrame.TextRange.Text)
ActiveWindow.Selection.SlideRange.Shapes("Object 7").Select
Set sayfa = ActiveWindow.Selection.ShapeRange.OLEFormat.Object
sat = 6
With ActiveWindow.Selection.SlideRange.Shapes(2)
For p = 2 To 7
marka = Trim(.Table.Cell(p, 1).Shape.TextFrame.TextRange.Text)
sayfa.Sheets("sheet1").Cells(sat, p) = .Table.Cell(p, 4).Shape.TextFrame.TextRange.Text
Next
End With
ActiveWindow.Selection.Unselect
End Sub
 
Geri
Üst