Soru 400 hatası

Katılım
18 Ağustos 2009
Mesajlar
740
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Sub cogalt()
tespit = InputBox("Gün", "Tespit")
For i = Application.Sheets.Count To tespit + Application.Sheets.Count - 1
Sheets(Application.Sheets.Count).Select
Sheets(Application.Sheets.Count).Copy Before:=Sheets(1)
Sheets(1).Name = i + 1
Sheets(1).Range("P1") = Sheets("1").Range("P1") + Application.Sheets.Count - 1
Next i
For j = 1 To Application.Sheets.Count
If Sheets(CStr(j)).Name <> "" Then
Sheets(CStr(j)).Select
Sheets(CStr(j)).Move Before:=Sheets(j)
End If
Next j
Sheets(1).Select
End Sub



Dosyamda yukarıdaki macro neden aşağıdaki hatayı verir çözemedim arkadaşlar. Basit başka bir dosyada deniyor çalışıyor ancak kendi dosyamda hata veriyor nedense..

219134
 
Katılım
18 Ağustos 2009
Mesajlar
740
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Arkadaşlar dosyamda SİLME ve SİLME2 adı altınta ve gizli olan 2 data veri sayfam var onları silince düzeliyor aktarıyor. Sanırım buna 1 eklenti gerekiyor
 

Trilenium

Destek Ekibi
Destek Ekibi
Katılım
16 Eylül 2008
Mesajlar
1,289
Excel Vers. ve Dili
Microsoft Office 2019 English
Sheets(1).Range("P1") bu satırda bir veriyi bekliyor sanırım ve orasıda boş olma ihtimali var
 
Katılım
18 Ağustos 2009
Mesajlar
740
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Sheets(1).Range("P1") bu satırda bir veriyi bekliyor sanırım ve orasıda boş olma ihtimali var
Rakamsal sayfalarda sorun yok eğer dosya içinde 1-2-3 den harici A-B-C vb.. sayfalar olursa hata veriyor
 
Katılım
18 Ağustos 2009
Mesajlar
740
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
SİLME ve SİLME2 sayfalarını da 1 den sonra 2 ve 3 kabul ediyor.
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,369
Excel Vers. ve Dili
2019 Türkçe
1 rakamını tırnak içine almışsınız.
Sheets("1").Range("P1")= Sayfa adı 1 olan sayfanın P1 hücresine başvurur.
Sheets(1).Range("P1")= Sayfa indeks numarası 1 olan sayfanın P1 hücresine başvurur.

Aşağıdaki satırı düzeltmelisiniz.

Sheets(1).Range("P1") = Sheets("1").Range("P1") + Application.Sheets.Count - 1
 
Katılım
18 Ağustos 2009
Mesajlar
740
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
1 rakamını tırnak içine almışsınız.
Sheets("1").Range("P1")= Sayfa adı 1 olan sayfanın P1 hücresine başvurur.
Sheets(1).Range("P1")= Sayfa indeks numarası 1 olan sayfanın P1 hücresine başvurur.

Aşağıdaki satırı düzeltmelisiniz.

Sheets(1).Range("P1") = Sheets("1").Range("P1") + Application.Sheets.Count - 1

Onuda yaptım

219139
219140
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,369
Excel Vers. ve Dili
2019 Türkçe
Aşağıdaki kodları deneyin.

Kod:
Sub cogalt()
    Dim Tespit As Integer, i As Integer
    Tespit = InputBox("Gün", "Tespit")
    For i = Application.Sheets.Count To Tespit + Application.Sheets.Count - 1
        With Sheets("1")
            .Select
            .Copy before:=Sheets(1)
        End With
        With ActiveSheet
            .Name = i + 1
            .Range("P1") = .Range("P1") + Application.Sheets.Count - 1
        End With
    Next i
    For i = 1 To Application.Sheets.Count - 1
        If Sheets(i).Name <> "" Then
            Sheets(i).Select
            Sheets(i).Move before:=Sheets(i)
        End If
    Next i
    Sheets(1).Select
End Sub
 
Katılım
18 Ağustos 2009
Mesajlar
740
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Aşağıdaki kodları deneyin.

Kod:
Sub cogalt()
    Dim Tespit As Integer, i As Integer
    Tespit = InputBox("Gün", "Tespit")
    For i = Application.Sheets.Count To Tespit + Application.Sheets.Count - 1
        With Sheets("1")
            .Select
            .Copy before:=Sheets(1)
        End With
        With ActiveSheet
            .Name = i + 1
            .Range("P1") = .Range("P1") + Application.Sheets.Count - 1
        End With
    Next i
    For i = 1 To Application.Sheets.Count - 1
        If Sheets(i).Name <> "" Then
            Sheets(i).Select
            Sheets(i).Move before:=Sheets(i)
        End If
    Next i
    Sheets(1).Select
