DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub seç()
ActiveSheet.UsedRange.Select
End Sub
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.İş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.
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.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?
Ö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?
[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]
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]
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.
.
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.
.