• DİKKAT

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

Makro kodu içerisinde filtre seçeneği

  • Konbuyu başlatan Konbuyu başlatan xternet
  • Başlangıç tarihi Başlangıç tarihi

xternet

Altın Üye
Katılım
12 Kasım 2004
Mesajlar
462
Excel Vers. ve Dili
2010 Tr
Merhaba Arkadaşlar

Aşağıda "makro kaydet" ile hazırladığım bir makro kodunun kesiti var.
Sorunum şu:
Mesela " Selection.AutoFilter Field:=2, Criteria1:="DEMONTAJ" " satırında filtrelemeyi DEMONTAJ kelimesine göre yapıyor. Sonraki satırda filtrelemeyi Şantiye kelimesine göre yapıyor.
Herşey normal. Yalnız filtrelenecek sutunda DEMONTAJ verisi yoksa kod hatalı sonuç veriyor.
Yapmak istediğim;

Selection.AutoFilter Field:=2, Criteria1:="DEMONTAJ"
veya
Selection.AutoFilter Field:=3, Criteria1:="Şantiye"

satırından hemen önce DEMONTAJ kelimesinin süzüleceği sutunda o kelimenin olup olmadığını sorgulamak ve eğer yoksa

Selection.AutoFilter Field:=2, Criteria1:="DEMONTAJ"

işlemini es geçip diğer satırdan koda devam etmek.
Diğer satırda da (Selection.AutoFilter Field:=3, Criteria1:="Şantiye")
şantiye kelimesini aynı şekilde sorgulatmak. Biri için gerekli kodu oluşturursak diğerini uygularım sanırım.

Bir şekilde zaman ayıran arkadaşlara teşekkür ederim.
İyi çalışmalar.





Sheets("DOKUM_1").Select
Range("I21:S1520").Select
Selection.ClearContents
Sheets("KOPYA_GIRIS_CIKIS").Select

Selection.AutoFilter Field:=2, Criteria1:="DEMONTAJ"
Selection.AutoFilter Field:=3, Criteria1:="Şantiye"
Range("I21:S1520").Select
Selection.Copy
Sheets("DOKUM_1").Select
Range("I21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("GENEL_DOKUM").Select
 
Merhaba,

Bu şekilde olabilir.

Kod:
If WorksheetFunction.CountIf(Range("J21:J1520"), "DEMONTAJ") <> 0 Then
    Range("I21:S1520").AutoFilter Field:=2, Criteria1:="DEMONTAJ"
End If
If WorksheetFunction.CountIf(Range("K21:K1520"), "Şantiye") <> 0 Then
    Range("I21:S1520").AutoFilter Field:=3, Criteria1:="Şantiye"
End If

.
 
Çok teşekkür ederim Sayın Ömer. Dediğiniz gibi oldu.
Zihninize sağlık. İyi çalışmalar.
 
Merhaba,

Bu şekilde olabilir.

Kod:
If WorksheetFunction.CountIf(Range("J21:J1520"), "DEMONTAJ") <> 0 Then
    Range("I21:S1520").AutoFilter Field:=2, Criteria1:="DEMONTAJ"
End If
If WorksheetFunction.CountIf(Range("K21:K1520"), "Şantiye") <> 0 Then
    Range("I21:S1520").AutoFilter Field:=3, Criteria1:="Şantiye"
End If

.

Merhaba arkadaşlar,

Yukarıdaki kodu farklı şekilde kullanmak istiyorum.
Anladığım kadarıyla yukarıdaki kod; j21, j1520 aralığındaki değerlere bakıyor ve bu aralıktaki "demontaj" kelimesini sayıyor ve eğer sonuç sıfırdan farklıysa

Range("I21:S1520").AutoFilter Field:=3, Criteria1:="DEMONTAJ"

işlemini yapıyor.

Ben kodu şu şekilde değiştirmek istiyorum.
İf "A1 hücresi B1 hücresine eşitse" then ..... else ...... end İf
Yani iki hücrenin eşitliğini nasıl sınayabilirim.

Zaman ayıracak arkadaşlara şimdiden teşekkür ederim.
İyi çalışmalar.
 
Son düzenleme:
Selamlar,

Aşağıdaki şekilde kullanabilirsiniz.

Kod:
Option Explicit
 
Sub ÖRNEK()
    If Range("A1") = Range("B1") Then
    'BİRİNCİ İŞLEM
    Else
    'İKİNCİ İŞLEM
    End If
End Sub
 
Çözüm için Teşekkür ederim Sayın Korhan Ayhan. Kod gayet düzgün çalışıyor.
İyi çalışmalar.
 
Geri
Üst