End Sub

Yardımınız için öncelikle teşekkür eder hocam ancak yine aynı.. SİLME ve SİLME2 sayfalarını 1 nolu sayfada çalıştırınca onlar 2-3 gibi kabul edip 4 den çoğaltmaya başlıyor. Kafayı yedirecek açıkcası.
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,369
Excel Vers. ve Dili
2019 Türkçe
Aşağıdaki kodları deneyin.

Kod:
Sub Düğme1_Tıkla()

    Dim Tespit As Integer, i As Integer
    Dim SayfaSayisi As Integer
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Tespit = InputBox("Gün", "Tespit")
    For i = 1 To Application.Sheets.Count
        If IsNumeric(Worksheets(i).Name) Then SayfaSayisi = 1 + SayfaSayisi
    Next
    For i = SayfaSayisi To Tespit + SayfaSayisi - 1
        With Sheets("1")
            .Select
            .Copy before:=Sheets(1)
        End With
        With ActiveSheet
            .Name = i + 1
            .Range("P1") = .Range("P1") + Application.Sheets.Count - 1
        End With
    Next i
    For i = 1 To SayfaSayisi
        If Sheets(i).Name <> "" Then
            Sheets(CStr(i)).Select
            Sheets(CStr(i)).Move before:=Sheets(SayfaSayisi)
        End If
    Next i
    Sheets(1).Select
    Application.EnableEvents = True
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
End Sub
 
Katılım
18 Ağustos 2009
Mesajlar
740
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Aşağıdaki kodları deneyin.

Kod:
Sub Düğme1_Tıkla()

    Dim Tespit As Integer, i As Integer
    Dim SayfaSayisi As Integer
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Tespit = InputBox("Gün", "Tespit")
    For i = 1 To Application.Sheets.Count
        If IsNumeric(Worksheets(i).Name) Then SayfaSayisi = 1 + SayfaSayisi
    Next
    For i = SayfaSayisi To Tespit + SayfaSayisi - 1
        With Sheets("1")
            .Select
            .Copy before:=Sheets(1)
        End With
        With ActiveSheet
            .Name = i + 1
            .Range("P1") = .Range("P1") + Application.Sheets.Count - 1
        End With
    Next i
    For i = 1 To SayfaSayisi
        If Sheets(i).Name <> "" Then
            Sheets(CStr(i)).Select
            Sheets(CStr(i)).Move before:=Sheets(SayfaSayisi)
        End If
    Next i
    Sheets(1).Select
    Application.EnableEvents = True
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
End Sub

Bu sefer olmuş ancak oluşturduğu tarihleri görmediği dosyaları da tarih gibi kabul ederek arttırmış hocam. 1 den 3 tane deyince mesela 2 sayfasına 04.06 , 3 sayfasına 05.06 atıyor. Son olarak bu düzelir bir de sıralama yapabilirse çok muhteşem olacak. Desteklerimiz için teşekkür eder . Hakkınızı helal edin.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,369
Excel Vers. ve Dili
2019 Türkçe
Onları da düzelttim. Tekrar deneyin.

Kod:
Sub Düğme1_Tıkla()

    Dim Tespit As Integer, i As Integer
    Dim SayfaSayisi As Integer
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Tespit = InputBox("Gün", "Tespit")
    For i = 1 To Application.Sheets.Count
        If IsNumeric(Worksheets(i).Name) Then SayfaSayisi = 1 + SayfaSayisi
    Next
    For i = SayfaSayisi To Tespit + SayfaSayisi - 1
        With Sheets("1")
            .Select
            .Copy before:=Sheets(1)
        End With
        With ActiveSheet
            .Name = i + 1
            .Range("P1") = .Range("P1") + SayfaSayisi + i - 1
        End With
    Next i
    For i = 1 To SayfaSayisi + Tespit
        Sheets(CStr(i)).Move before:=Sheets(SayfaSayisi + Tespit + 1)
    Next i
    Sheets(1).Select
    Application.EnableEvents = True
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
End Sub
 
Katılım
18 Ağustos 2009
Mesajlar
740
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Onları da düzelttim. Tekrar deneyin.

