aynı dosyaya topluca sheet olarak sayfalar ekleme

Katılım
25 Ocak 2006
Mesajlar
764
Excel Vers. ve Dili
2019 tr
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
764
Excel Vers. ve Dili
2019 tr
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.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
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
764
Excel Vers. ve Dili
2019 tr
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

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Kodda, Excel'den PowerPoint'e aktarım yapan bir yer görmedim..... Bu işi (100 sayfa) manuel mi yapıyorsunuz?

.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
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
764
Excel Vers. ve Dili
2019 tr
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
764
Excel Vers. ve Dili
2019 tr
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:

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
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
25 Ocak 2006
Mesajlar
764
Excel Vers. ve Dili
2019 tr
kesinlikle doğru anladınız.

Count kısmında
compile error:
for each may only iterate over a collection object or an array hatası alıyor.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
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.
.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
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
.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,313
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu ifadede .Count olmaması gerekiyor.

For each shf In ThisWorkbook.Sheets.Count
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Aynen Sayın AYHAN, Sayın Haluk.
.Counts kısmının silinmesi gerekir.
Önceki cevabımdaki kod'u buna göre güncelledim.
 
Katılım
25 Ocak 2006
Mesajlar
764
Excel Vers. ve Dili
2019 tr
event count kısmını silince çalıştı. fakat kopyalanan sayfalar yeni sayfa oluyor. eski aynı addaki sekmeleri silip yenisini koymuyor.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Son bir kez daha hatırlatmak istiyorum.
Cevaplarımın altındaki İMZA bölümünü okuyunuz.
.
 
Üst