• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Veri girdikçe geçiş yap

  • Konbuyu başlatan Konbuyu başlatan ADER_34
  • Başlangıç tarihi Başlangıç tarihi
Katılım
2 Haziran 2015
Mesajlar
349
Excel Vers. ve Dili
2010
Merhabalar öncelikle kolay gelsin arkadaşlar , makro ile şöyle bir şey yapmak istiyorum
çalışma sayfasında veri girişi yaptıkça veri girilen hücre bi yan hücreye otomatik geçsin
yani şu hücreler:
"E" sütunundan "K" sütununa "B" sütununa "J" sütununa "C" sütununa sonra "F" sütununa
gitmesini istiyorum.kolay gelsin teşekkürler örnek ekte
http://s3.dosya.tc/server7/akul6y/GECIS_YAP.xlsx.html
 
Aşağıdaki kodları ilgili sayfanın kod bölümüne yapıştırıp deneyiniz (Soruda belirttiğiniz sırayla hücreler arasında geçiş yapar):

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
son = Cells(Rows.Count, "A").End(3).Row + 1
a = Target.Row
If Intersect(Target, Range("E2:E" & son)) Is Nothing Then GoTo 10
Cells(Target.Row, "K").Select
10:
If Intersect(Target, Range("K2:K" & son)) Is Nothing Then GoTo 20
Cells(Target.Row, "B").Select
20:
If Intersect(Target, Range("B2:B" & son)) Is Nothing Then GoTo 30
Cells(Target.Row, "J").Select
30:
If Intersect(Target, Range("J2:J" & son)) Is Nothing Then GoTo 40
Cells(Target.Row, "C").Select
40:
If Intersect(Target, Range("C2:C" & son)) Is Nothing Then Exit Sub
Cells(Target.Row, "F").Select

End Sub
 
Dosya==>Seçenekler==>Gelişmiş==>Düzenleme seçeneklerinden Entere bastıktan sonra Seçimi taşıdan sağa seçeneğini seçiniz ve tamama basıp çıkınız.
İşlem tamamdır.:cool:
 
Çok teşekkür ederim sayın Yusuf44 tam istediğim gibi olmuş,"E" Satırından "K" satırına geçip tekrar "E" satırına geçmek için kodlara ilave olarak, bu saırı ekledim
If Intersect(Target, Range("K2:K" & son)) Is Nothing Then GoTo 50
Cells(Target.Row, "E").Select
50: sorun olmadı ama "E" hücresinde veri oluduğu için isteğim enter tuşuna basarak kodları devam ettirmek bunun için hangi kodları ilave etmeliyim kolay gelsin teşekkürler..
 
Ne istediğinizi anlamadım maalesef.
 
Sayın yusuf44 şöyle bir sorun var, kodlar görevini tamamlayınca tekrarlamıyor yani alt satırlarda bu işlemleri yapmıyor
acaba kodlar döngü içinde mi ? olmalı kolay gelsin
 
Son düzenleme:
Kopyaladıktan sonra ne yapacak? K'ya da mı aynısını yazacak?
 
Sayın yusuf44 şöyle bir sorun var, kodlar görevini tamamlayınca tekrarlamıyor,bir alt satırlarda duruyor sanırım döngü kurmak gerekli yardımcı olurmusunuz teşekkürler..
 
Açıkçası yine anlamadım. O satırdaki geçişler tamamlanınca yani F sütununa da veri girince bir alt satırın E sütununa mı geçsin istiyorsunuz?
 
Yani şöyle sayın yusuf44 ,kodlar E2:E satırı şeklinde başlayıp devam ediyor sorun yok fakat, kodlar bitince E3:E ,E4:E, E5:E den devam etmeli çünkü kodlar satır bitince EXİT SUB da bitiyor işlem yaptıkları satırlar tamam ama ben "E3:E " ye geçinçe koldar işlemiyor sorun bu kolay gelsin..
 
Yukarda basit bir soru sormuştum aslında, en son F4 hücresine veri girildi diyelim, ordan E5 hücresine mi geçmek istiyorsunuz?
 
Hayır sayın yusuf 44 hücre geçişleri tamam sorunsuz fakat,
Range("E2:E" & son))
Range("K2:K" & son))
Range("B2:B" & son))
Range("D2:D" & son))
Kodlarını döngü içine almanız ve alt satırlarda da çalışması gerekli
örnek: E3:E ye veri girince kodlar çalışmıyor sorun bu kolay gelsin..
 
