- Katılım
- 26 Mart 2019
- Mesajlar
- 48
- Excel Vers. ve Dili
- Microsoft Office Professional Plus 2016
- Altın Üyelik Bitiş Tarihi
- 19-12-2024
Değerli hocalarım herkese hayırlı cumalar ve hayırlı ramazanlar diliyorum. Ben sağlık müdürlüğünde personel biriminde görev yapıyorum. Ekte yer alan listemde 2 sekmede bulunan birim ve ünvan kodlarına göre 1. sekmedeki verileri arayıp yine 2. sekmede yer alan sütunlara ilgili değerleri getiren bir VBA koda ihtiyacım var. Ben biraz bir şeyler yapmaya çalıştım ama yazdığım kod sadece tek sütuna verileri (2. sekmede ki 3. sütuna /std) getiriyor ve hatalı işlem yapıyor.
Bana yardımcı olursanız sevinirim. Şimdiden teşekkür ederim.
Sub VeriAraVeYaz()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim veriRng1 As Range, veriRng2 As Range
Dim kriterRng1 As Range, kriterRng2 As Range, yazRng As Range
Dim veri1 As Range, veri2 As Range
Dim kriter1 As Range, kriter2 As Range
Dim i As Integer
Set ws1 = ThisWorkbook.Sheets("1")
Set ws2 = ThisWorkbook.Sheets("2")
Set veriRng1 = ws1.Range("a2:a800")
Set veriRng2 = ws1.Range("b2:b800")
Set kriterRng1 = ws2.Range("a3:a19")
Set kriterRng2 = ws2.Range("b3:b19")
Set yazRng = ws2.Range("c3:c19")
For Each kriter1 In kriterRng1
For Each kriter2 In kriterRng2
For Each veri1 In veriRng1
For Each veri2 In veriRng2
If veri1.Value = kriter1.Value Or veri2.Value = kriter1.Value Or _
veri1.Value = kriter2.Value Or veri2.Value = kriter2.Value Then
i = i + 1
yazRng.Cells(i, 1).Value = ws1.Cells(veri1.Row, 13).Value
End If
Next veri2
Next veri1
Next kriter2
Next kriter1
MsgBox "Veriler başarıyla kopyalandı!", vbInformation
End Sub
Bana yardımcı olursanız sevinirim. Şimdiden teşekkür ederim.
Sub VeriAraVeYaz()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim veriRng1 As Range, veriRng2 As Range
Dim kriterRng1 As Range, kriterRng2 As Range, yazRng As Range
Dim veri1 As Range, veri2 As Range
Dim kriter1 As Range, kriter2 As Range
Dim i As Integer
Set ws1 = ThisWorkbook.Sheets("1")
Set ws2 = ThisWorkbook.Sheets("2")
Set veriRng1 = ws1.Range("a2:a800")
Set veriRng2 = ws1.Range("b2:b800")
Set kriterRng1 = ws2.Range("a3:a19")
Set kriterRng2 = ws2.Range("b3:b19")
Set yazRng = ws2.Range("c3:c19")
For Each kriter1 In kriterRng1
For Each kriter2 In kriterRng2
For Each veri1 In veriRng1
For Each veri2 In veriRng2
If veri1.Value = kriter1.Value Or veri2.Value = kriter1.Value Or _
veri1.Value = kriter2.Value Or veri2.Value = kriter2.Value Then
i = i + 1
yazRng.Cells(i, 1).Value = ws1.Cells(veri1.Row, 13).Value
End If
Next veri2
Next veri1
Next kriter2
Next kriter1
MsgBox "Veriler başarıyla kopyalandı!", vbInformation
End Sub
Ekli dosyalar
-
138.8 KB Görüntüleme: 4