Soru DÜŞEY_ARA

dengeceteris

Altın Üye
Katılım
21 Aralık 2019
Mesajlar
192
Excel Vers. ve Dili
Office 2016
Altın Üyelik Bitiş Tarihi
15-06-2025
Herkese iyi günler:
Aşağıda ki yazmış olduğum formülü excele yazdım ama galiba bir hatam var. (Yapmaya Çalıştığım MİZAN1 sayfam da A sütununda kodlar var. ANAMİZAN sayfamında A sütununda kodlar var. Ben ANAMİZAN sayfamda 3.sütuna denk gelen tanımları düşey ara ile MİZAN1 sayfasına çekmeye çalışıyorum)

İyi günler dilerim.

Sub DÜSEY_ARA()
Dim x As Long, s1 As Worksheet, s2 As Worksheet, Wf As WorksheetFunction

Set s1 = Sheets("MİZAN1")
Set s2 = Sheets("ANAMİZAN")
Set Wf = WorksheetFunction

s1.Cells(x, 10) = Wf.VLookup(s1.Cells(x, 1), s2.Range("A5:C1000"), 3, 0)

End Sub
 

dengeceteris

Altın Üye
Katılım
21 Aralık 2019
Mesajlar
192
Excel Vers. ve Dili
Office 2016
Altın Üyelik Bitiş Tarihi
15-06-2025
formülde aşağıda ki değişikliği yaptım. orayı atlamışım ama fayda etmedi

Sub DÜSEY_ARA()
Dim x As Long, s1 As Worksheet, s2 As Worksheet, Wf As WorksheetFunction

Set s1 = Sheets("MİZAN1")
Set s2 = Sheets("ANAMİZAN")
Set Wf = WorksheetFunction
For x = 3 To 10000
s1.Cells(x, 10) = Wf.VLookup(s1.Cells(x, 1), s2.Range("A5:C1000"), 3, 0)
Next
End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Kod:
Sub DÜSEY_ARA()
    Dim syfMizan As Worksheet, syfAnaMizan As Worksheet
    Dim Say As Long
   
    Set syfMizan = Sheets("MİZAN")
    Set syfAnaMizan = Sheets("ANAMİZAN")
   
    Say = syfMizan.Cells(Rows.Count, "A").End(xlUp).Row
    syfMizan.Range("J3:J" & Say).Formula = "=vLookup(A1," & syfAnaMizan.Name & "!A:C, 3, 0)"
    syfMizan.Range("J3:J" & Say).Copy
    syfMizan.Range("J3:J" & Say).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
End Sub
 

mahmut011

Altın Üye
Altın Üye
Katılım
22 Eylül 2013
Mesajlar
107
Excel Vers. ve Dili
2021 Türkçe 64-bit
Altın Üyelik Bitiş Tarihi
14.01.2029
Merhaba
kodda belirtilen aralıkta düşeyara çalışırken hata verdiği bir değer olduğu için kod çalışmıyor. Hiç hata verecek değer olmasaydı kodunuz çalışırdı.
Wf.VLookup yerine
Application.VLookup yazarak kodu çalıştırabilirsiniz.
bu durumda düşeyara hata verdiğinde hücreye hata yazdırıyor
 

dengeceteris

