Çözüldü Müşteri sepete otomatik veri aktarma

Epakambalaj

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Hayırlı Günler Üstadlarım.

F - K - M - U Sütunlarına ürün miktarı girdiğimizde, Müşteri sepetine Ürün Miktarı ve sağındaki Ürünün kendisini otomatik olarak almamız mümkün müdür?

Örneğin F4'e "1" yazdığımızda A7'ye aynı veriyi ve B7'ye de G4'teki veriyi almak istiyoruz.

Aynı mantıkla 33 satır - 33 satır alt alta tekrarlanmasını istiyoruz. Bu şekilde alt alta 150 sepetten (4950'ye kadar) oluşuyor.

Örnek dosyadan daha rahat anlaşılır inşallah
Şimdiden çok teşekkür ediyorum.
 

Ekli dosyalar

Merhabalar @Epak ambalaj

İşleyişi şöyle kurguladım:
-- Belirtilen sütunlara METİN yazılırsa bu veri silinir.
-- 22 satırlık sol taraftaki SEPET kısmı doluncaya kadar, belirtilen sütunlara sayı yazıldığında,
yazılma sırasına göre boşluksuz SEPETE eklenir.
-- Daha evvel F,K,P,U sütunlarına yazılan SAYI silinirse;
SEPETteki ilgili satır da silinir ve SEPET alanındaki liste tekrar boşluksuz hale getirilir.
-- Sepet doluyken F,K,P,U sütununa yeni sayı yazılırsa uyarıyla beraber, yazılan son sayı silinir.

Umarım beklenti böyledir.

Alt taraftan sayfanın adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçtiğinizde açılacak VBA ekranında
sağdaki boş alana kodları yapıştırın

VBA:
You must log in to view content
(43 satır)
 
Public secim Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column < 6 Or Target.Column > 21 Or Target.Row > 4950 Then Exit Sub Application.EnableEvents = False ilk = Int(Target.Row / 33) * 33 + 7: son = ilk + 21 If Target.Offset(0, 1) = "" Or Target.Offset(0, 1) = 0 Then MsgBox "Önce ÜRÜN SEÇimi yapılmalıdır!", vbCritical Target.ClearContents: GoTo 10 End If bul = 0 For s = ilk To son bak = Cells(s, 1) & Cells(s, 2) & Cells(s, 3) If bak = secim Then bul = s: Exit For End If Next If bul > 0 And Target = Empty Then Range("A" & bul & ":C" & bul).ClearContents Range("A" & bul).Resize(son - bul + 1, 3) = Range("A" & bul + 1 & ":C" & son).Value Range("A" & son & ":C" & son).ClearContents: GoTo 10 End If If ((Target.Column - 1) Mod 5) = 0 And Not IsNumeric(Target.Value) Then MsgBox "SADECE SAYI YAZILABİLİR", vbCritical Target.ClearContents: Target.Activate ElseIf WorksheetFunction.CountBlank(Range("A" & ilk & ":A" & son)) = 0 Then MsgBox "Müşteri sepeti dolu!", vbCritical Target.ClearContents: Target.Activate: GoTo 10 Else XD = Cells(son + 1, 1).End(3).Row + 1 Cells(XD, 1) = Target.Value Cells(XD, 2) = Target.Offset(0, 1) Cells(XD, 3) = Target.Offset(0, 2) End If 10: Application.EnableEvents = True End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column < 6 Or Target.Column > 21 Or Target.Row > 4950 Then Exit Sub If Selection.Count > 1 Then Exit Sub secim = Target & Target.Offset(0, 1) & Target.Offset(0, 2) End Sub
Ellerinize sağlık üstadım. Tam istediğimiz gibi olmuş.

Ufak rutuş yababilir misiniz?

1 - Hazırladığınız Kodda G-L-Q-V sütunlarına yeni ürün girişi yapamıyoruz.
2- Müşteri sepeti tam doluyken, aradan herhangi ürünü manuel olarak sildiğimizde, akabinde yeni ürün eklemek istediğimizde boşluğa eklemek yerine, boşluğun 2 hücre altına ekliyor (2 hücre alttaki mevcut ürünü değiştiriyor).
 
Verdiğim kodda malum ik adet prosedür var.
Biri Worksheet_Change, diğeri Worksheet_SelectionChange.
Her iki prosedürün en başındaki If Target....... Then Exit Sub
satırındaki Then ibaresinin yerine Or ((Target.Column - 1) Mod 5) <> 0 Then yazarak deneyin.

.
 
Daha evvel verdiğim 2 numaralı cevabı güncelledim ve C sütununu işlem dışı bıraktım.
Sayfayı yenileyerek kodun yeni halini deneyin.

Hatırlatma: Sepete ürün ekleme/silme işlemi sadece F, K, P ve U sütunlarına sayı yazarak/silerek yapılmalıdır.
Bunu daha evvel 4 numaralı cevapta da yazmıştım.
Ayrıca, ürün ve fiyat bilgisi değişiminin sepete yansıması için önce ürünün solundaki F, K, P, U (miktar)
sütunlarında ilgili sayı silinmeli (sepetten de silinir),
ürün adı ve fiyatı değiştirildikten sonra, F, K, P, U sütunundan silinen sayı tekrar yazılmalıdır (sepete tekrar eklenir).
 
Daha evvel verdiğim 2 numaralı cevabı güncelledim ve C sütununu işlem dışı bıraktım.
Sayfayı yenileyerek kodun yeni halini deneyin.

Hatırlatma: Sepete ürün ekleme/silme işlemi sadece F, K, P ve U sütunlarına sayı yazarak/silerek yapılmalıdır.
Bunu daha evvel 4 numaralı cevapta da yazmıştım.
Ayrıca, ürün ve fiyat bilgisi değişiminin sepete yansıması için önce ürünün solundaki F, K, P, U (miktar)
sütunlarında ilgili sayı silinmeli (sepetten de silinir),
ürün adı ve fiyatı değiştirildikten sonra, F, K, P, U sütunundan silinen sayı tekrar yazılmalıdır (sepete tekrar eklenir).
Ellerinize sağlık üstadım. Tam istediğimiz randımanı aldık. Allah Razı Olsun
 
Hayırlı akşamlar hocam.

Ek olarak;
Örneğin orta boy poşet için F Hücresine 2 yazıp daha sonra bu miktarı 5 adete çıkarmak istediğimizde yeni bir ürün gibi ekleme yapıyor.

Hazırladığınız koda göre, sepette hem 2 orta poşet hem de 5 orta poşet oluşuyor.

Miktar değişiklikleri durumunda, sepetteki mevcut ürünün kalıp miktarının değişmesi için ne yapmalıyız.

Tekrar çok teşekkkür ediyorum.
 
Hayırlı Sabahlar hocam.

Müşteri sepeti dosyamızın A5 hücresine saati, B5 hücresine de tarihi çekmek istiyoruz.
Bunu, sepete herhangi bir ürün çektiğimizde kalıcı olarak almak istiyoruz.

ör. ertesi günlerde içerisinde birşeyler olan sepete ilave veya çıkarma yapmak istediğimizde, tarih ve saat güncellenmemeli.
yani sepete sadece ilk eşya konulduğunda tarih ve saat çekilsin yeterlidir.

yardımcı olabilir misiniz hocam?
hayırlı sabahlar diliyorum.
 
Mevcut koda yeşil olan satırları ekleyin.
İlk yeşil satır sepet tamamen boşaltıldığında tarih ve saati temizler.
İkinci yeşil satır ise, sepete ilk ürün eklendiğinde ilgili hücrelere tarih ve saati yazar.

VBA:
You must log in to view content
(16 satır)
 
Mevcut koda yeşil olan satırları ekleyin.
İlk yeşil satır sepet tamamen boşaltıldığında tarih ve saati temizler.
İkinci yeşil satır ise, sepete ilk ürün eklendiğinde ilgili hücrelere tarih ve saati yazar.

VBA:
You must log in to view content
(16 satır)
Aynen istediğimiz gibi çalıştı hocam.
Ellerinize sağlık.

İlave olarak, D32'ye rakam girdiğimizde, C32'ye tarih girmesini istiyoruz.
Ne yapmalıyız hocam?
 
Sayın Ömer hocam,
Eklediğimiz dosyada Sayfa2'deki (daha önce sizin ayarladığınız ve ihtiyacımıza göre uyarladığımız) kod;
F sütununa rakam girdiğimizde, G sütunundaki ürünün BE sütunundaki aynı ismini bulup, I ve J sütunlarına (malın alış ve tayin edilen satış) fiyatlarını çekiyor.

Sayfa 1 deki düzenlenmiş kodla, Sayfa 2 deki kodu nasıl birleştirmeliyiz?

İlginiz için çok teşekkür ediyorum.
 

Ekli dosyalar

Üst