• DİKKAT

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

Kontrollü yeni sayfa oluşturma

Katılım
21 Ocak 2009
Mesajlar
40
Excel Vers. ve Dili
Office 2013
Merhaba,
Aşağıdaki kodla "AnaSayfa" sayfasındaki F12 hücresindeki değer ismiyle yeni sayfa oluşturuyor (aynı çalışma kitabı içinde), fakat o isimde sayfa mevcut ise kontrolü sonra yapıyor ve sayfayı kopyaladıktan sonra "Bu Sicil No ile Personel Mevcuttur Lütfen Kontrol Edin..." uyarısı veriyor.

Öncelikle; eğer F12 deki değer ismi ile (aynı çalışma kitabı içinde) sayfa mevcut ise uyarı versin ve işlem dursun, o isimde sayfa yoksa; sayfayı kopyalayıp isim versin istiyorum, nasıl yapabiliriz?



Kod:
Sub yenipersonel()
'
' yenipersonel Makro
'
    
    Sheets("Sablon").Visible = True
    Sheets("Sablon").Copy After:=Worksheets(Worksheets.Count)
    NewPageName = Sheets("AnaSayfa").Range("f12").Value
    If NewPageName = Cancel Then Exit Sub
    For a = 1 To Sheets.Count
    If UCase(Sheets(a).Name) = UCase(NewPageName) Then
    MsgBox "Bu Sicil No ile Personel Mevcuttur Lütfen Kontrol Edin..."
    End If
    Next
    ActiveWindow.ActiveSheet.Name = NewPageName
End Sub
 
Birde böyle deneyin
Sub yenipersonel()
'
' yenipersonel Makro
'

Sheets("Sablon").Visible = True


For a = 1 To Sheets.Count
If UCase(Sheets(a).Name) = UCase(NewPageName) Then
MsgBox "Bu Sicil No ile Personel Mevcuttur Lütfen Kontrol Edin..."
Exit Sub
Else
Sheets("Sablon").Copy After:=Worksheets(Worksheets.Count)
If NewPageName = Cancel Then Exit Sub
NewPageName = Sheets("AnaSayfa").Range("f12").Value
End If
Next
ActiveWindow.ActiveSheet.Name = NewPageName
End Sub
 
Birde böyle deneyin
Sub yenipersonel()
'
' yenipersonel Makro
'

Sheets("Sablon").Visible = True


For a = 1 To Sheets.Count
If UCase(Sheets(a).Name) = UCase(NewPageName) Then
MsgBox "Bu Sicil No ile Personel Mevcuttur Lütfen Kontrol Edin..."
Exit Sub
Else
Sheets("Sablon").Copy After:=Worksheets(Worksheets.Count)
If NewPageName = Cancel Then Exit Sub
NewPageName = Sheets("AnaSayfa").Range("f12").Value
End If
Next
ActiveWindow.ActiveSheet.Name = NewPageName
End Sub

olmadı malesef, sayfa varsa da yoksa da kopyalayıp, isim de vermeden kalıyor
 
Merhaba,

Bu şekilde deneyin.

Kod:
Sub yenipersonel()
'
' yenipersonel Makro
'
    
    NewPageName = Sheets("AnaSayfa").Range("f12").Value
    
    For a = 1 To Sheets.Count
        If UCase(Sheets(a).Name) = UCase(NewPageName) Then
            MsgBox "Bu Sicil No ile Personel Mevcuttur Lütfen Kontrol Edin..."
            Exit Sub
        End If
    Next
    
    Sheets("Sablon").Visible = True
    Sheets("Sablon").Copy After:=Worksheets(Worksheets.Count)
    
    'If NewPageName = Cancel Then Exit Sub

    ActiveWindow.ActiveSheet.Name = NewPageName
    
End Sub
 
Merhaba,

Bu şekilde deneyin.

Kod:
Sub yenipersonel()
'
' yenipersonel Makro
'
   
    NewPageName = Sheets("AnaSayfa").Range("f12").Value
   
    For a = 1 To Sheets.Count
        If UCase(Sheets(a).Name) = UCase(NewPageName) Then
            MsgBox "Bu Sicil No ile Personel Mevcuttur Lütfen Kontrol Edin..."
            Exit Sub
        End If
    Next
   
    Sheets("Sablon").Visible = True
    Sheets("Sablon").Copy After:=Worksheets(Worksheets.Count)
   
    'If NewPageName = Cancel Then Exit Sub

    ActiveWindow.ActiveSheet.Name = NewPageName
   
End Sub

Teşekkür ediyorum, tam istediğim gibi oldu, emeğinize sağlık...
 
Denermisiniz.
Sub yenipersonel()
'
' yenipersonel Makro
'
Sayfa = Sheets("AnaSayfa").Range("f12").Value
If SayfaVarMi(Sayfa) Then

MsgBox "Bu Sicil No ile Personel Mevcuttur Lütfen Kontrol Edin..."
Exit Sub

Else
Sheets("Sablon").Copy After:=Worksheets(Worksheets.Count)
NewPageName = Sayfa
'If NewPageName = Cancel Then Exit Sub
End If
ActiveWindow.ActiveSheet.Name = NewPageName
End Sub
Function SayfaVarMi(SayfaAdi As String) As Boolean
On Error Resume Next
SayfaVarMi = CBool(Len(Worksheets(SayfaAdi).Name) > 0)
End Function
 
Ömer Bey cevap vermiş görmedim benim gönderdiğim eğer çalışırsa alternatif olsun.
 
Geri
Üst