• DİKKAT

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

en büyük alan seçmek

İşlemini yapılabilir mi bilmiyorum ancak boş satırlar seçimi zorlaştırır diye düşünüyorum.

Aşağıdaki kod dosyada kullanılan alanı seçiyor. Sizin dosyanızda B3:J52 aralığını seçti:

Kod:
Sub seç()
ActiveSheet.UsedRange.Select
End Sub

Sadece dolu hücreleri seç denildiğinde ise ilk cümlede bahsettiğim boş satır/hücreler nedeniyle tam isteğiniz olmaz.

Buna çözüm bulunacak mı çok merak ediyorum.
 
Amacınız sarı renkli hücreleri seçmek ise aşağıdaki kodu kullanabilirsiniz.

Kod:
Sub Makro1()
    Cells.SpecialCells(xlCellTypeConstants, 23).Select
End Sub
 
İşlemini yapılabilir mi bilmiyorum ancak boş satırlar seçimi zorlaştırır diye düşünüyorum.

Aşağıdaki kod dosyada kullanılan alanı seçiyor. Sizin dosyanızda B3:J52 aralığını seçti:

Kod:
Sub seç()
ActiveSheet.UsedRange.Select
End Sub

Sadece dolu hücreleri seç denildiğinde ise ilk cümlede bahsettiğim boş satır/hücreler nedeniyle tam isteğiniz olmaz.

Buna çözüm bulunacak mı çok merak ediyorum.
İşlemini yapılabilir mi bilmiyorum ancak boş satırlar seçimi zorlaştırır diye düşünüyorum.

Aşağıdaki kod dosyada kullanılan alanı seçiyor. Sizin dosyanızda B3:J52 aralığını seçti:

yusuf bey öncelikle ilginiz için teşekkür ederim.
boş hücreler arazinin olmadığı kesildiği yerleri gösteriyor sadece içinde rakam olan hücreler arasından seçim yapmamız gerekiyor.
 
yusuf bey öncelikle ilginiz için teşekkür ederim.
boş hücreler arazinin olmadığı kesildiği yerleri gösteriyor sadece içinde rakam olan hücreler arasından seçim yapmamız gerekiyor.
Benim boş satırlardan kastım örnek dosyanızdaki 1. ve 2. satırlar ya da H sütunu ve sağdaki diğer sütunlar ya da 22 ve altındaki satırlar değil. 4, 6, 20 vb satırlar, F3, G3, G7, B15, B21 gibi hücreleri kastediyorum. Yani içinde rakam olan satır ve hücrelerin arasındaki boş hücreler, seçim işini zorlaştırır.

Siz muhtemelen B3:E8, B9:G13 ve C14:G21 aralıklarının aynı anda seçilmesini istiyorsunuz değil mi?
 
Benim boş satırlardan kastım örnek dosyanızdaki 1. ve 2. satırlar ya da H sütunu ve sağdaki diğer sütunlar ya da 22 ve altındaki satırlar değil. 4, 6, 20 vb satırlar, F3, G3, G7, B15, B21 gibi hücreleri kastediyorum. Yani içinde rakam olan satır ve hücrelerin arasındaki boş hücreler, seçim işini zorlaştırır.

Siz muhtemelen B3:E8, B9:G13 ve C14:G21 aralıklarının aynı anda seçilmesini istiyorsunuz değil mi?

Hocam onların hiç önemi yok silebiliriz onları, bu arazinin tamamı içinden enbüyük alanı seçmek asıl amacımız.
yani C6; C12 ve G6;G12 arasında kalan alanı otomatik seçmemiz gerekiyor.
 
Benim boş satırlardan kastım örnek dosyanızdaki 1. ve 2. satırlar ya da H sütunu ve sağdaki diğer sütunlar ya da 22 ve altındaki satırlar değil. 4, 6, 20 vb satırlar, F3, G3, G7, B15, B21 gibi hücreleri kastediyorum. Yani içinde rakam olan satır ve hücrelerin arasındaki boş hücreler, seçim işini zorlaştırır.

