• DİKKAT

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

üçlü seçim

Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Bir liste bu şekilde gruplar halinde uzuyor.Mantığını bir türlü kuramadığım bir sorum olacak;
Ben bu gruplardan hangi satırı seçersem seceyim üçlü grubu da seçili hale getirecek kodu nasıl yazarım?



Kod:
1
1
1
2
2
2
3
3
3
4
4
4
 
Soruyu yazdıktan sonra cevabıma ulaştım :)

Kod:
satr = WorksheetFunction.RoundUp((ListBox1.ListIndex + 1) / 3, 0) * 3
ListBox1.Selected(satr - 1) = True
ListBox1.Selected(satr - 2) = True
ListBox1.Selected(satr - 3) = True


Alternatif kodlara açığım gayet düz mantıkta kurulmuş bir çözüm benimkisi :)
 
Merhaba.
Sayfanın kod bölümüne (alt taraftan sayfa adına fareyle sağ tıklayın->KOD GÖRÜNTÜLEyi seçtiğinizde açılan ekranın sağ tarafındaki boş alana) yapıştırarak dener misiniz?
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row <> Right(Selection.Address, Len(Selection.Address) - 3) Then Exit Sub
If Target = "" Then Exit Sub
If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
    ilk = WorksheetFunction.Match(Target, Range("A:A"), 0)
    Range("A" & ilk & ":A" & ilk + 2).Select
End Sub

SONRADAN İLAVE NOT: Ben sayfadaki hücreleri seçili hale getirmek istediğinizi (Listbox/Liste Kutusu'ndan bahsetmeyince) düşünmüştüm.
 
Buyurun.:cool:
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ilk As Range, son As Range, deg As Variant
On Error Resume Next
deg = ActiveCell.Value
If deg = "" Then Exit Sub
Set ilk = ActiveCell
Set son = ActiveCell
If ActiveCell.Offset(-1, 0).Value = deg Then Set ilk = ActiveCell.Offset(-1, 0)
If ActiveCell.Offset(-2, 0).Value = deg Then Set ilk = ActiveCell.Offset(-2, 0)
If ActiveCell.Offset(1, 0).Value = deg Then Set son = ActiveCell.Offset(1, 0)
If ActiveCell.Offset(2, 0).Value = deg Then Set son = ActiveCell.Offset(2, 0)
Range(ilk.Address & ":" & son.Address).Select
End Sub
 
Listboxta dememişsiniz soruda.Haliyle tüm cevaplar sayfa için verildi.:cool:
 
Evet örnek basit olsun diye o yoldan sormuştum mantığını kuramayınca.Sonradan ilham geldi:)

Ömer bey hazır burdayken :)
Yukarıdaki kodlarla listboxdaki 3 satırı birden seçmeyi başardım.
Fakat bunları silmeyi beceremedim :)

Kod:
Private Sub satır_iptal_Click()

satr = WorksheetFunction.RoundUp((ListBox1.ListIndex + 1) / 3, 0) * 3
For s = satr - 3 To satr
ListBox1.RemoveItem ListBox1.Selected(s)
Next

End Sub
 
Onu da buldum sonunda birkaç ipucuyla tabi :)

Kod:
Private Sub satır_iptal_Click()
For s = ListBox1.ListCount - 1 To 0 Step -1
If ListBox1.Selected(s) = True Then
ListBox1.RemoveItem s
End If
Next s
End Sub
 
Geri
Üst