[Yardım]  Karşılıklı Düşeyara

VBA Makrolar ile ilgili sormak istedikleriniz, yapmak istedikleriniz hakkında yardım alabileceğiniz bölümdür.

Karşılıklı Düşeyara

İleti#1)  radyofon » 06 Şub 2019 14:05

Kolay gelsin arkadaşlar,
Diyelim ki Sayfa 1'deki B sütunundaki açıklama değerlerini solundaki A sütununda bulunan kodlara göre düşeyara ile bulduruyoruz.
Örneğin:
Kod: Tümünü seç
=EĞER(B34=0;;DÜŞEYARA(B34;'KASIM 2018'!$B$2:$K$25773;3;YANLIŞ))

Ben bu işin tam tersini de aynı anda yapmak istesem nasıl yapabilirim? Yani B sütunundaki açıklamaya göre de A sütünundaki kodları bulmak istesem. 2 adet düşeyara aynı anda nasıl çalıştırılabilir? Hücrenin birine değer girince dolaylı olarak formül silinecek!...
Kullanıcı avatarı
radyofon
Yeni Başlamış
 
Adı Soyadı:Ayhan GÜNEY
Kayıt: 24 Nis 2014 20:54
Konum: il
Meslek: Elektronik Mühendisi
Yaş: 53
İleti: 82
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Uşak

Cevap: Karşılıklı Düşeyara

İleti#2)  Vedat ÖZER » 06 Şub 2019 14:19

Merhaba,

Yanlış anlamadıysam ,yapmak istediğiniz işlemin tam tersi İndis,Kaçıncı formüllerini kullanarak yapılabilir. Yada dosyanızı eklerseniz daha net cevap verebiliriz.
حَسْبُنَا اللهُ وَنِعْمَ الْوَكِيلُ
Allah bize yeter, O ne güzel vekildir.

vedatozer@outlook.com
Vedat ÖZER
Forum Moderatörü
 
Adı Soyadı:vedat özer
Kayıt: 12 Haz 2014 15:26
Konum: ANTALYA / KEMER
Meslek: MUHASEBE
Yaş: 29
İleti: 699
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Antalya

Cevap: Karşılıklı Düşeyara

İleti#3)  mechatronicer » 06 Şub 2019 14:40

radyofon yazdı:Kolay gelsin arkadaşlar,
Diyelim ki Sayfa 1'deki B sütunundaki açıklama değerlerini solundaki A sütununda bulunan kodlara göre düşeyara ile bulduruyoruz.
Örneğin:
Kod: Tümünü seç
=EĞER(B34=0;;DÜŞEYARA(B34;'KASIM 2018'!$B$2:$K$25773;3;YANLIŞ))

Ben bu işin tam tersini de aynı anda yapmak istesem nasıl yapabilirim? Yani B sütunundaki açıklamaya göre de A sütünundaki kodları bulmak istesem. 2 adet düşeyara aynı anda nasıl çalıştırılabilir? Hücrenin birine değer girince dolaylı olarak formül silinecek!...


Merhaba radyofon,

bildiğim kadarıyla bunu yaparsan #DEĞER hatası alırsın. Çünkü B:B sütunundaki verileri zaten A:A sütunundaki veriye göre çağırıyorsun. Yerleşik formüller ile bunu yapamazsınız. [evet]
Kullanıcı avatarı
mechatronicer
Yeni Başlamış
 
Adı Soyadı:Kemal Sürmelioğlu
Kayıt: 29 Eyl 2013 11:56
İleti: 26
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Kayseri

Cevap: Karşılıklı Düşeyara

İleti#4)  radyofon » 08 Şub 2019 10:22

Örnek dosya ektedir.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
radyofon
Yeni Başlamış
 
Adı Soyadı:Ayhan GÜNEY
Kayıt: 24 Nis 2014 20:54
Konum: il
Meslek: Elektronik Mühendisi
Yaş: 53
İleti: 82
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Uşak

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Karşılıklı Düşeyara

İleti#5)  Kasnic » 08 Şub 2019 16:03

Dört çeşit örnek ektedir.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
Kasnic
Siteye Alışmış
 
Kayıt: 19 Nis 2018 15:39
Meslek: Satınalma
Yaş: 30
İleti: 179
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul

Cevap: Karşılıklı Düşeyara

İleti#6)  radyofon » 09 Şub 2019 07:28

