Skip to main content

AccessTr.neT


Makro Veya Kod Nasıl Oluştururum

Makro Veya Kod Nasıl Oluştururum

#12
(19/10/2020, 09:12)HORZUM yazdı:
(18/10/2020, 11:36)feraz yazdı: Formül olayı iş değil bence yinede siz bilirsiniz.
Verdiğim kod hem exceli yormaz hemde hızlı çalışır hemde dinamik idi.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim bul As Range

With ThisWorkbook.Sheets("Sayfa2")
If Target.Column = 1 Then
If Target.Cells.Count = 1 Then
Set bul = .Range("A:A").Find(Target.Value, , , 1)
Target.Offset(, 1).Value = Empty
If Not bul Is Nothing Then Target.Offset(, 1).Value = bul.Offset(, 1).Value
End If
End If
End With
Set bul = Nothing
End Sub

Bu kodda sadece A hücresine girilen bilgiyi B hücresine aktarıyor E hücresinden F hücresine nasıl olacak. Birkaç deneme yaptım olmadı
Kodu açıklayayım tam anlarsınız.
------------------------------------------------------------
If Target.Column = 1 Then
eğer 1.ci sütunda işlem olursa
-------------------------------------------------------------
If Target.Cells.Count = 1 Then
burası önemli değil
-------------------------------------------------------------
Set bul = .Range("A:A").Find(Target.Value, , , 1)
burası Sayfa2 nin A sütununda arama yapar.Aranan ise A sütununa girilen değerdir.
If Target.Column = 1 Then burdaki 1 yerine 4 olsaydı E sütununa girilen değer aranacaktı.
----------------------------------------------------------------------------------------------
Target.Offset(, 1).Value = Empty
Burdaki 1 demek 1.ci sütunun 1 sağı demek.3 yazılsaydı 3 sütun sağı demekti.
Kısaca temizler o hücreyi.
-------------------------------------------------------------------------------------------------
If Not bul Is Nothing Then Target.Offset(, 1).Value = bul.Offset(, 1).Value
bul.Offset(, 1).Value burası ise aranan(bul) sayfa2 nin A sütunu olduğu için ve getirilecek veri sayfa2 B sütunu olduğu için 1 yazıldı.F sütunundan veri istenseydi5 yazılmalıydı.
----------------------------------------------------------------------------------------------------------------------------------

Kısaca Target demek hangi sayfanın hangi sütununa veri girilecekse o hücre (Hedef) demek.Burda Target ise unuttum lakin heralde sayfa1 deki A sütunu olacaktı.
Bul ise Sayfa2 nin A sütunu için.
Offset ise kaydır demek.
Aslında dictionary ile yazılan kod uzun olmasına rağmen daha hızlı çalışır.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
Makro Veya Kod Nasıl Oluştururum - Yazar: HORZUM - 16/10/2020, 13:17
RE: Makro Veya Kod Nasıl Oluştururum - Yazar: berduş - 16/10/2020, 16:06
RE: Makro Veya Kod Nasıl Oluştururum - Yazar: HORZUM - 16/10/2020, 16:35
RE: Makro Veya Kod Nasıl Oluştururum - Yazar: berduş - 16/10/2020, 16:37
RE: Makro Veya Kod Nasıl Oluştururum - Yazar: berduş - 16/10/2020, 16:49
RE: Makro Veya Kod Nasıl Oluştururum - Yazar: HORZUM - 18/10/2020, 10:22
RE: Makro Veya Kod Nasıl Oluştururum - Yazar: feraz - 16/10/2020, 17:40
RE: Makro Veya Kod Nasıl Oluştururum - Yazar: feraz - 16/10/2020, 17:47
RE: Makro Veya Kod Nasıl Oluştururum - Yazar: feraz - 18/10/2020, 11:36
RE: Makro Veya Kod Nasıl Oluştururum - Yazar: HORZUM - 19/10/2020, 09:12
RE: Makro Veya Kod Nasıl Oluştururum - Yazar: feraz - 19/10/2020, 09:23
RE: Makro Veya Kod Nasıl Oluştururum - Yazar: feraz - 19/10/2020, 09:45
RE: Makro Veya Kod Nasıl Oluştururum - Yazar: feraz - 19/10/2020, 12:38
RE: Makro Veya Kod Nasıl Oluştururum - Yazar: HORZUM - 19/10/2020, 12:51
RE: Makro Veya Kod Nasıl Oluştururum - Yazar: feraz - 19/10/2020, 13:11