Hücre karakter uzunluğuna göre işlem yapmak

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
723
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Merhaba;

Yapmaya çalıştığım iki işlem var. Yardımcı olabilir misiniz ?

1- E sütununda bulunan hücrelerde karakter uzunluğu 4 den fazla olan hücreleri C sütununa kopyalamak
2 -E sütununda bulunan hücrelerde karakter uzunluğu 4 den fazla olan hücrelerin değerini değiştirmek, yerine MG00 yazdırmak
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,712
Excel Vers. ve Dili
Excel 2019 Türkçe
Kod:
Sub xx()
    For Each hcr In Range("e1:e" & [e65536].End(3).Row)
        If Len(hcr.Text) > 4 Then
            Cells(hcr.Row, 3) = Cells(hcr.Row, "e")
            Cells(hcr.Row, "e") = "MG00"
        End If
    
    Next
End Sub
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
723
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Hamitcan Bey;

Kodu denedim. İlginç birşey var.
Yeni açılmış bir excelde çalışıyor.
Kodu uygulayacağım excelde çalışmıyor.
Yeni açılmış excele verileri yapıştırıyorum, çalışıyor.
Kodu uygulayacağım excelde çalışmıyor.

Anlam veremedim.
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,712
Excel Vers. ve Dili
Excel 2019 Türkçe
Sayfa koruması olabilir mi ?
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
723
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Sayfa koruması yok. Dün akşam çok denemeler yaptım, en sonunda hatanın ne olduğunu anladım.
Kodunuzu uygulayacağım excelde A sütunu ile D sütunu en son 39.000 satırda bitiyorsa,
E sütunu Ctrl + Alt + Aşağı ok yönünü kullandığınızda 100.000 satıra kadar gidiyor.
Sizin kodunuzu uygulamadan önce E sütununda 100.000. satıra kadar formül var.
Formülle işimiz bitince hata değerleri çıkıyor, ve biz hata değerlerini siliyoruz.
Fakat dediğim gibi tuş kombinasyonu ile hücre içeriği boş olsa da 100.000. satıra kadar gidiyor ve kod çalışmıyor.

Bende 39.000 satırı başka bir excele kopyaladım ve orada kodunuzu çalıştırdım.
Oldu en sonunda :)

Emeğinize, ilginize teşekkür ederim.
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,712
Excel Vers. ve Dili
Excel 2019 Türkçe
Kod:
For Each hcr In Range("e1:e" & [e65536].End(3).Row)
yerine aşağıdaki satırı yazın. El alışkanlığı eski usul yazıyoruz. Aslında son satırı bulma ile ilgili farklı cümleler kurulabiliyor
Kod:
For Each hcr In Range("e1:e" & [e500000].End(3).Row)
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
723
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Hamitcan Bey,

İlk yazdığınız kodda satır sayısını 100.000 yapmıştım olmadı.
Sonra sizin yeni kodunuzu uyguladım, çalıştı.
E sütununda CTRL+Alt+Aşağı ok ile 100.000 satıra geliyordu.
Yazdığınız kodda satır sayısını 100.001 yaptım, yine oldu.
Hatanın nedenini tam olarak anlamış oldum.
Herşey için teşekkürler 🙂
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,370
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Hamit bey'in verdiği koddaki döngüyü aşağıdaki gibi yaparsanız yarın birgün bill amca satır sayısını 5 milyona da çıkartsa çalışacaktır.
Kod:
For Each hcr In Range("E1:E" & Cells(Rows.Count, "E").End(xlUp).Row)
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
723
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Necdet Bey;

İlginize teşekkür ederim.
Kodunuz çalıştı.
 
Üst