Kod:
Sub Düğme1_Tıkla()

    Dim Tespit As Integer, i As Integer
    Dim SayfaSayisi As Integer
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Tespit = InputBox("Gün", "Tespit")
    For i = 1 To Application.Sheets.Count
        If IsNumeric(Worksheets(i).Name) Then SayfaSayisi = 1 + SayfaSayisi
    Next
    For i = SayfaSayisi To Tespit + SayfaSayisi - 1
        With Sheets("1")
            .Select
            .Copy before:=Sheets(1)
        End With
        With ActiveSheet
            .Name = i + 1
            .Range("P1") = .Range("P1") + SayfaSayisi + i - 1
        End With
    Next i
    For i = 1 To SayfaSayisi + Tespit
        Sheets(CStr(i)).Move before:=Sheets(SayfaSayisi + Tespit + 1)
    Next i
    Sheets(1).Select
    Application.EnableEvents = True
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
End Sub


Sizide yordum hocam kusura bakmayın valla.. Ekteki dosyada 3 nolu sayfadan butondan çoğalt denilip 3 adet denildiğinde neden 4 nolu sayfanın tarihini 06.06.2020 veriyor? Bakıyorum kendim yapamıyorum inanın. Sizler nasıl yapıyorsunuz bunları :)) Amaç 1 sayfadan tek 1 seferde 30 adet çoğaltmak değil hocam mesela 1 den 5 adet çooğaltılacak 6 dan 5 adet vb.. Tarihde olursa bu sefer sıkıntı yok. Çok çok teşekkür eder iyi çalışmalar dilerim.
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,369
Excel Vers. ve Dili
2019 Türkçe
Deneyin.
Kod:
Sub Düğme1_Tıkla()
    Dim Tespit As Integer, i As Integer
    Dim SayfaSayisi As Integer
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Tespit = InputBox("Gün", "Tespit")
    For i = 1 To Application.Sheets.Count
        If IsNumeric(Worksheets(i).Name) Then SayfaSayisi = 1 + SayfaSayisi
    Next
    For i = SayfaSayisi To Tespit + SayfaSayisi - 1
        Sheets("1").Copy before:=Sheets(1)
        With ActiveSheet
            .Name = i + 1
            .Range("P1") = .Range("P1") + i
        End With
    Next i
    For i = 1 To SayfaSayisi + Tespit
        Sheets(CStr(i)).Move before:=Sheets(SayfaSayisi + Tespit + 1)
    Next i
    Sheets(1).Select
    Application.EnableEvents = True
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
End Sub
 
Son düzenleme:
Katılım
18 Ağustos 2009
Mesajlar
740
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Deneyin.
Kod:
Sub Düğme1_Tıkla()
    Dim Tespit As Integer, i As Integer
    Dim SayfaSayisi As Integer
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Tespit = InputBox("Gün", "Tespit")
    For i = 1 To Application.Sheets.Count
        If IsNumeric(Worksheets(i).Name) Then SayfaSayisi = 1 + SayfaSayisi
    Next
    For i = SayfaSayisi To Tespit + SayfaSayisi - 1
        With Sheets("1")
            .Select
            .Copy before:=Sheets(1)
        End With
        With ActiveSheet
            .Name = i + 1
            .Range("P1") = .Range("P1") + i
        End With
    Next i
    For i = 1 To SayfaSayisi + Tespit
        Sheets(CStr(i)).Move before:=Sheets(SayfaSayisi + Tespit + 1)
    Next i
    Sheets(1).Select
    Application.EnableEvents = True
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
End Sub

teşekkürler hocam hakkınızı helal edin
 
Katılım
18 Ağustos 2009
Mesajlar
740
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Kodu 24 nolu sayfamdaki butonda çalıştırdım hocam bu uyarıyı veriyor. Mevcut sayfayı tespit edip devam ettirecek kod içinde yokmuydu? Sanırım hep 1 nolu sayfayı başlangış kabul ediyor.


219157

Sub cogalt()
Dim Tespit As Integer, i As Integer
Dim SayfaSayisi As Integer
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Tespit = InputBox("Gün", "Tespit")
For i = 1 To Application.Sheets.Count
If IsNumeric(Worksheets(i).Name) Then SayfaSayisi = 1 + SayfaSayisi
Next
For i = SayfaSayisi To Tespit + SayfaSayisi - 1
With Sheets("1")
.Select
.Copy before:=Sheets(1)
End With
With ActiveSheet
.Name = i + 1
.Range("L1") = .Range("L1") + i
End With
Next i
For i = 1 To SayfaSayisi + Tespit
Sheets(CStr(i)).Move before:=Sheets(SayfaSayisi + Tespit + 1)
Next i
Sheets(1).Select
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
 
Üst