• DİKKAT

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

Verileri 3 Koşula Göre Gruplayıp ListView'e Alma

Katılım
26 Mayıs 2005
Mesajlar
609
Excel Vers. ve Dili
Office 2022 - Türkçe
Arkadaşlar herkese iyi geceler.

Kod:
Sub listele()
Set s1 = Sheets("sayfa1")
Set s2 = Sheets("sayfa2")
For a = 2 To s1.[b65536].End(3).Row
If s1.Cells(a - 1, "b") & s1.Cells(a - 1, "c") <> s1.Cells(a, "b") & s1.Cells(a, "c") Then
c = c + 1
For b = 2 To 7
s2.Cells(c + 1, b - 1) = s1.Cells(a, b)
Next
End If
Next
End Sub

Yukarıdaki kodu kullanarak verileri 2 koşula göre gruplayıp sayfa2'ye alabiliyorum.
Yapmış olduğum Satis Çikiş Formunda bul deyip koşulları seçtikten sonra BUL butonuna tıkladığım zaman verileri ListView'e alıyorum. Ama tekrar eden aynı kayıtlar var. Bu tekrar eden kayıtları Belge No1, Belge No2 ve Fiş Türü Satis_Cikis_Fisi olanları gruplamak istiyorum.
 
Arkada&#351;lar kodu a&#351;a&#287;&#305;daki gibi de&#287;i&#351;tirdim ama bu seferde Next Komutunda hata verdi

Kod:
Private Sub CommandButton1_Click()
ListView1.ListItems.Clear

Set sh = Sheets(TextBox1.Value)
son = sh.Cells(65536, 1).End(xlUp).Row
Select Case Veri.Value
       '######################_Stk_Hrk_####################
       Case "H_Belge_No1": Set Rng = sh.Range("B2:B" & son)
       Case "H_Belge_No2": Set Rng = sh.Range("C2:C" & son)
       Case "H_Belge_Tarihi": Set Rng = sh.Range("D2:D" & son)
       Case "H_Fis_T&#252;r&#252;": Set Rng = sh.Range("E2:E" & son)
       Case "H_Firma_Kodu": Set Rng = sh.Range("F2:F" & son)
       Case "H_Ambar_Kodu": Set Rng = sh.Range("G2:G" & son)
       Case "H_&#304;rsaliye_No": Set Rng = sh.Range("H2:H" & son)
       Case "H_&#304;rsaliye_Tarihi": Set Rng = sh.Range("I2:I" & son)
       Case "H_Sip_No1": Set Rng = sh.Range("J2:J" & son)
       Case "H_Sip_No2": Set Rng = sh.Range("K2:K" & son)
       Case "H_Stok_Kodu": Set Rng = sh.Range("L2:L" & son)
       Case "H_G_Miktar": Set Rng = sh.Range("M2:M" & son)
       Case "H_C_Miktar": Set Rng = sh.Range("N2:N" & son)
       
       Case Else: MsgBox "Ge&#231;erli bir alan se&#231;in", vbCritical, "HATALI ALAN &#304;SM&#304;": Set sh = Nothing: Exit Sub

End Select
Select Case Kosul.Value
       Case "Benzer": Set Bul = Rng.Find("*" & Deger.Text & "*")
       Case "&#304;le Ba&#351;layan": Set Bul = Rng.Find(Deger.Text & "*")
       Case "&#304;le Biten": Set Bul = Rng.Find("*" & Deger.Text)
       Case "E&#351;ittir": Set Bul = Rng.Find(Deger.Text, MatchCase:=True)
       Case Else: MsgBox "Ge&#231;erli bir filtre se&#231;in", vbCritical, "HATALI F&#304;LTRE": Set sh = Nothing: Exit Sub
