Sayfa arama aynı kitap içinde

kykbt

Altın Üye
Katılım
12 Nisan 2006
Mesajlar
271
Excel Vers. ve Dili
Office 2003
Office 2007
Altın Üyelik Bitiş Tarihi
29-05-2025
Arkadaşlar Merhaba

Başka bir klasör içindeki çalışma kitabı içindeki bir -sayfayı- bulunduğum çalışma kitabına taşımak istiyorum.

Örnek: Çalışma kitabı adı c:\maxi.xls bu kitap içindeki taşınacak sayfa adı maxi (sayfa adları hep kitap adı ile aynı oluyor)

Mantık olarak;

1-Önce yapılması gereken maxi.xls var ise içinde maxi diye sayfa mevcuttur. Kitabı acmadan içinde maxi sayfası olduğunu biliyoruz.
veya kitabı acmadan icine bakabilirsek,

2-Bulunduğum çalışma kitabında maxi adlı sayfa mevcutmu bunu bulmalıyım.

3-İki bilgiyi karşılaştırmalıyım.

4-Taşıyacağım sayfa adı ile bulunduğum çalışma kitabında aynı adı içeren sayfa mevcut ise uyarı vermeli

5-Taşıma yapılacak ise eskiyi önce silmeli.
 
Son düzenleme:
Katılım
24 Mart 2008
Mesajlar
468
Excel Vers. ve Dili
2007TR - 2010TR
örnek dosya ekleyerek daha kolay çözüm bulabilirsiniz
 

kykbt

Altın Üye
Katılım
12 Nisan 2006
Mesajlar
271
Excel Vers. ve Dili
Office 2003
Office 2007
Altın Üyelik Bitiş Tarihi
29-05-2025
örnek dosya ekleyerek daha kolay çözüm bulabilirsiniz
Arkadaş Merhaba

İki farklı çalışma kitabı ve iki farklı klasördeler nasıl örnek dosya koymalıyım çözemedim.
onun için ilk mesajı daha acıklayıcı yapmaya calıştım. Yani yeniden düzenledim.
 
Katılım
24 Mart 2008
Mesajlar
468
Excel Vers. ve Dili
2007TR - 2010TR
Öncelikle kusura bakmayın sayfa taşıma nasıl olacak bilmiyorum ama evvelce aşağıdaki kodu bu siteden temin etmiştim, bir inceleyin eminim bir fikir verecektir. Aşağıdaki kodlar kapalı olan VERİLER klasöründe bulunan excel dosyalarındaki e ve g sutunlarındaki bilgileri dosyayı açmadan getirmektedir. Bir deneyin.

Sub VERİLERİ_GÜNCELLE()
Application.ScreenUpdating = False
Dosya_Yolu = "C:\Documents and Settings\tomson\Desktop\VERİLER\"
Set S1 = Workbooks("ANA DOSYA.xls").Sheets("Sayfa1")
S1.Select
[A2:B65536].ClearContents
Set Klasör = CreateObject("Scripting.FileSystemObject").GetFold er(Dosya_Yolu).Files
For Each Dosya In Klasör
If InStr(Dosya.Name, ".xls") > 0 Then
If Dosya.Name <> "ANA DOSYA.xls" Then
Workbooks.Open Filename:=Dosya
Sheets("Sayfa1").Select
Range("E2:E" & [E65536].End(3).Row).Copy S1.Cells(65536, 1).End(3).Offset(1)
Range("G2:G" & [G65536].End(3).Row).Copy S1.Cells(65536, 2).End(3).Offset(1)
ActiveWorkbook.Close True
End If
End If
Next
Application.ScreenUpdating = True
MsgBox "Veriler aktarılmıştır.", vbInformation
End Sub
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Arkadaş Merhaba

İki farklı çalışma kitabı ve iki farklı klasördeler nasıl örnek dosya koymalıyım çözemedim.
onun için ilk mesajı daha acıklayıcı yapmaya calıştım. Yani yeniden düzenledim.
Boş Module...
Kod:
Function FncSayfaVarmi(strSayfaAdi As String, wkb As Excel.Workbook) As Boolean
'VBE ve ClsSf.'larından kullanılabilir./Hsayar
Dim Var As Byte
FncSayfaVarmi = False
For Each clsObj In wkb.Sheets
    If clsObj.Name = strSayfaAdi Then
        Var = Var + 1
        Exit For
    End If
