Skip to main content

AccessTr.neT


Vlookup İle Hücre Grubunu Sonuç Olarak Döndürme

Vlookup İle Hücre Grubunu Sonuç Olarak Döndürme

#13
(06/05/2021, 03:36)feraz yazdı:
(06/05/2021, 02:15)berduş yazdı: Cll.Offset((3 - RngBul.Row), 2).Address buradaki ofset koduyla sütunu 2 sağa kaydırmam gerekiyor A için C yapıyor ama B için M yapıyor
Merhaba abey.
sanıyorum satır birleştirmesinden dolayı oluyor.
Yani IVL sayfasında B:K aralığı birleştirilmiş olduğu için kod B yi K olarak algılıyor ve 2 sağı M ediyor abey Img-grin
Ayrıca address(0,0) burda sadece address yazmakta yeterli bence.0 gibiler dolar işareti için kullanılıyor.

[Resim: do.php?img=10987]
Cevapla
#14
(06/05/2021, 03:22)berduş yazdı: bu da alternatif bir yöntem dilerim işinize yarar
Sub FormatliAra(ByVal txtAranan As String)
Dim RngAra As Range
Dim RngSonuc As Range
Dim RngBul As Range
Dim RngBul2 As Range
Dim Cll As Range
Dim Sht As Worksheet
Dim Sht2 As Worksheet

Set Sht = ThisWorkbook.Worksheets("Arama")
Set Sht2 = ThisWorkbook.Worksheets("IVL")
Set RngAra = Sht2.Range("A:A")

    ' Clear previous formats and set new format
    Application.FindFormat.Clear
    Application.FindFormat.Font.Bold = True 'formatlı arama için gerekli kod
With Sht
    Set RngBul = RngAra.Find(txtAranan, SearchFormat:=True)
    SonStr = .Cells(.Rows.Count, "c").End(xlUp).Row
    .Range("C2:x" & SonStr).ClearContents 'Arama Sayfasını boşaltan kod
    If RngBul Is Nothing Then Exit Sub 'veri yoksa işlemi iptal etme
   
    Set RngAra = Sht2.Range("A" & RngBul.Row & ":A" & RngBul.Row + 100)
    Set RngBul2 = RngAra.Find("IVL No", SearchFormat:=True)
   
    Set RngSonuc = Sht2.Range("A" & RngBul.Row - 1 & ":L" & RngBul2.Row - 1)
    Debug.Print "RngBul2", RngBul2.Address(0, 0), RngSonuc.Address(0, 0)
    For Each Cll In RngSonuc
    If Cll.Value <> "" Then .Cells(Cll.Row + 3 - RngBul.Row, Cll.Column + 2).Value = Cll.Value
    Next Cll
     SonStr = .Cells(.Rows.Count, "c").End(xlUp).Row
     .Range("C" & SonStr & ":N" & SonStr).Merge
     .Range("C2:N" & SonStr).BorderAround Weight:=xlThin
End With
    Application.FindFormat.Clear
End Sub

151051002 olarak aratırmısın abey hepsi doğru çıkacakmı ki bende çıkmadı.
Demek istediğim şuyduki önceki mesajımın birinde onuda resimde anlattım.

[Resim: do.php?img=10988]
Cevapla
#15
formatta sorun var ama çıkıyor
ama biraz uğraştırsa da halledilebilir
Cevapla
#16
Çıkmayan kısım IVL sayfasının 103.satırı yani % 25 yüklenici karı ve genel giderler olan kısım ve 1,44

Örnek olarak bunu denedim.Belki diğerierindede aynı durum olabilir.
Cevapla
#17
Kodu alttaki dibi yaoparsanız veriler geliyor ve biçimlendirmeler yapılmalı sadece.
Kod:
    Sht.Range("C2:XFD" & Rows.Count).Clear
    RngSonuc.Copy Sht.Range("C2")

Yukardakileri ekledim döngüyü silip zaten aranan alanları bulmuşsunuz.

Sub FormatliAra(ByVal txtAranan As String)
Dim RngAra As Range
Dim RngSonuc As Range
Dim RngBul As Range
Dim RngBul2 As Range
Dim Cll As Range
Dim Sht As Worksheet
Dim Sht2 As Worksheet

Set Sht = ThisWorkbook.Worksheets("Arama")
Set Sht2 = ThisWorkbook.Worksheets("IVL")
Set RngAra = Sht2.Range("A:A")

    ' Clear previous formats and set new format
    Application.FindFormat.Clear
    Application.FindFormat.Font.Bold = True 'formatlý arama için gerekli kod
With Sht
    Set RngBul = RngAra.Find(txtAranan, SearchFormat:=True)
    SonStr = .Cells(.Rows.Count, "c").End(xlUp).Row
    .Range("C2:x" & SonStr).ClearContents 'Arama Sayfasýný boþaltan kod
    If RngBul Is Nothing Then Exit Sub 'veri yoksa iþlemi iptal etme
   
    Set RngAra = Sht2.Range("A" & RngBul.Row & ":A" & RngBul.Row + 100)
    Set RngBul2 = RngAra.Find("IVL No", SearchFormat:=True)
   
    Set RngSonuc = Sht2.Range("A" & RngBul.Row - 1 & ":L" & RngBul2.Row - 1)
    Sht.Range("C2:XFD" & Rows.Count).Clear
    RngSonuc.Copy Sht.Range("C2")
   
    SonStr = .Cells(.Rows.Count, "c").End(xlUp).Row
    .Range("C" & SonStr & ":N" & SonStr).Merge
    .Range("C2:N" & SonStr).BorderAround Weight:=xlThin
End With
    Application.FindFormat.Clear
End Sub
Cevapla
#18
şimdi oldu @feraz hocam)

ben de kara kara her hücre için bileşen hücreleri bulup 2 sütun kaydırmanın yolunu arıyordum))
Cll.MergeArea.Address ile birleşik hücreleri bulması kolay da pratik yoldan B yada Kya 2 sütun nasıl ekleriz onu bulmaya çalışıyordum
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task