• FORUMU MOBİL UYGULAMADAN TAKİP EDİN

    Forumu isteyen üyelerimiz Tapatalk (Harici bir hizmet) üzerinden mobil uygulamadan takip edebilirler.
    iOS için : https://itunes.apple.com/app/id307880732?mt=8
    Android için : https://play.google.com/store/apps/details?id=com.quoord.tapatalkpro.activity
    adreslerinden indirebilirsiniz.

    Bir iki haftaya da foruma özel kendi uygulamamız yayında olacak.
ALTIN ÜYELİK Hakkında Bilgi
-----------------------

aynı dosyaya topluca sheet olarak sayfalar ekleme

Katılım
25 Ocak 2006
Mesajlar
323
Beğeniler
1
Excel Vers. ve Dili
2016
#1
Kod:
Public bekle
Sub FARKLI_KAYDET()
Set hg = Sheets("HÜCRE GİRİŞ"): Set s = Sheets("sunu")
bekle = "DUR"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
    For sat = 1 To 100
        s.[V3] = hg.Cells(sat, "Q")
        ActiveSheet.Copy
        belge = ThisWorkbook.Path & "\ihaleler\" & Replace(Replace(hg.Cells(sat, "T").Value, ":", "="), "/", "&") & ".xlsx"
        ActiveWorkbook.SaveAs belge
        ActiveWorkbook.Close
    Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
bekle = ""
End Sub
ömer beyin büyük yardımlar ile yazılan kod biraz sıkıntı çıkardı. özetle diyor ki; v3 sırayla verileri yazdır sonra dışarı yeni sayfa olarak aktar. bunun zararı şu oldu. bu sayfaları powerpointe excel bağlantılı yapıştırdığımda, başka bilgisayarlarda çalışmadığını gördüm. çünkü benim bilgisayarımdaki ana excel dosyasını arıyor ve bulamayınca sıkıntı çıkarıyor. dolayısı ile bu sekmeleri yeni dosya olarak değil ana dosya içine eklerse bu sorun ortadan kalkar düşüncesindeyim. en azından dosya içine sekmelerse tek bir bağlantı değiştirme ile tüm sayfalar güncellenir gibi geldi.


peki bu kodu nasıl değişmem gerekiyor. ya da dışarı aktarsam da yani bu kodu kullansam da öyle bir şey demeli ki kullanıcı adına göre değil her bilgisayarda kullanılacak şekilde dışarı çıkarsın. umarım anlatabilmişimdir.
 
Son düzenleme:
Katılım
25 Ocak 2006
Mesajlar
323
Beğeniler
1
Excel Vers. ve Dili
2016
#2
Kod:
Public bekle
Sub FARKLI_KAYDET()
Set hg = Sheets("HÜCRE GİRİŞ"): Set s = Sheets("sunu")
bekle = "DUR"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
    For sat = 1 To 5
        s.[v3] = hg.Cells(sat, "Q")
            ActiveSheet.Copy After:=ActiveSheet
            On Error Resume Next
            ActiveSheet.Name = [v3]
    Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
bekle = ""
End Sub
bu şekilde hallettim ama v3 e sürekli farklı isim gelerek sayfaları kopyalıyor olmasına karşın, ilk sayfaya v3 deki ismi verdikten sonra diğer sayfalara sayfa2 sayfa3 şeklinde isim veriyor. her seferinde v3 e gelen yeni simi nasıl verdirteceğim, devamını nasıl sağlayacağım.
 
Katılım
8 Mart 2011
Mesajlar
12,052
Beğeniler
340
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
#3
Merhaba.
Daha evvel açtığınız listeye göre ayrı ayrı excel sayfası oluşturma isimli konu başlığında verdiğim koddaki
Application.DisplayAlerts=False satırının amacı, kopyalanan sayfadaki FORMÜLLERin,
başka belgelere veya diğer sayfalara atıf yapan (durum hangisiydi net hatırlamıyorum doğrusu) formüller olmasıydı.

O halde, belirttiğiniz sorunun çözümü için; sayfayı kopyalama aşamasında sayfadaki formül içeren hücrelerin
DEĞERe dönüştürdükten sonra kaydedilmesini ya da formüllerin atıf yaptığı sadece diğer sayfalar ise, bu sayfalar dahil kopya oluşturup, gereksiz sayfaların gizli kalmasını sağlamak gerekir.

Dosya üzerinden (formüllerin çalışır durumda olduğu kopyalanacak sayfa belgede olsun) gitmekte yarar var.
Ezbere birşeyler denendiğinde konunun gereksiz uzayacağını düşünüyorum.
.
 
