• DİKKAT

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

Seçili satıların numaraları

Katılım
2 Mart 2007
Mesajlar
603
Excel Vers. ve Dili
2003
Arkadaşlar konu taşınmış ve kapanmış tekrar açmam gerekti.
Kullanıcı E sütunundan belirli bir sütun aralığını seçti bana bu satır aralığı lazım;

ilk: 10.satırdan başladı
son: 30. satır dahil seçti.

Kod:
 For Each myhcr In Selection.Cells

ile Step olmuyor atlıyor. Ayrıca aynı işlemi A sütünuna da uygulamam lazım.
 
Yokmudur bir gelişme.
For Each myhcr In Selection.Cells
ile kontrol edip satırı silince sonraki satırı atlıyor.
Step işlemini nasıl kullanacağım burada.
 
Merhaba

sayın conari, bu konu daha önce işlendiği ve bende bu konuda cevap verdiğimi bildiğim için sorununuzu anlayabildiğimi umuyorum. Ama yinede belirtmeden edemeyeceğim ki, konu dışında olan birisi emin olun bu yazdıklarınzdan sonra ne yapmak istediğinizi anlamayacaktır. Lütfen sorununuzu anlatırken biraz daha açıklayıcı olun.

Sorunuzun cevabına gelince;
(umuyorum ki anladım) For each Next döngüsü ile bu isteğinizi yaparken, her hücre teker teker arandığından dolayı aranıpta koşula göre bulunan hücrenin silinmesi durumunda hücreler bir yukarı kayacağından dolayı alt alta gelen (koşula uyan) hücrelerde sıkıntıyla karşılaşmak gayet mümkün. for each next döngüsü ile Giderilebilmesi için neler yapılabilir diye düşündüğümde de aklıma her koşuldan sonra döngüyü Go To komutu ile tekrar başa almak geldi. Umarım işinize yarar, kodu aşağıdaki gibi denermisiniz...

Kod:
Dim myhcr As Range
10 For Each myhcr In Selection.Cells
If myhcr.Value = 1 Then myhcr.EntireRow.Delete: GoTo 10
Next
 
Ayhan Bey, önceki konu taşınmış. ve link ulaşılamıyor.
Dolayısı ile konuyu bilen kişilerin ilgileneceklerini düşündüm.

Evet bu kod ile oldu.
Yanlız dediğim gibi kullınıcı E sutununda seçiyor. burada karşılaştırma yapıyor ve siliyoruz. A sutununda da işlem farklı bir işlem yapmam lazım. burada seçili satırların A sütunu için bir şey yap denemezmi?
 
@Ayhan Bey bir şey eklemem gerekti = koşulunda problem yok ama <> değil yapınca kısır döngüye giriyor sanırım
 
Şöyle örnekleyim;
E sütununda aralık seçti. Biz burada karşılaştırmayı yaptık ve gerekli yerleri sildik. bundan sonra aynı seçilen satırlara ait A sütunundaki değerleri güncellemem gerekiyor.
 
Selamlar,

Aşağıdaki kod ile seçili alanın satır numaralarını bulabilirsiniz.

Kod:
Option Explicit
 
Sub SEÇİLİ_ALANIN_SATIR_NOSUNU_BUL()
    Dim ADRES As String, AYIR As Variant
    Dim X As Byte, VERİ As Variant
    Dim İLK_SATIR_NO As Long, SON_SATIR_NO As Long
 
    ADRES = Selection.Address
    AYIR = Split(ADRES, "$")
 
    For X = 0 To UBound(AYIR)
    VERİ = Replace(AYIR(X), ":", "")
        If IsNumeric(VERİ) = True Then
            If İLK_SATIR_NO = Empty Then
            İLK_SATIR_NO = VERİ
            ElseIf SON_SATIR_NO = Empty Then
            SON_SATIR_NO = VERİ
            End If
        End If
    Next
 
    MsgBox "Seçili alanın ilk satır numarası : " & İLK_SATIR_NO & vbCrLf & _
           "Seçili alanın son satır numarası : " & IIf(SON_SATIR_NO = 0, İLK_SATIR_NO, SON_SATIR_NO), vbInformation
End Sub
 
Mesela

Seçilen satırların A sütununda bulunan bölümlerinde hücre içinde "1" yazılıysa rengini değiştir...

Kod:
If Cells(myhcr.Row, 1) = 1 Then Cells(myhcr.Row, 1).Interior.ColorIndex = 6
 
Ayhan Bey bu şekilde oluyor ama dediğim gibi <> değil kullanınca kısır döngüye giriyor sanki. prosedürden çıkmıyor.
A sütununda da o zaman farklı hücrelerde işlem yapıyor birazdan bir örnek ekleyeceğim.

Örnek Eklendi.
 

Ekli dosyalar

Son düzenleme:
Korhan Beyin Scriptinden faydalanarak step -1 li yaptım şu an = ile <> ile de problem olmuyor. Teşekkürler.
 
Küçük bir örnek eklemişsiniz. vermiş olduğunuz örnekte anladığım kadarıyla ;

1 olmayan hücreleri silmek istemişsiniz ve bunun için <> 1 demişsiniz.

> 1 derseniz olurmu? Çünkü o şekilde kod kısır döngüye girmemektedir.

Kod:
If myhcr.Value > 1 Then myhcr.EntireRow.Delete: GoTo 10
gibi??
 
Ayhan Bey ilginize teşekkürler,
1 orada örnek olarak verildi .
oradaki değer string de olabilir. Tarih te olabilir ondan dolayı > veya < kullamıyorum.
 
Geri
Üst