İstediğim bu değil. Zaten b sütununa yazılanın karşılığını c sütunundaki formül buluyor. Kod vba da yazılmalı ki b sütunundaki değere göre c sütununda karşılığı gelmeli ve aynı zamanda da c sütununda yazılana göre b sütununda karşılığı gelmeli.
Kullanıcı avatarı
radyofon
Yeni Başlamış
 
Adı Soyadı:Ayhan GÜNEY
Kayıt: 24 Nis 2014 20:54
Konum: il
Meslek: Elektronik Mühendisi
Yaş: 53
İleti: 82
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Uşak

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Karşılıklı Düşeyara

İleti#7)  tasad » 09 Şub 2019 09:35

"TL TEKLİF" sayfa koduna kaydedip deneyin.
Kod: Tümünü seç
Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
Dim j As Long
If Intersect(Target, [b1:c1000]) Is Nothing Then Exit Sub
On Error Resume Next
For j = 2 To Sheets("KASIM 2018").Range("d100000").End(3).Row
  If Target.Value = Sheets("KASIM 2018").Cells(j, 4).Value Then
   Target.Offset(0, -1) = Sheets("KASIM 2018").Cells(j, 2)

  ElseIf Target.Value = Sheets("KASIM 2018").Cells(j, 2).Value Then
   Target.Offset(0, 1) = Sheets("KASIM 2018").Cells(j, 4)
  End If
Next
End Sub
Kullanıcı avatarı
tasad
Site Dostu
 
Kayıt: 04 Şub 2018 09:46
Meslek: muhasebeci
Yaş: 27
İleti: 599
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ısparta

Cevap: Karşılıklı Düşeyara

İleti#8)  tasad » 09 Şub 2019 12:03

"TL TEKLİF" sayfa koduna kaydedip deneyin.
Kod: Tümünü seç
Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, Range("b3:c1000")) Is Nothing Then Exit Sub
For j = 2 To Sheets("KASIM 2018").Range("d100000").End(3).Row
   If Target.Value = Sheets("KASIM 2018").Cells(j, 4).Value Then
    Target.Offset(0, -1) = Sheets("KASIM 2018").Cells(j, 2)
Exit For
   ElseIf Target.Value = Sheets("KASIM 2018").Cells(j, 2).Value Then
    Target.Offset(0, 1) = Sheets("KASIM 2018").Cells(j, 4)
   End If
Next
End Sub

Kullanıcı avatarı
tasad
Site Dostu
 
Kayıt: 04 Şub 2018 09:46
Meslek: muhasebeci
Yaş: 27
İleti: 599
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ısparta

Cevap: Cevap: Karşılıklı Düşeyara

İleti#9)  radyofon » 09 Şub 2019 13:55

tasad yazdı:"TL TEKLİF" sayfa koduna kaydedip deneyin.
Kod: Tümünü seç
Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, Range("b3:c1000")) Is Nothing Then Exit Sub
For j = 2 To Sheets("KASIM 2018").Range("d100000").End(3).Row
   If Target.Value = Sheets("KASIM 2018").Cells(j, 4).Value Then
    Target.Offset(0, -1) = Sheets("KASIM 2018").Cells(j, 2)
Exit For
   ElseIf Target.Value = Sheets("KASIM 2018").Cells(j, 2).Value Then
    Target.Offset(0, 1) = Sheets("KASIM 2018").Cells(j, 4)
   End If
Next
End Sub


Fiyatları getiriyor fakat açıklama gelmiyor. Bir de esas istediğim açıklamadaki ifadeyi yazınca diğerlerinin gelmesiydi.
Kullanıcı avatarı
radyofon
Yeni Başlamış
 
Adı Soyadı:Ayhan GÜNEY
Kayıt: 24 Nis 2014 20:54
Konum: il
Meslek: Elektronik Mühendisi
Yaş: 53
İleti: 82
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Uşak

Cevap: Karşılıklı Düşeyara

İleti#10)  tasad » 09 Şub 2019 14:05

Diğerleri dediğiniz nedir?Kodlarda açıklama kolununa veri yazarsan referans kolonuna ,referansa yazarsan açıklama kolunana veri alır.Anlattıklarınızdan anladığım bu şekilde.
Kullanıcı avatarı
tasad
Site Dostu
 
Kayıt: 04 Şub 2018 09:46
Meslek: muhasebeci
Yaş: 27
İleti: 599
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ısparta

Cevap: Karşılıklı Düşeyara

