Sayfa dolu ise yeni sayfa açıp verileri kaydetmek

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selam arkadaşlar,

Excelde yapmış olduğum bir çalışmam var.(Adisyon Takip Programı)
Bu çalışmamı geliştirmek için birkaç ekleme yapmak istiyorum.

Ne yapmak istediğime gelince;

Þuanda kullandığım uygulamada zimmetleme işlemi 65535 kayıda müsade ediyor. Yani bir excel sayfası bunu arttırmak istiyorum. Kayıt işlemini yaparken tuşa bastığımda "Zimmet-1" sayfasını kontrol edecek eğer tüm satırlar doluysa "Zimmet-2" adıyla bir sayfa oluşturup (1. sayfa ile aynı özellikte) verileri oraya kaydedecek. Bu şekilde kayıt için bana örnek bir kodlama verebilirmisiniz. Verilerim A-G sütun aralığında bulunmaktadır.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodları ilave edin. Aşağıdaki kod mevcut ZİMMET isimli sayfayı kopyalar ve içini boşaltır. Ayrıca bu yeni sayfaya ZİMMET ismini verirken dolan sayfanında ismini değiştirir. Kodlarınızda yeni eklenen sayfaya kayıtın devam etmesi için hücre tanımlamalarının başına sheets("ZİMMET").cells(..) ilavesini mutlaka yapın.

[vb:1:b167bf8675]Set s1 = Sheets("zimmet")
say = WorksheetFunction.CountA(s1.[a2:a65536])
If say = 65535 Then
Sheets("ZİMMET").Copy after:=Sheets(Sheets.Count)
Sheets("ZİMMET").Select
[a2:g65536].ClearContents[/vb:1:b167bf8675]
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sn. leventm,

Bende çözüm olarak zimmet için 15 sayfa oluşturdum. Fakat şöyle bir sorun ortaya çıktı. Diyelimki 100 adet adisyon zimmetlemek istiyorum ve "ZİMMET_EKLE_1" sayfasında son 10 satır boş olsun kayıt tuşuna bastığımda ilk olarak boş olan 10 satıra verileri işledikten sonra kalan 90 adet adisyon serisini "ZİMMET_EKLE_2" sayfasından devam etsin. Kısacası kayıt tuşuna bastığımda ilk sayfayı kontrol edecek dolu ise ikinci sayfayı seçip işleme devam edecek bu döngü 15 sayfa için devam edecek. Bunun için aşağıdaki kodu nasıl değiştireceğim. Yada daha kısa bir kod olabilir mi?

Sheets("ZİMMET_EKLE_1").Select
If Range("B65536").Value <> "" Then
Sheets("ZİMMET_EKLE_2").Select
If Range("B65536").Value <> "" Then
Sheets("ZİMMET_EKLE_3").Select
If Range("B65536").Value <> "" Then
Sheets("ZİMMET_EKLE_4").Select
If Range("B65536").Value <> "" Then
Sheets("ZİMMET_EKLE_5").Select
If Range("B65536").Value <> "" Then
Sheets("ZİMMET_EKLE_6").Select
If Range("B65536").Value <> "" Then
Sheets("ZİMMET_EKLE_7").Select
If Range("B65536").Value <> "" Then
Sheets("ZİMMET_EKLE_8").Select
If Range("B65536").Value <> "" Then
Sheets("ZİMMET_EKLE_9").Select
If Range("B65536").Value <> "" Then
Sheets("ZİMMET_EKLE_10").Select
If Range("B65536").Value <> "" Then
Sheets("ZİMMET_EKLE_11").Select
If Range("B65536").Value <> "" Then
Sheets("ZİMMET_EKLE_12").Select
If Range("B65536").Value <> "" Then
Sheets("ZİMMET_EKLE_13").Select
If Range("B65536").Value <> "" Then
Sheets("ZİMMET_EKLE_14").Select
If Range("B65536").Value <> "" Then
Sheets("ZİMMET_EKLE_15").Select
If Range("B65536").Value <> "" Then

MsgBox ("Tüm sayfalar dolu olduğundan zimmetleme işlemi yapılamıyor.")

Else
Range("B65536").End(xlUp).Select
For i = TextBox5.Text To TextBox6.Text
ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(0) = CDate(TextBox1.Text)
ActiveCell.Offset(0, 1) = TextBox2.Text
ActiveCell.Offset(0, 2) = TextBox3.Text
ActiveCell.Offset(0, 3) = i
ActiveCell.Offset(0, 4) = TextBox4.Text
ActiveCell.Offset(0, 5) = "EVET"
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Arkadaşlar bu konuda yardımlarınızı bekliyorum.
 
Üst