• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Çözüldü Kod Kayma Sorunu

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

barış kaya

Gold Üye
Katılım
25 Ağu 2021
Mesajlar
151
Aldığı beğeni
23
Excel V
Office 2010 TR
Gold Bitiş
6 Kasım 2025
Konu Sahibi
Hayırlı Cumalar Hocalarım.

H-O-V... sütünlarına miktar girdiğimizde, A7-C28 aralığındaki alana (alışveriş sepeti), ürün aktarılıyor.
Bu işlem 33 satır aralıkla alt alta devam ediyor.

Özetle;
H33'e miktar girdiğimizde, 1. sayfaya aktarması gerekirken, 2. sayfaya aktarıyor.
Kodlarla uğraştık ama yapamadık.

Yardımcı olabilir misiniz?
Şimdiden teşekkür ediyorum.
 
Sizede.
Tam olarak sayfa1 ve sayfa2 olayını anlamadım ama sizin alttaki kod zaten aktarıyor H33 için.
Ayrıca kod kısalabilir.


HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Konu Sahibi
Kodunuzu select case ile kısalttım ve gereksiz select kısmını düzelttim.
10: yazan yerede screenupdating=true eklendi.


HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
İyi günler Refaz Hocam
Eski bir konu için desteğinize ihtiyaç duydum

Şu kodu ilave etmiştiniz

Select Case Target.Column
Case 8, 15, 22, 29, 36, 43, 50
Application.ScreenUpdating = False

Set bulAra = Columns("BG:BG").Find(Target.Offset(0, 2).Value, , , 1)
If Not bulAra Is Nothing Then
Target.Offset(0, 1).Value = bulAra.Offset(0, -1).Value
Target.Offset(0, 3).Value = bulAra.Offset(0, 3).Value
Target.Offset(0, 6).Value = bulAra.Offset(0, 1).Value
Else
Target.Offset(, 1).Resize(1, 6).Value = ""
GoTo 10
End If
Application.ScreenUpdating = True
Case Else
GoTo 10
End Select


İhtiyacımız şöyle;
Eğer H sütununa girdiğimiz miktar, BE sütununa girdiğimiz miktardan düşükse, BJ sütunundaki fiyatı, değilse BK sütunundaki almak istiyoruz

umarım anlatabilmişimdir :)
Şimdiden çok teşekkür ediyorum hocam
 
Merhaba.
Resimdeki gibi 9 yazdık H sütununa ve BE den küçük.Bu durumda BK sütunundan hangi hücreden yada satırdan veri alınacak?

Screenshot 2023-06-18 131450.jpg
 
Konu Sahibi
Merhaba.
Resimdeki gibi 9 yazdık H sütununa ve BE den küçük.Bu durumda BK sütunundan hangi hücreden yada satırdan veri alınacak?

Ekli dosyayı görüntüle 17962
hocam j sütunu boş iken işlem yapmayacak
öncelikle J sütununa ürünü yazıyoruz
H sütununa veri girdiğimizde, J sütunundaki veriyi BG sütununda arayıp, H sütununa yazdığımız miktar BE deki koli miktarından küçükse, BJ deki Birim fiyatını, değilse BK deki koli fiyatını K sütununa almak istiyoruz
 
If Cells(Target.Row, "H").Value < Cells(bulAra.Row, "BE").Value Then
Target.Offset(0, 3).Value = bulAra.Offset(0, 3).Value
Else
Target.Offset(0, 3).Value = bulAra.Offset(0, 4).Value '4 BK sütun
End If


HTML:
C#:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Set bulAra = Columns("BG:BG").Find(Target.Offset(0, 2).Value, , , 1)
Bu arada bende geçen denk geldim bir bakayım tam find komutunun tüm özelliklerine diye ve iyiki araştırmışım.

Mesela yukardaki gibi yazınca sondaki 1(xlwhole) yani tam eşleşme oluyor.

Set bulAra = Columns("BG:BG").Find(Target.Offset(0, 2).Value) önce yukardaki kodu çalıştırıp sonra denemek için bu kodu çalıştırınca normalde parametre girilmediği için tam eşleşme ile aramaması gerek ama hafızaya ilk yukardaki alındığı için devamlı tam eşleşme araıyor bunun için Set bulAra = Columns("BG:BG").Find(Target.Offset(0, 2).Value,,,2) burdaki 2 yerine xlpart da olur.Bu şekilde yazılmalı ve diğer parametrelerde geçerli.

Aklınızda olsun diye yazdım.Bende bilmiyordum esasen hafızaya aldığını.Tabii exceli kapatıp açınca sıfırlanıyor denememde sonuç bu.

Bu bağlantı ziyaretçiler için gizlenmiştir. Görmek için lütfen giriş yapın veya üye olun.

111.jpg
 
Konu Sahibi
If Cells(Target.Row, "H").Value yerine If Target.Value yaptım 15,22,29,36,50 sütunlar içinde olduğu için.

HTML:
C#:
İçeriği görebilmek için Giriş yap ya da Üye ol.
hocam aşağıdaki kısım ne işe yarıyor?
Target.Offset(, 1).Resize(1, 6).Value = ""
 
hocam aşağıdaki kısım ne işe yarıyor?
Target.Offset(, 1).Resize(1, 6).Value = ""
Örnek H sütununa yadınız target H sütununda girilen hücre.
Target.offset(,1) ise seçilen hücrenin bir sağı yani burdaki 1 sütun kısmı.
Target.offset(,1).resize(1,6) ise 1 sağ olmuştu orası ve 6 sütun sağı oluyor.
Ve o hücreler temizleniyor.
Target h5 ise
İ5:n5 temizleniyor özetle yanlış yazmadıysam kafadan.
Kodu f8 ile adım adım ilerletip gözlemleyin.
 
Bir excel açın ve Buton akleyip alttaki kodu çalıştırın nereler seçildiğini görürsünüz.
1 ve 6 larlada oynayıp deneyin.,1 bun önünde yazmadığı için 0 kabul ediliyor orayada yazın birşeyler.Maksat deneyip öğrenmdniz diyeceğim ama :)

Range("B5").Offset(, 1).Resize(1, 6).select
 
Konu Sahibi
If Cells(Target.Row, "H").Value yerine If Target.Value yaptım 15,22,29,36,50 sütunlar içinde olduğu için.

HTML:
C#:
İçeriği görebilmek için Giriş yap ya da Üye ol.
Ellerinize sağlık hocam
çok teşekkür ediyorum emeğiniz ve ilginiz için
İyiki varsınız :)
 
Rica ederim,kolay gelsin üstad ;)
Bu arada Target olayı sayfa kodlarında kullanılıyor bilyorum zaten parametre içinde target var o kodlarda.
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst