• DİKKAT

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

Excel Makro ve PPT sunum ilişkisi

Kemal Demir

Özel Üye
Katılım
29 Temmuz 2004
Mesajlar
2,108
Arkadaşlar iyi günler,

Bahsediceğim konu hakkında bilgisi olan yada benzer çalışmaları olan arkadaslar örneklerini benle paylaşabilirler mi?

Ek'teki *.rar dosyası içerisinde bir klasor ve içerisinde *.xls ve *.ppt dosyaları mevcut.
Excel dosyası içerisinde 3 adet sheet var.Bu sheetler ppt dosyasının slide numaralarını vermektedir.

Her bir xls dosyasında a1:f10 ( değişken olabilir ) aralıgını kopyalayarak *.ppt dosyasının ilgili slide larını yapıstırma işlemlerini gerçekleştirecek bir Vba kodunu nasıl olusturabiliriz.


Bu konuda bilgi sahibi olan arkadaslardan yardımcı olabilirler mi?

Teşekkurler iyi çalışmalar.
 
Merhaba,

Yok demek istemiyorum, ama bulamadım.Zannedersem biraz daha fazla aramam lazım.

Çözüm önerilerinizi bekliyorum.

İyi çalışmalar.
 
Merhaba;

Söz konusu PowerPoint dosyanız açık durumdayken, aşağıdaki kodları Excel dosyanıza yerleştirip, çalıştırın.

Kod:
Sub Test()
    Dim objPPT As Object
    Dim objSlide As Object
    Dim i As Integer
    
    Set objPPT = GetObject(, "Powerpoint.Application")
    objPPT.ActiveWindow.ViewType = 1
    
    For i = 1 To Sheets.Count
        objPPT.ActiveWindow.View.GotoSlide Index:=i
        Set objSlide = objPPT.ActivePresentation.Slides(i)
        Sheets(i).Range("A1:F10").CopyPicture Appearance:=xlScreen, Format:=xlPicture
        objSlide.Shapes.Paste.Select
        objPPT.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
        objPPT.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
    Next
    Set objSlide = Nothing
    Set objPPT = Nothing
End Sub
 
Hocam nedesem

TEK KELİME İLE SÜPERSİNİZ.

Birşey daha sormak istiyorum.Excel'den tasınıpta kopyalanacak slide ler Excel dosyasının sheet isimleri ile aynı olmalı.
Örnek : Slide (2,5 ve 8 ) kopyalanmalı.

Teşekkurler.
 
Teşekkür ederim beyler;

Sayın Rakkas, aslında bahsettiğiniz konuyu siz orjinal sorunuzda belirtmişiniz de ben atlamışım.

Bu durumda aşağıdaki gibi bir kod kullanabilirsiniz....

Kod:
Sub Test()
    Dim objPPT As Object
    Dim objSlide As Object
    Dim i As Integer, j As Integer
    
    Set objPPT = GetObject(, "Powerpoint.Application")
    objPPT.ActiveWindow.ViewType = 1
    
    For j = 1 To objPPT.ActivePresentation.Slides.Count
        objPPT.ActiveWindow.View.GotoSlide Index:=j
        Set objSlide = objPPT.ActivePresentation.Slides(j)
        For i = 1 To Sheets.Count
            If Sheets(i).Name = j & "" Then
                Sheets(i).Range("A1:F10").CopyPicture Appearance:=xlScreen, Format:=xlPicture
                objSlide.Shapes.Paste.Select
                objPPT.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
                objPPT.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
            End If
        Next
     Next
     
    Set objSlide = Nothing
    Set objPPT = Nothing
End Sub
 
Haluk Bey,

Teşekkur ederim.

İyi çalışmalar. ( Gun içerisinde bukadar soru yeter:) )
 
Geri
Üst