Altın Üye
Katılım
21 Aralık 2019
Mesajlar
192
Excel Vers. ve Dili
Office 2016
Altın Üyelik Bitiş Tarihi
15-06-2025
Üstadım şöyle bir sonuç çıktı. Mesela her iki sayfada bulunan 100 kodunu bulamadı parantez içinde yazdığımı sonuç olarak verdi. (#YOK) ama bazı kodların karşısına (MİZAN1 de olupta ANAMİZAN da olmayan) karışık bir şekilde yazdı.

Sayın mahmut011 dediğiniz gibi yapınca doğru sonuç verdi peki hatayı nasıl boş "" yaptırabilirim.

Sizden ricam bir şey daha eklemek istiyorum formüle şimdi ben MİZAN1 sayfasında 10. sütuna verileri getirdim. Ama 11.sütunada şunu yaptırmak istiyorum. eğer 10. Sütun da "AKTİF" yazıyorsa ve 7.Sütun daki rakam 6.sütundaki rakamdan büyükse ="SORUN" yazdırabilir miyiz. Ben aşağıda ki şekilde yazdım ama çalıştıramadım.

If s1.Cells(x, 10) = "AKTİF" And s1.Cells(x, 7) > s1.Cells(x, 6) Then

s1.Cells(x, 11) = "SORUN"
 
Son düzenleme:

mahmut011

Altın Üye
Altın Üye
Katılım
22 Eylül 2013
Mesajlar
107
Excel Vers. ve Dili
2021 Türkçe 64-bit
Altın Üyelik Bitiş Tarihi
14.01.2029
Wf.IfError(Application.VLookup...... , "")
şeklinde kullanabilirsiniz,
burayı da inceleyebilirsiniz.
 

mahmut011

Altın Üye
Altın Üye
Katılım
22 Eylül 2013
Mesajlar
107
Excel Vers. ve Dili
2021 Türkçe 64-bit
Altın Üyelik Bitiş Tarihi
14.01.2029
Sizden ricam bir şey daha eklemek istiyorum formüle şimdi ben MİZAN1 sayfasında 10. sütuna verileri getirdim. Ama 11.sütunada şunu yaptırmak istiyorum. eğer 10. Sütun da "AKTİF" yazıyorsa ve 7.Sütun daki rakam 6.sütundaki rakamdan büyükse ="SORUN" yazdırabilir miyiz. Ben aşağıda ki şekilde yazdım ama çalıştıramadım.

If s1.Cells(x, 10) = "AKTİF" And s1.Cells(x, 7) > s1.Cells(x, 6) Then

s1.Cells(x, 11) = "SORUN"
Belki yine bazı satırlarda hata verdiği değerler olduğu için çalışmıyor olabilir,
üstte başka bir if ile hücrelerdeki değerlerin metin ve sayı olup olmadığını kontrol ettirin.

If metinse and sayıysa
If s1.Cells(x, 10) = "AKTİF" And s1.Cells(x, 7) > s1.Cells(x, 6) Then

s1.Cells(x, 11) = "SORUN"
End if
End if
 

dengeceteris

Altın Üye
Katılım
21 Aralık 2019
Mesajlar
192
Excel Vers. ve Dili
Office 2016
Altın Üyelik Bitiş Tarihi
15-06-2025
Hocam bu formül hata veriyor: Wf.IfError(Application.VLookup...... , "")
 

mahmut011

Altın Üye
Altın Üye
Katılım
22 Eylül 2013
Mesajlar
107
Excel Vers. ve Dili
2021 Türkçe 64-bit
Altın Üyelik Bitiş Tarihi
14.01.2029
kendi dosyamda kullandım hata vermedi, kodlama hakkında pek bilgim yok, bu durumla daha önce karşılaştığım için cevap verdim, uzmanlarımız yardımcı olabilir.
kullandığım kod:
C++:
s1.Cells(x, 10) = Wf.IfError(Application.VLookup(s1.Cells(x, 1), s1.Range("A5:C1000"), 3, 0), "")
 

dengeceteris

Altın Üye
Katılım
21 Aralık 2019
Mesajlar
192
Excel Vers. ve Dili
Office 2016
Altın Üyelik Bitiş Tarihi
15-06-2025
Sayın Muzaffer Ali: Onunla ilgili 5.mesajda yazmıştım. Aslında yapmaya çalıştığım bir kaç şey var. Ben dosyayı yükledim buradan kısaca anlatayım. ANAMİZAN sayfam da 1, 2 ve 3. sütunlarda standart hesap planım var. Bu sayfanın 3. sütunun da bu kodların muhasebesel anlamda karşılıkları var. Şimdi MİZAN1 veya MİZAN2 gibi sayfalara ben tablomu ham bir şekilde yapıştırıyorum. Yapmaya çalıştığım ise şu: Ben MİZAN1'e verileri koyduğum zaman mesela K sütununda kodların ilk 3 karakterini baz alarak (100.01.001 ise 100 alacak) ANAMİZAN sayfasındaki 3. sütundan düşeyara ile karşılığını bulacak ve MİZAN1 de 10.sütuna getirecek. Bunu getirdikten sonra ikinci aşamada şunu yapmaya çalışıyorum eğer bir hesabın karşılığı AKTİF yazıyorsa ve MİZAN1 deki 5.sütun 6.sütundan daha küçük ise bu satırda renk yada uyarı verecek. Yada 10.sütuna gelen tanım. A.DÜZENLEYİCİ ise ve bu sefer 6.sütun 5 den küçükse uyarı verdirmeye çalışıyorum. Çok fazla firma olunca böyle bir yöntem işimi kolaylaştırıcak.
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
ANAMİZAN sayfam da 1, 2 ve 3. sütunlarda standart hesap planım var. Bu sayfanın 3. sütunun da bu kodların
Anamizan sayfasının 3. sütununda kod yok


MİZAN1'e verileri koyduğum zaman mesela K sütununda
Mizan1 de K sütunu boş

Bunun gibi başka hatalar da var.
Örnekteki dosyanıza uygun şekilde soruyu gözden geçirin.
1. sütun 10. sütun yerine Sütun başlığını söylerseniz daha iyi olur örneğin "A" sütunu "J" sütunun gibi.
 

dengeceteris

Altın Üye
Katılım
21 Aralık 2019
Mesajlar
192
Excel Vers. ve Dili
Office 2016
Altın Üyelik Bitiş Tarihi
15-06-2025
Üstadım ANAMİZAN 3. Sütunda (C Sütunu) zaten kod yok. Kodların muhasebesel karşılığı var. Yapmaya çalıştığım ise kısaca tekrar izah edeyim muhtemelen anlatamadım. MİZAN1 Sayfasında 11.sütuna (K Sütunu) düşey ara ile ANAMİZAN sayfasındaki C sütununda bulunan verileri getirmeye çalışıyorum. Bunu klasik formül ile şöyle yapıyorum MİZAN1 sayfasına K3' şu formülü giriyorum. =DÜŞEYARA(MİZAN!A3;ANAMİZAN!A:C;3;0) ama formülümde eksik var. O da şu ANAMİZAN sayfamdaki kodlar 3 karakter uzunluğunda onun için formülü girerken MİZAN!A3 de ilk 3 karakteri baz alacak şekilde girmem lazım yani 100.01 de olsa hesap kodum bunun ilk 3'ünü baz alıp düşeyaradan gene çekecek. Ben mesela şöyle revize ettim kodu çalışmadı ama en azından ne demek istediğimi anlatabilirim. =DÜŞEYARA(SOLDAN(A3;3);ANAMİZAN!A:C;3;0) Bu işlemlerden sonra ise 9.Sütuna (I sütunu) bir sorgu yazmam gerekiyor. Mesela bir örnek vereyim. K sütunu AKTİF yazıyor ise F sütunu E sütunundan büyükse burayı renklendir yada SORUN gibi bir terim yaz. İkinci sorumda K sütunu PASİF yazıyor ve E sütunu F sütunundan büyükse gene aynı işlem gibi 7-8 sorgu yapmam lazım.
 
Üst