İleti#11)  radyofon » 09 Şub 2019 15:06

Teşekkürler, çalışıyor.
Kullanıcı avatarı
radyofon
Yeni Başlamış
 
Adı Soyadı:Ayhan GÜNEY
Kayıt: 24 Nis 2014 20:54
Konum: il
Meslek: Elektronik Mühendisi
Yaş: 53
İleti: 82
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Uşak

Cevap: Karşılıklı Düşeyara

İleti#12)  radyofon » 09 Şub 2019 15:10

Fakat şöyle bir sorun var. Bir tane veri girdikten sonra veriyi buluyor ama kilitlenip epey bir bekliyor. Epey bekledikten sonra alt satıra geçebiliyorum.
Kullanıcı avatarı
radyofon
Yeni Başlamış
 
Adı Soyadı:Ayhan GÜNEY
Kayıt: 24 Nis 2014 20:54
Konum: il
Meslek: Elektronik Mühendisi
Yaş: 53
İleti: 82
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Uşak

Cevap: Karşılıklı Düşeyara

İleti#13)  tasad » 09 Şub 2019 17:14

Bendeki dosyada çok hızlı çalışıyor.
Kullanıcı avatarı
tasad
Site Dostu
 
Kayıt: 04 Şub 2018 09:46
Meslek: muhasebeci
Yaş: 27
İleti: 599
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ısparta

Cevap: Cevap: Karşılıklı Düşeyara

İleti#14)  radyofon » 11 Şub 2019 12:39

tasad yazdı:Bendeki dosyada çok hızlı çalışıyor.

Bendeki dosya 26000 satır.
Kullanıcı avatarı
radyofon
Yeni Başlamış
 
Adı Soyadı:Ayhan GÜNEY
Kayıt: 24 Nis 2014 20:54
Konum: il
Meslek: Elektronik Mühendisi
Yaş: 53
İleti: 82
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Uşak

Cevap: Karşılıklı Düşeyara

İleti#15)  tasad » 12 Şub 2019 20:37

Satır sayısı fazla olduğu için bu kodlar işini görür.Başka da bir çözüm bulamadım.
Kod: Tümünü seç
Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
Dim j As Long
If Target.Column <> 3 Then Exit Sub
For j = 2 To Sheets("KASIM 2018").Range("d100000").End(3).Row
   If Target.Value = Sheets("KASIM 2018").Cells(j, 4).Value Then
    Target.Offset(0, -1) = Sheets("KASIM 2018").Cells(j, 2)
    End If
Next
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim j As Long
On Error Resume Next
If Target.Column <> 2 Or ActiveCell <> "" Then Exit Sub
For j = 2 To Sheets("KASIM 2018").Range("d100000").End(3).Row
If ActiveCell.Offset(-1, 0).Value = Sheets("KASIM 2018").Cells(j, 2).Value Then
   ActiveCell.Offset(-1, 1) = Sheets("KASIM 2018").Cells(j, 4)
   End If
Next
End Sub
Kullanıcı avatarı
tasad
Site Dostu
 
Kayıt: 04 Şub 2018 09:46
Meslek: muhasebeci
Yaş: 27
İleti: 599
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: ısparta

Cevap: Karşılıklı Düşeyara

İleti#16)  radyofon » 13 Şub 2019 08:10

Evet bu kod daha hızlı çalışıyor, en azından cursor dönüp durmuyor. Açıklama satırındaki metnin gelmesi için aşağı ok tuşuna basmak gerekiyor, enter tuşu yeterli gelmiyor.
Kullanıcı avatarı
radyofon
Yeni Başlamış
 
Adı Soyadı:Ayhan GÜNEY
Kayıt: 24 Nis 2014 20:54
Konum: il
Meslek: Elektronik Mühendisi
Yaş: 53
İleti: 82
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Uşak

Cevap: Karşılıklı Düşeyara

İleti#17)  radyofon » 16 Şub 2019 09:01

@tasad
Yeni kod neden daha hızlı çalışıyor.
Kullanıcı avatarı
radyofon
Yeni Başlamış
 
Adı Soyadı:Ayhan GÜNEY
Kayıt: 24 Nis 2014 20:54
Konum: il
Meslek: Elektronik Mühendisi
Yaş: 53
İleti: 82
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Uşak


Forum Genel Makro Soruları

Online Kullanıcılar

Bu forumu görüntüleyenler: AhrefsBot ve 1 misafir

Bumerang - Yazarkafe