Katılım
25 Ocak 2006
Mesajlar
323
Beğeniler
1
Excel Vers. ve Dili
2016
#4
merhaba, aslında sorunum kod değil. her şey tamam gibi. çıkarttığı excelleri sunuya attım ve çokta güzel oldu. sorunum tek klasör içerisinde çalışmama rağmen bu klasörü başka bilgisayarda açıp güncellemek istediğimde ilk klasördeki dosyaları arıyor olması. powerpoint excel gibi değil. yani bir çalışma kitabındaki tüm bağlantıları bir dosya olarak görüyor. excel ise tek çalışma dosyasının içindekileri bütün olarak düşünüyor. 100 slaytı tek tek yeni dosya yeri gösterip güncellemektense en baştan sunu yapmak daha kolay bir hal alıyor. aradığım cevabın sorusu; bu klasörü başka pc lerde güncellenebilecek şekilde nasıl yapabilirim. aslında yazınızı çok öncelleri gördüm ama cevap yazmadan bayağı bir düşündüm. sorun kod değil o yüzden yazmadım. iyi akşamlarınız olsun.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
6,845
Beğeniler
371
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
#5
Kodda, Excel'den PowerPoint'e aktarım yapan bir yer görmedim..... Bu işi (100 sayfa) manuel mi yapıyorsunuz?

.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
6,845
Beğeniler
371
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
#7
100 tane slayt için çok uğraşıyorsunuz o zaman.... aslında VBA ile yapılır.

.
 
Katılım
25 Ocak 2006
Mesajlar
323
Beğeniler
1
Excel Vers. ve Dili
2016
#8
100 tane slayt için çok uğraşıyorsunuz o zaman.... aslında VBA ile yapılır.

.
çok uğraşmıyorum aslında. bir kere kopyaladım yapıştırdım (çok fazla zaman almıyor) ve sonrasında excellerde değişiklik olursa sunuda da oluyor. taa ki başka bilgisayara geçene kadar.
 
Katılım
25 Ocak 2006
Mesajlar
323
Beğeniler
1
Excel Vers. ve Dili
2016
#9
Kod:
Public bekle
Sub FARKLI_KAYDET()
Set hg = Sheets("HÜCRE GİRİŞ"): Set s = Sheets("sunu")
bekle = "DUR"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
    For sat = 1 To 10
        s.[V3] = hg.Cells(sat, "Q")
        ActiveSheet.Copy after:=ActiveSheet
        On Error Resume Next
        ActiveSheet.Name = hg.Cells(sat, "T").Value
    Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
bekle = ""
MsgBox "İhalelerin Aktarımı Tamamlandı", vbInformation
End Sub
excel sayfamın içerisine yeni sayfaları ekledikten sonra tekrar kodu çalıştırdığımda aynı isimde oldukları için sunu1 sunu2 şeklinde yeni sekmeler açıyor. ben istiyorum ki aynı isim varsa eskisini silsin yenisini eklesin. bunun için nasıl bir kod eklemeliyim. tabi mümkünse.
 
Son düzenleme:
Katılım
8 Mart 2011
Mesajlar
12,052
Beğeniler
340
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
#10
Merhaba.
Örnek belge olmadığından biraz afaki olacak ama aşağıdaki gibi düşünülebilir.
Umarım yanlış anlamadım.
Eklediğim kırmızı kısım, mevcut sayfaların adlarını kontrol eder ve varsa; adı HÜCRE GİRİŞ sayfası V3 hücresindeki değer olan sayfayı siler,
ardından istenilen sayfa kopyalama ve adlandırma işlemine geçer.
Rich (BB code):
Public bekle
Sub FARKLI_KAYDET()
Set hg = Sheets("HÜCRE GİRİŞ"): Set s = Sheets("sunu")
bekle = "DUR"
Application.ScreenUpdating = False
Application.DisplayAlerts = False
    For sat = 1 To 10
        s.[V3] = hg.Cells(sat, "Q")
            For each shf In ThisWorkbook.Sheets
                If shf.Name = s.[V3].Value Then shf.Delete
                Exit For
            Next
        ActiveSheet.Copy after:=ActiveSheet
        On Error Resume Next
        ActiveSheet.Name = hg.Cells(sat, "T").Value
    Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
bekle = ""
MsgBox "İhalelerin Aktarımı Tamamlandı", vbInformation
End Sub
 
Son düzenleme:
Katılım
8 Mart 2011
Mesajlar
12,052
Beğeniler
340
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
#12
Belirttiğim gibi örnek belge olmayınca deneme şansımız yok.
VBA kısmında kodların en başında Option Explicit şeklinde bir satır var mıdır onu da bilemiyorum.

For each shf In ThisWorkbook.Sheets.Count satırından önce
MsgBox ThisWorkbook.Sheets.Count şeklinde bir satır ekleyince sayfa adeti olarak ne gösterecek, bir deneyin.
Ayrıca If shf.Name = s.[V3] kısmını da If shf.Name = s.[V3].Value olarak değiştirmekte yarar olbilir.
.
 
Katılım
7 Temmuz 2004
Mesajlar
6,845
Beğeniler
371
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
#13
Hatanın nedeni zaten hata mesajında verilmiş....

Aşağıdaki kırmızı kısmı silerseniz, For-Next döngüsü doğru çalışır.

Rich (BB code):
For each shf In ThisWorkbook.Sheets.Count
.
 
Üst