• DİKKAT

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

Excel makroda belirli isimdeki sayfayı seçmek

  • Konbuyu başlatan Konbuyu başlatan ozzzzz
  • Başlangıç tarihi Başlangıç tarihi
Katılım
4 Temmuz 2019
Mesajlar
5
Excel Vers. ve Dili
türkçe
Herkese Merhaba,
Konu hakkında acil yardımlarınızı rica ediyorum.
Excel'imde
x = 1
bas:
ThisWorkbook.Sheets.Add
Sheets(ActiveSheet.Name).Name = x
x = x + 1
If x = y + 1 Then
GoTo son
Else
GoTo bas
son:
End If

bu kodlar ile yeni sayfa açtırıp bu sayfalara sıra ile 1,2,3,4...numaralarını verdiriyorum. Bu açılan sayfaları sıra ile seçtirmek ve seçtiğim sayfada da belli bir alan seçtirmek istiyorum ama yapamıyorum . bir inputbox'a değer girdiriyorum ve bu değere y dedim. Bu y değeri kadar sayfa açtırıyorum. ve bu y değeri ile for lu bir döngü yazdım.
For i = 1 To y
Sheets("1").Select
Range(Cells(1, 1), Cells(12, 60)).Select
bu şekilde yazdım fakat hata veriyor. ben sıra ile y değerine kadar bütün sayfaları seçtirip bu sayfalarda da belli aralık seçtirmek istiyorum. 1.sayfayı seçtigimde son hücre yani (12,60) hücresi dolu ise diğer sayfaya geçsin onda da dolu ise y değerine kdr o sayfaya geçsin. Umarım anlatabilmişimdir yardımlarınızı bekliyorum :)
 
Son düzenleme:
Merhaba.

Aşağıdaki kodu inceleyiniz.

Kod:
Sub Test()
    Dim y As String
    Dim syf As Worksheet
    y = InputBox("Kaç sayfa eklemek istiyorsunuz?")
    If y = "" Then Exit Sub
    If y > ThisWorkbook.Worksheets.Count Then
        MsgBox "Girdiğiniz rakam dosyada bulunan sayfa sayısından fazla, lütfen sayfa sayısını geçmeyiniz.", vbExclamation
        Exit Sub
    End If
    For Each syf In ThisWorkbook.Worksheets
        If syf.Cells(12, 60) = "" Then
            syf.Select
            syf.Range(Cells(1, 1), Cells(12, 60)).Select
            Exit Sub
        End If
    Next
End Sub
 
Merhaba, öncelikle cok teşekkür ederim. Benim calışma kitabımda belirli bir sayfa acık değil sayfaları girilen y değeri kadar otomatik açtırıyorum.
ve açtıgım sayfalara 1 2 3 diye otomatik isim veriyor açılma sırasına uygun olarak. ben istiyorum ki bi döngü yazayım ve 1.sayfayı seçtirsin sonra eğer (12,60) hücresi dolu ise 2.sayfaya geçsin orda 12,60 hücresi dolu ise 3.sayfaya bu sekilde gerekirse 100 sayfa acılsa bile kontrol etsin istiyorum. for i=
1 to y diyip sheets(i).select diyorum ama i değerini direkt y değeri olarak kabul ediyor mesela y değerine 3 yazdıysam i yi 3 kabul ediyor halbuki döngüde 1 2 3 diye sırayla bütün sayfalara geçmesi lazım.
 
Verdiğim kodlar tam da sizin istediğinizi yapıyor. Deneyiniz.
 
Verdiğim kodlar tam da sizin istediğinizi yapıyor. Deneyiniz.
Kodunuzu denedim fakat istediğim o değil isterseniz size kodu atayım. çalışmayan yeri işaretleyim bir de öyle bakın. Yardımlarınız için şimdiden cok tesekkürler.
Private Sub CommandButton1_Click()

Dim x As Integer
y = InputBox("Adet giriniz:")
y1 = InputBox("Adeti tekrar giriniz")

If y = y1 Then
x = 1
bas:
ThisWorkbook.Sheets.Add
Sheets(ActiveSheet.Name).Name = x (burada sayfa açtırıyorum girilen y değeri kadar)
x = x + 1
If x = y + 1 Then
GoTo son
Else
GoTo bas
son:
End If
Else

y = InputBox("Seçtiğiniz üründen kaç koli üretileceğini giriniz.", "Koli adeti")
y1 = InputBox("Koli adetini tekrar giriniz.", "Koli adeti")
x = 1
ilk:
ThisWorkbook.Sheets.Add
Sheets(ActiveSheet.Name).Name = x
x = x + 1
If x = y + 1 Then
GoTo bitir
Else
GoTo ilk
bitir:
End If
End If
Dim i As Integer
foradön:
For i = y To 1 Step -1 (burda da bahsettiğim for lu döngü fakat işe yaramıyor.)
Sheets(i).Select
ActiveSheet.Range("a1:bh12").Select
aynısayfa:
If Range("bh12").Value = "" Then
GoTo foradön
Else
GoTo aynısayfa
End If
If a = y And bh12 > 0 Then (burayı daha düzenlemedim dikkate almayınız lütfen.)
Dim FileName As String
Application.DisplayAlerts = False
FileName = Format(Now, "dd_mm_yyyy")
ActiveWorkbook.SaveAs FileName

Else
End If
Next
End Sub
 
Son düzenleme:
Valla ben pek bişe anlamadım ama For döngüsünün bir işe yaramadığını gördüm çözmek için
foradön: ve aynısayfa: satırlarını en alta Next deyiminin üstüne yazmalısınız. aşağıdaki şekilde olacak.
Böy

Kod:
        Else
        
        End If
foradön:
aynısayfa:
    Next
End Sub
 
Valla ben pek bişe anlamadım ama For döngüsünün bir işe yaramadığını gördüm çözmek için
foradön: ve aynısayfa: satırlarını en alta Next deyiminin üstüne yazmalısınız. aşağıdaki şekilde olacak.
Böy

Kod:
        Else
       
        End If
foradön:
aynısayfa:
    Next
End Sub
hata verilen yer sheets(i).select dediğimde i değerine sadece y değerine ne yazdıyssam onu atıyor. MEsela y'ye10 yazdıysam inputbox'a 1'den 10'a kdr değerleri atamıyor.sadece 10 değerini atıyor çözemedigim kısım bu .
 
En son mesajda yazdığım şekilde yaparsan o sorun düzelecektir.
 
Geri
Üst