DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub listele59()
Dim sh As Worksheet, i As Long, sonsat As Long, x As Long
Dim k As Integer
Set sh = Sheets("TABLO")
ListBox1.Clear
sonsat = sh.Cells(Rows.Count, "B").End(xlUp).Row
For i = 5 To sonsat
If sh.Cells(i, "B").Value = Range("D3").Value Then
ListBox1.AddItem
For k = 0 To 7
ListBox1.List(x, k) = sh.Cells(i, k + 3).Value
Next k
ListBox1.List(x, 8) = VBA.FormatCurrency(sh.Cells(i, "K").Value, 2)
x = x + 1
End If
Next i
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [D3]) Is Nothing Then Exit Sub
With Worksheets("LİSTE").OLEObjects("ListBox1").Object
.Clear
.ColumnCount = 10
.ColumnWidths = "50;50;50;50;50;50;50;50;50;50"
.IntegralHeight = False
For askm = 5 To 19
If Sheets("TABLO").Cells(askm, 2) = Target.Value Then
.AddItem
For i = 2 To 11
.List(X, i - 2) = Sheets("TABLO").Cells(askm, i).Value
Next i
X = X + 1
End If
Next askm
End With
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [D4]) Is Nothing Then Exit Sub
Dim s1 As Worksheet, s2 As Worksheet
Dim Satir As Integer
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("Sayfa2")
Set deger = s1.Range("E5:H17").Find(Target.Value)
If deger Is Nothing Then
s2.Range("H10").Value = "Aranan değer yok!"
Else
Satir = deger.Row
s2.Range("D7").Value = s1.Cells(Satir, 2).Value
s2.Range("D8").Value = s1.Cells(Satir, 3).Value
s2.Range("D9").Value = s1.Cells(Satir, 4).Value
s2.Range("F7").Value = s1.Cells(Satir, 5).Value
s2.Range("F8").Value = s1.Cells(Satir, 6).Value
s2.Range("F9").Value = s1.Cells(Satir, 7).Value
s2.Range("F10").Value = s1.Cells(Satir, 8).Value
s2.Range("H7").Value = s1.Cells(Satir, 9).Value
s2.Range("H8").Value = s1.Cells(Satir, 10).Value
End If
End Sub
Formülle düzenlenmesini istediğiniz şekli de ekte.
Kod:Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, [D4]) Is Nothing Then Exit Sub Dim s1 As Worksheet, s2 As Worksheet Dim Satir As Integer Set s1 = Sheets("Sayfa1") Set s2 = Sheets("Sayfa2") Set deger = s1.Range("E5:H17").Find(Target.Value) If deger Is Nothing Then s2.Range("H10").Value = "Aranan değer yok!" Else Satir = deger.Row s2.Range("D7").Value = s1.Cells(Satir, 2).Value s2.Range("D8").Value = s1.Cells(Satir, 3).Value s2.Range("D9").Value = s1.Cells(Satir, 4).Value s2.Range("F7").Value = s1.Cells(Satir, 5).Value s2.Range("F8").Value = s1.Cells(Satir, 6).Value s2.Range("F9").Value = s1.Cells(Satir, 7).Value s2.Range("F10").Value = s1.Cells(Satir, 8).Value s2.Range("H7").Value = s1.Cells(Satir, 9).Value s2.Range("H8").Value = s1.Cells(Satir, 10).Value End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [D4]) Is Nothing Then Exit Sub
Dim s1 As Worksheet, s2 As Worksheet
Dim Satir As Integer
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("Sayfa2")
Application.ScreenUpdating = False
temizle
If Target = "" Then temizle
Set deger = s1.Range("E5:H17").Find(Target.Value, LookAt:=xlWhole)
If deger Is Nothing Then
s2.Range("H10").Value = "Aranan değer yok!"
Else
Satir = deger.Row
s2.Range("D7").Value = s1.Cells(Satir, 2).Value
s2.Range("D8").Value = s1.Cells(Satir, 3).Value
s2.Range("D9").Value = s1.Cells(Satir, 4).Value
s2.Range("F7").Value = s1.Cells(Satir, 5).Value
s2.Range("F8").Value = s1.Cells(Satir, 6).Value
s2.Range("F9").Value = s1.Cells(Satir, 7).Value
s2.Range("F10").Value = s1.Cells(Satir, 8).Value
s2.Range("H7").Value = s1.Cells(Satir, 9).Value
s2.Range("H8").Value = s1.Cells(Satir, 10).Value
End If
Application.ScreenUpdating = True
End Sub
Sub temizle()
Range("D7").Value = Empty
Range("D8").Value = Empty
Range("D9").Value = Empty
Range("F7").Value = Empty
Range("F8").Value = Empty
Range("F9").Value = Empty
Range("F10").Value = Empty
Range("H7").Value = Empty
Range("H8").Value = Empty
Range("H10").Value = Empty
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [D6]) Is Nothing Then Exit Sub
ReDim dizi(1 To 18, 1 To 1)
With Worksheets("MÜŞTERİ CARİSİ").OLEObjects("ListBox1").Object
.Clear
.ColumnCount = 18
.ColumnWidths = "50;50;50;50;50;50;50;50;50;50;50;50;50;50;50;50;50;50"
.IntegralHeight = False
For askm = 22 To 10000
If Sheets("TEKNİK SERVİS").Cells(askm, 2) = Target.Value Then
x = x + 1
ReDim Preserve dizi(1 To 18, 1 To x)
For i = 2 To 19
dizi(i - 1, x) = Sheets("TEKNİK SERVİS").Cells(askm, i).Value
Next i
End If
Next askm
.Column = dizi
End With
End Sub
Additem yönteminde 10 kolon sınırı vardır.
Bunu aşmak için ya aşağıdaki gibi Gecici diye bir sayfa kullanıp list yöntemi ile eklemeniz gerek.
.List = Sheet("Gecici").Range("A1:R" & Cells(65536, "A").End(xlUp).Row).Value
Ya da dizi kullanmanız gerekir. Aşağıdaki gibi.
Yalnız sütun boyutunu yeniden ayarlamanız gerekli. 50 olarak verilen değerleri değiştirmeniz gerek.
Kod:Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, [D6]) Is Nothing Then Exit Sub ReDim dizi(1 To 18, 1 To 1) With Worksheets("MÜŞTERİ CARİSİ").OLEObjects("ListBox1").Object .Clear .ColumnCount = 18 .ColumnWidths = "50;50;50;50;50;50;50;50;50;50;50;50;50;50;50;50;50;50" .IntegralHeight = False For askm = 22 To 10000 If Sheets("TEKNİK SERVİS").Cells(askm, 2) = Target.Value Then x = x + 1 ReDim Preserve dizi(1 To 18, 1 To x) For i = 2 To 19 dizi(i - 1, x) = Sheets("TEKNİK SERVİS").Cells(askm, i).Value Next i End If Next askm .Column = dizi End With End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [D6]) Is Nothing Then Exit Sub
ReDim dizi(1 To 18, 1 To 1)
With Worksheets("MÜŞTERİ CARİSİ").OLEObjects("ListBox1").Object
.Clear
.ColumnCount = 18
.ColumnWidths = "50;50;50;50;50;50;50;50;50;50;50;50;50;50;50;50;50;50"
.IntegralHeight = False
For askm = 22 To 10000
If Sheets("TEKNİK SERVİS").Cells(askm, 2) = Target.Value Then
x = x + 1
ReDim Preserve dizi(1 To 18, 1 To x)
For i = 2 To 19
If i = 4 Then
dizi(i - 1, x) = Format(Sheets("TEKNİK SERVİS").Cells(askm, i).Value, "DD.MM.YYYY")
ElseIf i = 19 Then
dizi(i - 1, x) = VBA.FormatCurrency(Sheets("TEKNİK SERVİS").Cells(askm, i).Value, 2)
Else
dizi(i - 1, x) = Sheets("TEKNİK SERVİS").Cells(askm, i).Value
End If
Next i
End If
Next askm
.Column = dizi
End With
End Sub
Askm hocam bu daha önceden yardımcı olduğunuz konu hakkında sizden bir ricam olacakAşağıdaki şekilde şart ekleyerek yapabilirsiniz
Kod:Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, [D6]) Is Nothing Then Exit Sub ReDim dizi(1 To 18, 1 To 1) With Worksheets("MÜŞTERİ CARİSİ").OLEObjects("ListBox1").Object .Clear .ColumnCount = 18 .ColumnWidths = "50;50;50;50;50;50;50;50;50;50;50;50;50;50;50;50;50;50" .IntegralHeight = False For askm = 22 To 10000 If Sheets("TEKNİK SERVİS").Cells(askm, 2) = Target.Value Then x = x + 1 ReDim Preserve dizi(1 To 18, 1 To x) For i = 2 To 19 If i = 4 Then dizi(i - 1, x) = Format(Sheets("TEKNİK SERVİS").Cells(askm, i).Value, "DD.MM.YYYY") ElseIf i = 19 Then dizi(i - 1, x) = VBA.FormatCurrency(Sheets("TEKNİK SERVİS").Cells(askm, i).Value, 2) Else dizi(i - 1, x) = Sheets("TEKNİK SERVİS").Cells(askm, i).Value End If Next i End If Next askm .Column = dizi End With End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If [D6] = Empty Then Worksheets("MÜŞTERİ CARİSİ").OLEObjects("ListBox1").Object.Clear: Exit Sub
If Intersect(Target, [D6]) Is Nothing Then Exit Sub
ReDim dizi(1 To 18, 1 To 1)
With Worksheets("MÜŞTERİ CARİSİ").OLEObjects("ListBox1").Object
.Clear
.ColumnCount = 18
.ColumnWidths = "50;50;50;50;50;50;50;50;50;50;50;50;50;50;50;50;50;50"
.IntegralHeight = False
For askm = 22 To 10000
If Sheets("TEKNİK SERVİS").Cells(askm, 2) = Target.Value Then
x = x + 1
ReDim Preserve dizi(1 To 18, 1 To x)
For i = 2 To 19
If i = 4 Then
dizi(i - 1, x) = Format(Sheets("TEKNİK SERVİS").Cells(askm, i).Value, "DD.MM.YYYY")
ElseIf i = 19 Then
dizi(i - 1, x) = VBA.FormatCurrency(Sheets("TEKNİK SERVİS").Cells(askm, i).Value, 2)
Else
dizi(i - 1, x) = Sheets("TEKNİK SERVİS").Cells(askm, i).Value
End If
Next i
End If
Next askm
.Column = dizi
End With
End Sub
hocam ellerinize sağlık süper oldu teşekür ederim...Kodları aşağıdaki şekilde revize ederseniz hız etkilemiyor.
Kod:Private Sub Worksheet_Change(ByVal Target As Range) If [D6] = Empty Then Worksheets("MÜŞTERİ CARİSİ").OLEObjects("ListBox1").Object.Clear: Exit Sub If Intersect(Target, [D6]) Is Nothing Then Exit Sub ReDim dizi(1 To 18, 1 To 1) With Worksheets("MÜŞTERİ CARİSİ").OLEObjects("ListBox1").Object .Clear .ColumnCount = 18 .ColumnWidths = "50;50;50;50;50;50;50;50;50;50;50;50;50;50;50;50;50;50" .IntegralHeight = False For askm = 22 To 10000 If Sheets("TEKNİK SERVİS").Cells(askm, 2) = Target.Value Then x = x + 1 ReDim Preserve dizi(1 To 18, 1 To x) For i = 2 To 19 If i = 4 Then dizi(i - 1, x) = Format(Sheets("TEKNİK SERVİS").Cells(askm, i).Value, "DD.MM.YYYY") ElseIf i = 19 Then dizi(i - 1, x) = VBA.FormatCurrency(Sheets("TEKNİK SERVİS").Cells(askm, i).Value, 2) Else dizi(i - 1, x) = Sheets("TEKNİK SERVİS").Cells(askm, i).Value End If Next i End If Next askm .Column = dizi End With End Sub