E2'ye veri girdiniz, K2'ye geçti
K2'ye veri girdiniz B2'ye geçti
B2'ye veri girdiniz J2'ye geçti
J2'ye veri girdiniz C2'ye geçti
C2'ye veri girdiniz F2'ye geçti

Kodlar burda bitti

F2'ye veri girince ne olmasını istiyorsunuz?
Başa dönüp E3'e mi geçsin?
Daha önce istediğiniz kopyalama olayı neydi?
 
İsteğinizi anladım galiba. Ben son değişkeniyle kodların çalışmasını A sütunundaki ilk boş satıra göre belirlemiştim. Herhangi bir satırda çalışsın istiyorsanız aşağıdaki gibi kullanabilirsiniz:

Aşağıdaki kodlar F sütunundan sonra alt satırın E hücresine geçer:
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E2:E2000")) Is Nothing Then GoTo 10
Cells(Target.Row, "K").Select
10:
If Intersect(Target, Range("K2:K2000")) Is Nothing Then GoTo 20
Cells(Target.Row, "B").Select
20:
If Intersect(Target, Range("B2:B2000")) Is Nothing Then GoTo 30
Cells(Target.Row, "J").Select
30:
If Intersect(Target, Range("J2:J2000")) Is Nothing Then GoTo 40
Cells(Target.Row, "C").Select
40:
If Intersect(Target, Range("C2:C2000")) Is Nothing Then GoTo 50
Cells(Target.Row, "F").Select
50:
If Intersect(Target, Range("F2:F2000")) Is Nothing Then Exit Sub
Cells(Target.Row + 1, "E").Select

End Sub

Aşağıdaki hali ise ilk verdiğim koddaki gibi F sütunundan sonra işlem yapmaz ama yine istenen satırda çalışır:

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E2:E2000")) Is Nothing Then GoTo 10
Cells(Target.Row, "K").Select
10:
If Intersect(Target, Range("K2:K2000")) Is Nothing Then GoTo 20
Cells(Target.Row, "B").Select
20:
If Intersect(Target, Range("B2:B2000")) Is Nothing Then GoTo 30
Cells(Target.Row, "J").Select
30:
If Intersect(Target, Range("J2:J2000")) Is Nothing Then GoTo 40
Cells(Target.Row, "C").Select
40:
If Intersect(Target, Range("C2:C2000")) Is Nothing Then Exit Sub
Cells(Target.Row, "F").Select
End Sub

Kodlardaki 2000'i çalıştırmak istediğiniz son satıra göre değiştirebilirsiniz.
 
sayın yusuf44 şöyle anlatayım E2 hücresine veri girdim, entera bastım kodlar K2 hücresini seçti K2 ye veri girdim kodlar B2 yi seçti B2 ye veri girdim kodlar c2 yi seçti C2 ye veri girdim kodlar J2 hücresini seçti J2 ye veri girdim entera bastım kodlar F2 yi seçti F2 ye veri girdim entera bastım kodlar e3 Hücresini
seçti peki kodlar aynı işlemleri,K3 B3,C3,J3,F3,de nasıl yapacak
 
Son düzenleme:
sayın yusuf44 işlem tamamdır şu kod satırı işlem tekrarı için başarılı oldu If Intersect(Target, Range("F2:F2000")) Is Nothing Then Exit Sub
Cells(Target.Row + 1, "E").Select
sizden sadece son bir isteğim olacak, ilk seçtiğim hücreyi veri girince kopyalaması mümkünmü? sonra işlemlerine devam etsin
Allah razı olsun çok teşekkür ederim kolay gelsin
 
Son düzenleme:
Kopyaladığınızda ne olacağını sormuştum ama cevap vermediniz. Eğer bbir sonraki adımda yapıştıracaksanız sorun yok ama arada başka şeyler yaptıktan sonra kullanmak istiyorsanız kopyalamak işinizi görmez.
 
Bir de en baştan beri verdiğim kodlar sadece 2. Satır için değildi, 2. Satırla A sütunundaki ilk boş satır arasında çalışıyordu. Yani a2 doluysa 3. Satırda da çalışırdı, a359 doluysa 360.satırda da (ve tabiöönceki satırlarda da) çalışıyordu.
 
Geri
Üst