Next
Set clsObj = Nothing
If Var > 0 Then FncSayfaVarmi = True
End Function
Kodlarınızın içine monte ediniz.
Kod:
Sub SyfTest()
Dim strSayfaAdi As String
Dim wkb         As Excel.Workbook
Dim bolVar As Boolean
strSayfaAdi = "Sayfa3"
Set wkb = ThisWorkbook
bolVar = FncSayfaVarmi(strSayfaAdi, wkb)
If wkb.Worksheets.Count < 2 Then
  MsgBox "Çalışma Sayfasında başka sayfa kalmayacağından silme işlemini yapamazsınız.", 16, "Hsayar"
  bolVar = False
End If
Application.DisplayAlerts = False
If bolVar = True Then wkb.Worksheets(strSayfaAdi).Delete
Application.DisplayAlerts = True
End Sub
wkb değerine diğer çalışma kitabını set ederek (açık olmak kaydıyla) o kitapta aradığınız sayfa varmı onuda kontrol edebilirsiniz.
Ben Thisworkbook olarak yaptım.
 

kykbt

Altın Üye
Katılım
12 Nisan 2006
Mesajlar
271
Excel Vers. ve Dili
Office 2003
Office 2007
Altın Üyelik Bitiş Tarihi
29-05-2025
Arkadaşlar cok hızlısınız teşekkür ediyorum.
Önce bir inceleyeyim, uygulamaya calışayım.
Sonucu size dönerim.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Sub SyfTest()
'iki çalışam kitabındaki Sayfaları karşılaştırır, Aynı sayfa bu çalışma kitabındada varsa siler.
've diğer kitaptakini bu kitaba taşır.
Dim strSayfaAdi As String
Dim wkb         As Excel.Workbook
Dim wkb2         As Excel.Workbook
Dim bolVar As Boolean
'Dim bolVar2 As Boolean
strSayfaAdi = "Sayfa4"
Set wkb = ThisWorkbook
Set wkb2 = Workbooks("Kitap2")
bolVar = FncSayfaVarmi(strSayfaAdi, wkb)
'bolVar2 = FncSayfaVarmi(strSayfaAdi, wkb2)
If bolVar = FncSayfaVarmi(strSayfaAdi, wkb2) Then
  msj = wkb.Name & " ve " & wkb2.Name & " Çalışma kitaplarında" & vbNewLine
  msj = msj & strSayfaAdi & " Adlı Çalışma Sayfası bulunmaktadır."
  MsgBox msj, 16, "hsayar"
  If wkb.Worksheets.Count < 2 Then
    MsgBox "Çalışma Sayfasında başka sayfa kalmayacağından silme işlemini yapamazsınız.", 16, "Hsayar"
    bolVar = False
  End If
  Application.DisplayAlerts = False
  If bolVar = True Then
     wkb.Worksheets(strSayfaAdi).Delete
     wkb2.Sheets(strSayfaAdi).Move After:=wkb.Sheets(1)
 end if
  Application.DisplayAlerts = True
End If
Set wkb = Nothing
Set wkb2 = Nothing
End Sub
aradığınız kod bu olabilir.
 

kykbt

Altın Üye
Katılım
12 Nisan 2006
Mesajlar
271
Excel Vers. ve Dili
Office 2003
Office 2007
Altın Üyelik Bitiş Tarihi
29-05-2025
Arkadaşım diğer çalışma kitabını acmadan bu işi haletmeliyim
diğer kitabı acmadan -wkb2- yi tanıyamıyor
Set wkb2 = c:\maxi.xls gibi
çalışma kitabının *.xls uzantısını yok edip sorgulanabilir diye düşünüyorum
çünki içindeki sayfa adı aynı yani maxi.xls ise içindeki dosya maxi
 

kykbt

Altın Üye
Katılım
12 Nisan 2006
Mesajlar
271
Excel Vers. ve Dili
Office 2003
Office 2007
Altın Üyelik Bitiş Tarihi
29-05-2025
Arkadaşlar Merhaba