Siz muhtemelen B3:E8, B9:G13 ve C14:G21 aralıklarının aynı anda seçilmesini istiyorsunuz değil mi?

http://s9.dosya.tc/server/vy8203/sekli_duzgun_olmayan.xlsx.html
 
Örnek dosyanızda sarıya boyadığınız yerleri mi seçmek istiyorsunuz? Eğer öyleyse her zaman seçilecek alan Sarı boyalı mı olacak?
 
Merhaba.

Yanlış anlamadıysam, (biraz dolambaçlı da olsa) aşağıdaki kod'un işinizi görmesi lazım.

Alt taraftan ilgili sayfanın adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçin.
Açılan VBA ekranının sağ tarafındaki boş alana aşağıdaki kod'u yapıştırın ve F5 tuşuna basarak kod'u çalıştırın.
.
Kod:
[FONT="Arial Narrow"]Sub baran()
[A1].Activate
sonsat = Range([A1].SpecialCells(xlLastCell).Address(0, 0)).Row
sonsut = Range([A1].SpecialCells(xlLastCell).Address(0, 0)).Column
başsut = Cells(1, 1).End(2).Column
başsat = Cells(1, 1).End(4).Row
For satt = 1 To sonsat
If Cells(satt, 1) <> "" Then
başsut = 1: GoTo 20
End If
If Cells(satt, 1).End(2).Column > sonsut Then GoTo 10
If başsut > Cells(satt, 1).End(2).Column Then başsut = Cells(satt, 1).End(2).Column
10: Next
20: ilksut = başsut

For sutt = 1 To sonsut
If Cells(1, sutt) <> "" Then
başsat = 1: GoTo 40
End If
If Cells(1, sutt).End(4).Row > sonsat Then GoTo 30
If başsat > Cells(1, sutt).End(4).Row Then başsat = Cells(1, sutt).End(4).Row
30: Next
40: ilksat = başsat
For satır = ilksat To sonsat
    For sütun = ilksut To sonsut
100: If Cells(satır, sütun) = "" Then GoTo 50
        ssat = Cells(satır, sütun).End(4).Row
        ssut = Cells(satır, sütun).End(2).Column
        If WorksheetFunction.CountBlank(Range(Cells(satır, sütun), Cells(ssat, ssut))) = 0 Then
            If (Cells(satır, sütun).End(4).Row - satır + 1) * (Cells(satır, sütun).End(2).Column - sütun + 1) > alan Then
            alan = (Cells(satır, sütun).End(4).Row - satır + 1) * (Cells(satır, sütun).End(2).Column - sütun + 1)
            satır = satır + 1
            ilkhücre = Cells(satır - 1, sütun).Address(0, 0)
            sonhücre = Cells(ssat, ssut).Address(0, 0)
            GoTo 100
            End If: End If
50: Next: Next
Range(ilkhücre & ":" & sonhücre).Select
MsgBox "Seçilen alan hücre sayısı : " & alan
End Sub[/FONT]
 
Son düzenleme:
Merhaba.

Yanlış anlamadıysam, (biraz dolambaçlı da olsa) aşağıdaki kod'un işinizi görmesi lazım.

Alt taraftan ilgili sayfanın adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçin.
Açılan VBA ekranının sağ tarafındaki boş alana aşağıdaki kod'u yapıştırın ve F5 tuşuna basarak kod'u çalıştırın.
.
Kod:
[FONT="Arial Narrow"]Sub renk_alan_brn()
Dim hücre As Range
Range("AA:AC").ClearContents: [A1].Activate
son = [A1].SpecialCells(xlLastCell).Address(0, 0): alan = "A1:" & son
For Each hücre In Range(alan)
    If hücre.Value = 0 Or hücre = "" Then GoTo 10
    renk = hücre.Interior.Color
        If WorksheetFunction.CountIf(Range("AA:AA"), renk) = 0 Then
            satır = [AA65536].End(3).Row + 1
            Cells(satır, "AA") = renk: Cells(satır, "AB") = Cells(satır, "AB") + hücre.Value
        Else
            satır = WorksheetFunction.Match(renk, Range("AA:AA"), 0)
            Cells(satır, "AB") = Cells(satır, "AB") + hücre.Value
        End If
