- Katılım
- 8 Mart 2009
- Mesajlar
- 504
- Excel Vers. ve Dili
- 2010
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Yapmak isteyipte yapamadığım şartlı aktarım ile ilgili açıklama kıyaslama sayfasında yazıyor, yardımınız için şimdiden teşekkür ederim.
Tarih derken veri dosyalarınızda a ve b sütununda tarihler var.Hangisi sorgulanacak?Butonlamı çalışcak kodlar?C1:E1 aralığına yazdığınız verilerden veri dosyadaki c-d-e sütunlarına bakılacak demişsiniz.3 değerin mutlaka olmasımı lazım yoksa sadece biri varsada listelencekmi?Yapmak istediğim a2 ve a3 de yazılı bulunan gün ve ay arasında, VERİ2009 ile VERİ2010 kitapçıklarının
VERİLER2009 sayfası ve VERİLER2010 sayfalarının C,D,E sütunlarında arama yaparak, c1.d1.e1 de yazılı olan kelimenin geçtiği
satırların A ile H arası ilk 8 sütundaki satırları alt alta yazmasını istiyorum.
Yukarıdaki sorunuzun devamımım yoksa ayrı bir işelmmi.Ayrıca burada tarih şartı koymamışsınız?C1 e çift tıkladığımda, A2 ve A3 de yazan gün ve ay arasındaki, her iki veri sayfasındada yazan kelimeyi arasın ve
o satırların ilk 8 (A ile H arası, H dahil) sütununda yazanları alsın
D1 ve E1 de aynı
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim conn As ADODB.Connection, rs As ADODB.Recordset
Dim sat As Long, i As Long, k As Byte, j As Byte, alan As String
Dim tar_sut As Integer
If Intersect(Target, [C1:E1]) Is Nothing Then Exit Sub
Cancel = True
If Target.Value = "" Then
MsgBox "[ " & Target.Address & " ] adresinde aranacak değer olmalı.Aktarma yapılmadı", vbCritical, "UYARI"
Exit Sub
End If
If Range("A2").Value < 1 And Range("A2").Value > 31 Then
MsgBox "Gün hatalı girildi.Aktarma yapılmadı", vbCritical, "UYARI"
Range("A2").Select
Exit Sub
End If
If Range("A3").Value < 1 And Range("A3").Value > 31 Then
MsgBox "Gün hatalı girildi.Aktarma yapılmadı", vbCritical, "UYARI"
Range("A3").Select
Exit Sub
End If
If Range("B2").Value < 1 And Range("B2").Value > 12 Then
MsgBox "Ay hatalı girildi.Aktarma yapılmadı", vbCritical, "UYARI"
Range("B2").Select
Exit Sub
End If
If Range("B3").Value < 1 And Range("B3").Value > 12 Then
MsgBox "Ay hatalı girildi.Aktarma yapılmadı", vbCritical, "UYARI"
Range("B3").Select
Exit Sub
End If
If Not IsNumeric(Range("E3").Value) Then
MsgBox "E3 hücresinde yıl sayısal bir değer olmalıdır.Aktarma yapılmadı", vbCritical, "UYARI"
Range("E3").Select
Exit Sub
End If
If Not IsNumeric(Range("F3").Value) Then
MsgBox "F3 hücresinde yıl sayısal bir değer olmalıdır.Aktarma yapılmadı", vbCritical, "UYARI"
Range("F3").Select
Exit Sub
End If
If Range("G3").Value = "" Then
MsgBox "Sorgulanacak tarih sütunu boş olamaz.Aktarma yapılmadı.", vbCritical, "UYARI"
Range("G3").Select
Exit Sub
End If
If Target.Column = 3 Then alan = "özelliği"
If Target.Column = 4 Then alan = "TASNİF"
If Target.Column = 5 Then alan = "ADI"
If Range("G3").Value = "B.TARİH" Then tar_sut = 0
If Range("G3").Value = "O.TARİH" Then tar_sut = 1
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Application.ScreenUpdating = False
Range("A7:H65536").ClearContents
sat = 7
For j = 5 To 6
conn.Open "provider=microsoft.jet.oledb.4.0;data source=" & ThisWorkbook.Path _
& "\VERİ" & Cells(3, j).Value & ".xls;extended properties=""excel 8.0;hdr=yes"""
rs.Open "Select * from [VERİLER" & Cells(3, j).Value & "$] where " & alan & " like '%" & _
UCase(Replace(Replace(Target.Value, "ı", "I"), "i", "İ")) & "%';", _
conn, adOpenKeyset, adLockReadOnly
If rs.RecordCount > 0 Then
rs.MoveFirst
Do While Not rs.EOF
If Day(rs(tar_sut).Value) >= Range("A2").Value And _
Month(rs(tar_sut).Value) >= Range("B2").Value And _
Day(rs(tar_sut).Value) <= Range("A3").Value And _
Month(rs(tar_sut).Value) <= Range("B3").Value Then
For k = 1 To 8
Cells(sat, k).Value = rs(k - 1).Value
Next
sat = sat + 1
End If
rs.MoveNext
Loop
End If
rs.Close: conn.Close
Next
Set rs = Nothing: Set conn = Nothing
Application.ScreenUpdating = True
MsgBox "Aktarım tamamlanmıştır." & vbLf & _
"evrengizlen@hotmail.com", vbOKOnly + vbInformation, "E V R E N"
End Sub
Rica ederim.Evren bey çok teşekür ederim, sağolun.