Başka bir klasör içindeki çalışma kitabı içindeki bir -sayfayı- bulunduğum çalışma kitabına taşımak istiyorum.

Örnek: Çalışma kitabı adı c:\maxi.xls bu kitap içindeki taşınacak sayfa adı maxi (sayfa adları hep kitap adı ile aynı oluyor)

Mantık olarak;

1-Önce yapılması gereken maxi.xls var ise içinde maxi diye sayfa mevcuttur. Kitabı acmadan içinde maxi sayfası olduğunu biliyoruz.
veya kitabı acmadan icine bakabilirsek,

2-Bulunduğum çalışma kitabında maxi adlı sayfa mevcutmu bunu bulmalıyım.

3-İki bilgiyi karşılaştırmalıyım.

4-Taşıyacağım sayfa adı ile bulunduğum çalışma kitabında aynı adı içeren sayfa mevcut ise uyarı vermeli

5-Taşıma yapılacak ise eskiyi önce silmeli.
Arkadaşlar yine ilk mesaj üzerinden gitmek istiyorum

Özetlersek

Farklı klasördeki adı belli (maxi.xls) kitap adından (maxi.xls uzantısını yok etmeliyiz)

Çalışma kitabımızda aynı adı içeren (maxi) sayfa varmı
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
strSayfaAdi = "maxi"
yaparsanız sorununuz çözülür. Ben bir kitabı açmadan sayfayı nasıl taşıyacağınızı merak ettim.
Uğraştığınız kodları eklersenzi oradan yola çıkılabilir.
 

kykbt

Altın Üye
Katılım
12 Nisan 2006
Mesajlar
271
Excel Vers. ve Dili
Office 2003
Office 2007
Altın Üyelik Bitiş Tarihi
29-05-2025
Sayın Sayar Merhaba

Size dosyayı ekledim, tabi dosyadan bir miktar konumuzdan uzak ayrıntıyı temizlemeye calıştım. Ayrıca sizin kodu tekrar koymadım
siz nereye nasıl monte edecekseniz öyle yapalım. (Dosyayı c:\ altına atarsanız.)

Ayrıca Diğer çalışma Kitapını acmadan nasıl dosya alınacak demişsiniz. Burada bende dosyayı acıp içini kontrol ediyorum.

Ama istediğim acmadan yapmak cünki kitapın adı zaten sayfa adı ile aynı ismi içeriyor. Buradan yola cıkılabilir belki,

Biz kitap adı varsa sayfa var olduğunu bileceğiz. Bu durumda calışma kitapımızdaki sayfaları kontrol edip ad varsa önce calışma kitapımızdakini silip sonra diğerini kopyalayacağız.
 

Ekli dosyalar

Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Sayın Sayar Merhaba

Size dosyayı ekledim, tabi dosyadan bir miktar konumuzdan uzak ayrıntıyı temizlemeye calıştım. Ayrıca sizin kodu tekrar koymadım
siz nereye nasıl monte edecekseniz öyle yapalım. (Dosyayı c:\ altına atarsanız.)

Ayrıca Diğer çalışma Kitapını acmadan nasıl dosya alınacak demişsiniz. Burada bende dosyayı acıp içini kontrol ediyorum.

Ama istediğim acmadan yapmak cünki kitapın adı zaten sayfa adı ile aynı ismi içeriyor. Buradan yola cıkılabilir belki,

Biz kitap adı varsa sayfa var olduğunu bileceğiz. Bu durumda calışma kitapımızdaki sayfaları kontrol edip ad varsa önce calışma kitapımızdakini silip sonra diğerini kopyalayacağız.
Ben başka bir çalışma kitabını açmadan nasıl kopyalama yapılır bilmiyorum.
benim bidiğim
Kitabı aç, Sayfayı kopyala, Kitabı kapat şeklinde.

birde anladığım kadarı ile bu kitaplar 1 er sayfalık ve bir daha lazım olmayacak. BU durumda Kodlarla Kitabı aç, Sayfayı kopyala, kitabı kapat, kitabı sil yapılabilir.
 
Üst