• DİKKAT

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

Soru Sayfa Çoğaltma Hakkında.

Katılım
8 Aralık 2011
Mesajlar
964
Excel Vers. ve Dili
Excel 2016,32bit
Merhabalar,
Çalışma sayfamda forumda bulunan örneklerden bakarak oluşturmuş olduğum userform üzerinden "TASLAK SAYFA" sı üzerinden yeniden sayfa oluşturabiliyorum. Sorunum şu ki, "TASLAK SAYFA" sayfası içerisinde kodlar mevcut ve bu kodlar sadece "TASLAK SAYFA" içerisinde çalışmakta.
Userfomda yeni bir sayfa oluştururken sayfa adı değiştiği için kodlar çalışmamaktadır.
Oluşturulan her yeni sayfa da bu kodların çalışabilmesi mümkün müdür? "TASLAK SAYFA"sı içerisindeki kodlar çok uzun olduğundan burada eklememiştim.:-(
 

Ekli dosyalar

Merhaba.
Bir sayfanın kod kısmına Range("A1")="Test" kodunu yazar ve çalıştırırsanız, kodun bulunduğu sayfanın A1 hücresine "Test" yazmış olursunuz.

Yani sayfa ismi belirtilmemişse kod bulunduğu sayfada işlem yapar.
Onun için kodun bulunduğu sayfada işlem yapacaksanız sayfa ismini belirtmeyin.

Yani hv.Range yerine sadece Range yazın.
Aşağıdakileri de hiç yazmayacaksınız.
Kod:
Dim hv As Worksheet
Set hv = Sheets("TASLAK SAYFA")
 
Merhaba Muzaffer bey,

İki adet kod mevcut ;
Bir tanesinde
Kod:
Set Sayfa = Sheets("TASLAK SAYFA")
bu şekilde sayfa ismi belirtiliyor.

Diğerinde de
Kod:
Set hv = Sheets("TASLAK SAYFA")
bu şekilde.
Bir önceki mesajınız da belirtmiş olduğunuz gibi "hv.Range " yazan yerlere sadece "Range" yazacağım. Lakin "set hv" de sayfa ismi belirtildiğinden orayı nasıl değiştirmek uygun olacak acaba.
 
Aşağıdakileri de hiç yazmayacaksınız-Sileceksiniz.
Kod:
Dim hv As Worksheet
Set hv = Sheets("TASLAK SAYFA")
 
Muzaffer bey ,
Uzun olan kodu söylediğiniz şekilde yaptım. Sorun olmadı teşekkür ederim.
Lakin aşağıdaki kodu yapamadım.

Bu kısmı silmiştim.

Kod:
Dim son As Integer
Set Sayfa = Sheets("TASLAK SAYFA")

Bu kısımlarda sorun oldu ;
son = Sayfa.Cells(Rows.Count, "C").End(3).Row

a = Left(Sayfa.Cells(i, "A").Value, 1)



Kod:
Sub DDZNLEME()
Dim Sayfa As Worksheet
Dim son As Integer
Set Sayfa = Sheets("TASLAK SAYFA")

son = Sayfa.Cells(Rows.Count, "C").End(3).Row
'Kural 3
For i = 3 To son
a = Left(Sayfa.Cells(i, "A").Value, 1)

If a = "Y" Then
Cells(i, "D") = "C"

ElseIf a = "R" Then
Cells(i, "D") = "T"

ElseIf a = "G" Then
Cells(i, "D") = "A"

ElseIf a = "B" Then
Cells(i, "D") = "G"
Else

End If
Next i

End Sub
 
"TASLAK SAYFA" adlı sayfayı hiçbir değişkene hiç atamayacaksınız.
Kod:
Dim Sayfa As Worksheet
Set Sayfa = Sheets("TASLAK SAYFA")
yada benzeri hiçbir kod olmamalı "TASLAK SAYFA" sayfası hiçbir değişkene atama yapılmamalı.

Sayfa.Cells yerine Cells
Sayfa.Range yerine Range
yazmalısınız.
 
Bu arada dim ve Set ile yaptığınız tanımlar kodun çalışmasına engel değil. O satırlar kalsa bile kodun kalan bölümünde o tanımlanmış değişkenleri kullanmazsanız sorun olmaz.
 
Teşekkür ederim Yusuf bey ilginiz ve bilgilendirmeniz için.
 
Geri
Üst