10: Next
büyük = WorksheetFunction.Max(Range("AB:AB"))
seçrenk = Cells(WorksheetFunction.Match(büyük, Range("AB:AB"), 0), "AA")
For Each hücre In Range(alan)
    If hücre.Interior.Color = seçrenk Then
        seçim = seçim & ", " & hücre.Address(0, 0)
    End If
Next
    Range("AA:AC").ClearContents
    Range(Mid(seçim, 3, Len(seçim) - 2)).Activate
MsgBox "Toplamı en büyük olan rengi taşıyan hücreler seçildi..." & vbLf & _
        "Seçilen alan toplamı:  " & büyük
End Sub[/FONT]

çok teşekkür ederim hocam ilginiz için deniyecem şimdi.
bütün hücreleri gözönüne alarak en büyük alanı seçtirmek istiyoruz başka bir arazi ile karşılaşıldığında aynı kodu kullanabilelim
 
Kod, A1 hücresinden sayfadaki son dolu hücreye kadar işlem yaparak,
renklerine göre toplamlarını alıp,
hangi rengin sayısal toplamı yüksek ise o rengi taşıyan hücreleri seçiyor.

Uyarı: Kod, AA ve AB sütunlarını kullanıyor, bu iki sütuna veri yazarsanız silinir.
.
 
Kod, A1 hücresinden sayfadaki son dolu hücreye kadar işlem yaparak,
renklerine göre toplamlarını alıp,
hangi rengin sayısal toplamı yüksek ise o rengi taşıyan hücreleri seçiyor.

Uyarı: Kod, AA ve AB sütunlarını kullanıyor, bu iki sütuna veri yazarsanız silinir.
.


Hocam hücrenin içindeki değerlerin bizim için önemi yok sadece şekilsel olarak en büyük alanı seçmemiz gerekiyor.
otomatik olarak seçeceğimiz en büyük alanın (yeşil alan en son örnekteki) renginin farklı olması yeterli olur bizim için.



http://s9.dosya.tc/server/d6tts7/sekli_duzgun_olmayan.xlsx.html
 
Tekrar merhaba.

Verdiğim koddaki + hücre.Value kısımlarını (2 yerde var)
+1 olarak değiştirmeniz yeterli olur.
.
 
Bu şekilde nereye kadar gideceği belli olmayan soruyla uğraşmak istemem.

-- sorunuzu, gerçek belgenizle aynı yapıda bir örnek belge üzerinden sormanızı,
-- belgeye yeni verilerin nasıl eklendiğini (elle veri yazarak mı, yoksa başka kaynaktan kopyala-yapıştır şeklinde mi gibi) belirtmenizi,
-- işlemin hangi aşamada yapılmasını istediğinizi net olarak açıklamanızı (kod'un tetiklenme zamanı)

öneriyorum.
.
 
selam,
alternatif olarak
bu örnek de benden olsun...


Not : İstenilenin net olması yönünde Ömer Bey ile aynı düşüncedeyim..

NOT : #20 mesajda belirtilen "renklendirme önemli değil" ibaresinden sonra anlamı kalmayan ek kaldırıldı.
 
Son düzenleme:
Bu şekilde nereye kadar gideceği belli olmayan soruyla uğraşmak istemem.

-- sorunuzu, gerçek belgenizle aynı yapıda bir örnek belge üzerinden sormanızı,
-- belgeye yeni verilerin nasıl eklendiğini (elle veri yazarak mı, yoksa başka kaynaktan kopyala-yapıştır şeklinde mi gibi) belirtmenizi,
-- işlemin hangi aşamada yapılmasını istediğinizi net olarak açıklamanızı (kod'un tetiklenme zamanı)

öneriyorum.
.

hocam bu değerleri elle giriyoruz.
Hocam o görünen şeklin tamamından en büyük alanı seçmek istiyoruz renklendirme önemli değil en çok hücreyi içeren kısımda en büyük alan olacaktır.
 
Geri
Üst