• DİKKAT

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

Soru WorksheetFunction sınıfının VLookup özelliği alınamıyor

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

ptcsite

Altın Üye
Katılım
8 Nisan 2016
Mesajlar
139
Excel Vers. ve Dili
M.OFFICE 2021 TR 64 Bit
XML:
    If Application.WorksheetFunction.VLookup(Sayfa2.Range("A3"), Sayfa1.Range("A1:AR7"), 2, 0) = Empty Or 0 Then Exit Sub

Yıkarıdaki formulde WorksheetFunction sınıfının VLookup özelliği alınamıyor hatası alıyorum.

Bunu şu şekilde yazıyım dedim

XML:
Set hucre = Application.WorksheetFunction.VLookup(Sayfa2.Range("A3"), Sayfa1.Range("A1:AR7"), 2, 0)
    If hucre = "" or 0 Then Exit Sub

dediğimde Variable not defined diyor...

Demek istediğim A3 hücresini tabloda A1:AR7 aralığında 2. sütunda ara eğer boş veya sıfır ise makrodan çık... Bu kadar basit bişeyi yapamıyorum :)
 
böyle denedim

XML:
Dim hucre As WorksheetFunction

hucre = Application.WorksheetFunction.VLookup(Sayfa2.Range("A3"), Sayfa1.Range("A1:AR7"), 2, 0)

If hucre Is Nothing Then Exit Sub

hucre değeri nothing çıkıyor ama kod yine çalışmadı..
 
Merhaba,

Faydalı olabilir..

 
XML:
satir = Application.Match(Sayfa2.Range("A3"), Sayfa1.Range("B2:B7"), 0)
a = Application.CountA(Sayfa1.Range("A"&satir&":AR44"))


Teşekkür ederim. Bu sefer de range veya cell kullanarak bağdeğerdolusay komutunu çalıştıramadım..
XML:
a = Application.CountA(Sayfa1.Range("A"&satir&":AR44"))

Syntax error hatası veriyor
 
Neden hepsini değiştirdiniz?
 
a = Application.CountA(Sayfa1.Range(Cells(satir, 1), Cells(satir, 43)))

kodunda a nothing olarak hata veriyor sebebi nedir... Ben satir =2 ise 2 den 43 e kadar dolu hücre sayısını yazdırmak istiyorum. bunda ne hata var anlamıyorum.
 
Neden hepsini değiştirdiniz?
Bilgisizlikten bütün tuşlara basıyorum deneme yanılma ile... ve kafayı sıyırcam alt tarafı hücrede yazan değerin diğer sayafadaki tabloda kaçıncı satıra denk geldiğini bulup o satırdaki dolu hücre sayısını belirlemek... bu kadar basit bir işlemi yaptırmaıyorum
 
doğru yazım şekli
a = Application.CountA(Sayfa1.Range(Sayfa1.Cells(satir, 1), Sayfa1.Cells(satir, 43)))

a = Application.CountA(Sayfa1.Range("A" & satir & ":AQ" & satir))
******************************************
Dim satir As Variant
Dim a As Long

satir = Application.Match(Sayfa2.Range("A3"), Sayfa1.Range("B2:B7"), 0)

If Not IsError(satir) Then

With Sayfa1
a = Application.CountA(.Range(.Cells(satir, 1), .Cells(satir, 43)))
End With

MsgBox "Dolu hücre sayısı: " & a
Else
MsgBox "Aranan değer bulunamadı!"
End If

**********************************************
Application.Match fonksiyonu B2:B7 aralığında arama yaptığında, değer B2 hücresindeyse sonuç olarak 1 döndürür. Ancak siz 2. satırı saymak istiyorsanız, gerçek satır numarasını bulmak için sonucun üzerine aralığın başladığı satır farkını eklemelisiniz.
Eğer satir değişkeni gerçek sayfa satır numarasını (2 gibi) temsil etmiyorsa, CountA yanlış satırı sayacaktır.
 
Geri
Üst