End Select
        If Not Bul Is Nothing Then
                adres = Bul.Address
             Do
                For a = 2 To sh.[b65536].End(3).Row
                If sh.Cells(a - 1, "b") & sh.Cells(a - 1, "c") <> sh.Cells(a, "b") & sh.Cells(a, "c") Then
                sat = Bul.Row
                With ListView1
                   .ListItems.Add , , sh.Cells(sat, 1)
                    X = X + 1
                   .ListItems(X).ListSubItems.Add , , sh.Cells(sat, 2)
                   .ListItems(X).ListSubItems.Add , , sh.Cells(sat, 3)
                   .ListItems(X).ListSubItems.Add , , sh.Cells(sat, 4)
                   .ListItems(X).ListSubItems.Add , , sh.Cells(sat, 5)
                   .ListItems(X).ListSubItems.Add , , sh.Cells(sat, 6)
                   .ListItems(X).ListSubItems.Add , , sh.Cells(sat, 8)
                   .ListItems(X).ListSubItems.Add , , sh.Cells(sat, 7)
                End With
                Set Bul = Rng.FindNext(Bul)
[COLOR="Red"]Next[/COLOR]
             Loop While Not Bul Is Nothing And Bul.Address <> adres
        End If
Set sh = Nothing
Set Rng = Nothing
Set Bul = Nothing

End Sub
 
arkada&#351;lar herkese hay&#305;rl&#305; cumalar bu &#351;ekilde bi gruplama yapabilirmiyiz yada alternatif bir c&#246;z&#252;m bulabilirmiyiz
 
Herkese iyi geceler. Bir ka&#231; g&#252;nd&#252;r ara&#351;t&#305;r&#305;yorum ama bi sonuca varamad&#305;m. Yard&#305;mc&#305; olabilirmisiniz
 
Arkadaşlar kodu aşağıdaki gibi değiştirdim ama bu seferde Next Komutunda hata verdi

Next ifadesini End İf satırının bir altına yazıp denermisiniz. Aşağıdaki gibi...


Kod:
If Not Bul Is Nothing Then
                adres = Bul.Address
             Do
                For a = 2 To sh.[b65536].End(3).Row
                If sh.Cells(a - 1, "b") & sh.Cells(a - 1, "c") <> sh.Cells(a, "b") & sh.Cells(a, "c") Then
                sat = Bul.Row
                With ListView1
                   .ListItems.Add , , sh.Cells(sat, 1)
                    X = X + 1
                   .ListItems(X).ListSubItems.Add , , sh.Cells(sat, 2)
                   .ListItems(X).ListSubItems.Add , , sh.Cells(sat, 3)
                   .ListItems(X).ListSubItems.Add , , sh.Cells(sat, 4)
                   .ListItems(X).ListSubItems.Add , , sh.Cells(sat, 5)
                   .ListItems(X).ListSubItems.Add , , sh.Cells(sat, 6)
                   .ListItems(X).ListSubItems.Add , , sh.Cells(sat, 8)
                   .ListItems(X).ListSubItems.Add , , sh.Cells(sat, 7)
                End With
                Set Bul = Rng.FindNext(Bul)
             Loop While Not Bul Is Nothing And Bul.Address <> adres
        End If
[COLOR=#ff0000]        Next[/COLOR]
 
karde&#351; dedi&#287;in gibi yapt&#305;m ama copile error Loop Without Do diye hata veriyor bir t&#252;rl&#252; c&#246;zemedim bende
 
Arkada&#351;lar herkese iyi ak&#351;amlar. Konu gerilerde kalm&#305;&#351; yakla&#351;&#305;k 10 g&#252;nd&#252;r bende ara&#351;t&#305;r&#305;yorum ama bi&#351;ey bulamad&#305;m ve yapamad&#305;m. Bana konuyla ilgili yol g&#246;sterirmisiniz istedi&#287;im &#351;ekilde olmuyorsa veye yap&#305;lam&#305;yorsa farkl&#305; bir &#246;nerisi olan arkada&#351;&#305;m&#305;z varm&#305;.
 
Geri
Üst