• DİKKAT

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

sadece makro ile sayfa ekleme

  • Konbuyu başlatan Konbuyu başlatan serdenm
  • Başlangıç tarihi Başlangıç tarihi
Katılım
17 Şubat 2006
Mesajlar
117
Asagidaki kodu yazdim. butona makroyu atadım. calistirdigimda once "BOŞ SAYFA1", tekrar butana bastığımda "BOŞ SAYFA0" geliyor. 3. basışta ise 400 hatasını veriyor. istedigim ise eğer sayfa mevcutsa sayaç şeklinde numaratörün artması... Tesekkurler...

Sub ser()
Dim i As Integer
i = 0
Dim Sayfa As Worksheet
Set Sayfa = ThisWorkbook.Worksheets.Add
Sayfa.Name = "BOŞ SAYFA" & i
For a = 1 To Sheets.Count
If Sheets(a).Name = Sayfa.Name Then Sayfa.Name = "BOŞ SAYFA" & i + 1 Else GoTo 20
Next a
20 Exit Sub
End Sub
 
Bence sheets.count ile sayfa sayısını saydırarak isim vermek daha kolay aşağıdaki kodu inceleyin.

[vb:1:8659dd63a7]Sub sayfaekle()
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "BOŞ SAYFA" & Sheets.Count - 2
Sheets(1).Select
End Sub
[/vb:1:8659dd63a7]
 
sayin leventm,
aradaki sayfayı sildiğimde buda "400" hata kodu veriyor.
ör: boş sayfa0, boş sayfa1, boş sayfa2, boş sayfa3 oldugunda bos sayfa 2 yi sildigimde ve tekrar butona bastığımda hata:400 yaziyor...

neden olabilir?
 
Serdenm bendende değişik bir örnek. kolay gelsin.


Sub sayfaekle()
On Error Resume Next
Worksheets(Nom).Select
If Err <> 0 Then Worksheets.Add.Name = Nom
End Sub
 
ör: boş sayfa0, boş sayfa1, boş sayfa2, boş sayfa3 oldugunda bos sayfa 2 yi sildigimde ve tekrar butona bastığımda hata:400 yaziyor...

Bu gayet normal, aradan sayfa silince aynı isimli bir dosya daha oluşturmaya çalıştığından hata veriyor. Birde aşağıdaki gibi deneyin. Yalnız bu seferde sayfaların yerlerini değiştirmemeniz gerekiyor.

[vb:1:bb59bac554]Sub sayfaekle()
deg = Right(Sheets(Sheets.Count).Name, Len(Sheets(Sheets.Count).Name) - 9)
If deg = "" Then deg = 0
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "BOŞ SAYFA" & deg + 1
Sheets(1).Select
End Sub
[/vb:1:bb59bac554]
 
leventm, az önceki kod "invalid procedure call or argument" hatası veriyor.
nasıl düzeltebilirim?
 
Dosyanızı ekleyin onun üzerinden gidelim.
 
Selamlar;

otomatik sayfa açmak benim de çok işime yarayacak fakat benim her yeni sayfa için standart bir formatım olması gerekiyor. Yani "YENİ SAYFA" butonuna tıkladığımda bir "User Form" açılsa ven ben orada sayfa adını ve tarihini girdiğimde "MASTER" sayfsı gibi bir sayfa açılsa ve ilgili yerlere tarihler yazılıp bir önceki günden de devir rakamlarını alsa olur mu acaba (!)
 
Bu kodu bir deneyiniz.

Sub Düğme1_Tıklat()
ActiveSheet.Copy After:=Worksheets(Worksheets.Count)
End Sub
 
Sn serdenm aşağıdaki kodu dosyanızdaki tüm butonlara bağlayarak deneyin.

[vb:1:e63ba7a76e]Sub sayfaekle2()
On Error GoTo 10
Sheets("BOŞ SAYFA0").Select
deg = Right(Sheets(Sheets.Count).Name, Len(Sheets(Sheets.Count).Name) - 9)
If deg = "" Then deg = 0
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "BOŞ SAYFA" & deg + 1
Sheets(1).Select
Exit Sub
10 Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "BOŞ SAYFA0"
Sheets(1).Select
End Sub
[/vb:1:e63ba7a76e]

Sn SYNC sizde aşağıdaki kodu yeni sayfa isimli butona bağlayarak çalıştırın. Sanıyorum userforma gerek yok, aşağıdaki kod bugün tarihli bir sayfa oluşturur ve bir gün önceki verileri bu sayfaya aktarır.

[vb:1:e63ba7a76e]Sub kopyala()
On Error Resume Next
Sheets("MASTER").Copy Before:=Sheets("MASTER")
Sheets("MASTER (2)").Name = Day(Date) & " " & UCase(Format(Date, "mmmm"))
[k2,a5] = Date
[d5] = Sheets(Day(Date) - 1 & " " & UCase(Format(Date, "mmmm"))).[d5]
[e5] = Sheets(Day(Date) - 1 & " " & UCase(Format(Date, "mmmm"))).[e5]
End Sub
[/vb:1:e63ba7a76e]
 
Sayin Leventm,

BOŞ SAYFA0, BOŞ SAYFA1 ekleyip BOŞ SAYFA0'ı sildiğimde yine "400" hatası veriyor.bu problemi aşmanın bir yolu yok mudur? 400 hatası ile ilgili help bilgisi de yok... :(
 
sayin arkadaslar,

bu soruna bir cozum bulamazmiyiz. mantik olarak her sheet in ismine bakip ayni sheet varsa "i" degiskenini bir artiran (for each dongusu gibi) makro ile halledilemezmi mesela??? :yardim:

tesekkurler.
 
arkadaslar bu sorunu cozmem gerekiyor. :(
leventm nin kodu cok yaklasti ama arada sayfa silince yine hata veriyor.
:agla:
 
Aşağıdaki kodu deneyin.

[vb:1:44739b5b23]Sub sayfaekle2()
On Error GoTo 10
If Left(Sheets(Sheets.Count).Name, 9) = "BOŞ SAYFA" Then GoTo 20
Sheets("BOŞ SAYFA0").Select
20 deg = Right(Sheets(Sheets.Count).Name, Len(Sheets(Sheets.Count).Name) - 9)
If deg = "" Then deg = 0
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "BOŞ SAYFA" & deg + 1
Sheets(1).Select
Exit Sub
10 Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "BOŞ SAYFA0"
Sheets(1).Select
End Sub
[/vb:1:44739b5b23]
 
Geri
Üst