Hücre içeriği Kopyalama (İlk 4 Rakam)

Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba
B3:B Aralığına 6 ve 7 haneli yüzlerce rakamsal değer giriliyor. Uzun bir zaman kaybı yaşıyorum. Bir nebze olsa da bu işi kısa zamanda yapıp zaman kazanmam gerekiyor.

Örneğin B5 hücresinde 6627142 yazıyor. B6 hücresine 3 haneli yani 352 yazdığımızda bir üsteki hücrenin ilk 4 hanesini (6627) B6 hücrenin başına yazılması gerekiyor. Ben 352 yazdığımda hücrede 6627352 olmalı. 6 Haneli rakamlarda ise 2 haneli rakam gireceğim bir üstteki hücrenin yine ilk 4 hanesi eklenecek. Bu işlemi genelde isme göre veri süzme ile yapıyorum. Veri süzme yapıldığında arada bazı satırlar gizleniyor. Veri süzme aktif iken işlem yapılacak satır atıyorum 25, bir üst hücre 14 satır olduğunu var sayalım. Makro bir üstü 24 satır değil, 14 satır olarak algılamalı. Örnek çalışma aşağıdaki linktedir.
Bu sayede baya baya zaman kazanmış olacağım. İlgilenecek arkadaşlara çok teşekkür ediyorum. İyi çalışmalar dilerim.
Saygılarımla.
Kod:
http://s3.dosya.tc/server/GEQ1su/giri_.rar.html
 
Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba,
Arkadaşlar yokmu buna bir çözüm yolu. Daha önceden uzmanamele hocamız yardımcı oldu lakin iş presedüründe değişiklik olunca yeniden çözüm yoluna ihtiyacım oldu.
Nasıl bir çözüm yolu bulabiliriz.
Benzeri konu olarak aratsam ne olarak arama yapmam gerekiyor.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Belgeyi inceleyiniz.

Belgeniz ekte.
 

Ekli dosyalar

Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba Ömer Bey,
Örnek çalışmayı inceledim
istediğim gibi bir çalışma değil, ayrıca makro ile olmalı. Diğer C sütunda farklı bilgiler bulunmakta C sütunu kullanma imkanım malesef yok. Dediğim gibi makro ile olmalı ve. Bu yaptığınız çalışma bir veri getiriyor ama neye getiriyor. istediim gibi değil.
Teşekkür ediyorum ilginiz için.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Dikkatli bakmadınız sanırım.
Kod işinden pek anlamadığım için formülle çözüm ürettim.

Formülünü bulunduğu sütunu değiştirebilirsiniz isterseniz. C sütununda kalması şart değil ki.

Formül; solundaki hücrenin uzunluğuna bakıp uzunluğu 6 veya 7 ise o (solundaki) hücreyi getiriyor,

solundaki hücrenin uzunluğu 2 veya 3 ise o (solundaki) hücredeki veriyle, onun bir üstündeki hücrenin ilk dört hanesini birleştirip yazıyor.
Sizin tarif ettiğiniz de buydu zaten.

Ayrıca, önce bir teşekkür etmeniz gerekmez mi?
Dosyanızı indirmek için bir oyun sitesinin reytingini artırmışım (bence belki de maksadınız buydu bilemiyorum tabi), dosyanızı başka bir siteden indirip üstünde formül yazıp bu siteye yüklemişim.

Canınız sağ olsun.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Başka birine yazacağım mesajı da buraya yazmışım.
Bu nedenle bu mesaj burada, kusura bakmayınız.

Önceki mesajımı tekrarlıyorum.
 
Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Ömer Bey ilginizi anlıyorum. Bundan zerre şüphe yok. Bana makroda lazım öncelikle bu önemli. Çalışmamda veri oldukça yüksek olduğundan mümkün olduğunca makro olması gerekiyor.
Ben gönülden tşekkür ediyorum. Formül ile de çok ihtiyacım var ama farklı konularda.
İlginizi çin tekrardan teşekkür ederim.


Saygılarımla.


Osman BAĞRIYANIK
 
Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba Hocam,
Süzme işlemi yapıldığında, arada gizlenen verileri de bir üst hücre olarak görmesi,
Çalışma presedüründe değişiklik oldu, 6 haneli rakamlarda girişleri son 2 rakam yazarak ilk 4 hanesinin gelmesi, 7 haneli rakamlarda ise son 3 rakamın yazılıp ilk 4 hanesinin gelmesi. Önceki konuda sadece 3 rakamlı sayılarda çalışıyor ve süzmeler olduğunda, arada gizlenen satırlarıda bir üst veri olarak görmesi.
Farklılılar bu şekildedir. Umarım konularda art niyet aramıyorsunuzdur.

Saygılarımla.
 
Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba,
Arkadaşlar bu konuya nasıl çözüm ürete biliriz. Fikri olan yol yordam göstere bilirmi.

İyi çalışmalar dilerim.
 
Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Günaydın arkadaşlar,
Bu konuya çözüm yolu yokmu, ya da önerebileceğiniz link vs. konu falan bir çözüm yolu yani.

İyi çalışmalar dilerim.
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,833
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba
Sayfanın kod bölümüne kopyalayın ve deneyin.
Kod:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim BLG As Long
Application.EnableEvents = False
If Intersect(Target, Range("B3:B" & Rows.Count)) Is Nothing Then _
Application.EnableEvents = True: Exit Sub
If Target.Row > 3 Then
If Len(Target) >= 2 And Len(Target) <= 3 Then
BLG = Left(Cells(Target.Row - 1, "B"), 4)
Target = BLG & Target
End If: End If
Application.EnableEvents = True
End Sub
 
Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba Asi bey,
İlginizden dolayı teşekkür ederim, Elinize Sağlık çokgüzel olmuş fakat, arada süzme olduğunda hata alıyorum. Örnek dosya eklemeyi isterim ama şirkette olduğumdan ekleyemiyorum. Süzmel olan bir çalışmada denerseniz sorunu gözlemleye bilirsiniz.
Tekrardan çok teşekkür ediyoum.

İyi çalışmalar dilerim.
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,833
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba
Kod hata vermiyor bir üst hücresi boş olduğu için bir işlem yapmıyor.
Mesela
Ben Ali'yi süzdüm işlem yapıyorum çalışıyor. Sebebi ise son hücrede Ali bilgisi var ve bir üst hücre dolu.
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,833
Excel Vers. ve Dili
Excel 2007 Türkçe
Bir de bu kodu deneyin.
Kod:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim BLG As Long
Application.EnableEvents = False
If Intersect(Target, Range("B3:B" & Rows.Count)) Is Nothing Then _
Application.EnableEvents = True: Exit Sub
If Target.Row > 3 Then
If Len(Target) >= 2 And Len(Target) <= 3 Then
BLG = Left(Cells(Range("A2").End(xlDown).Row, "B"), 4)
Target = BLG & Target
End If: End If
Application.EnableEvents = True
End Sub
 
Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba Asi Bey,
Kodlarınızı denedim çok süper olmuş, elnize bilginize sağlık. umaım bir sıkıntı çıkaz ve bu kodu hep kullanırım.
Hayırlı akşmlar dilerim.
 
Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba Asi Bey,
Kodlar tam istediğim gibi, ama küçük 2 sıkıntı var,
Kodları eklediğim sayfada satır silme işlemleri yapılmakta otomatik olarak, satır sil yapıldığında aşağıdaki satır hata veriyor sarı oluyor.
Kod:
If Len(Target) >= 2 And Len(Target) <= 3 Then
İkinci sorun ise, hücreye girilecek rakam 012 gibi olduğunda, yani 0 ile başlarsa 12 şeklinde yazıyor, 01 yazdığımda da 1 olarak yazıyor hücre biçimlendirmeden sütunu metin olarak işaretlediğimde ise farklı sorunlara yol açmaktadır. Sütunu metin olarak işaretlemeden farklı bir çözüm yolu olabilir mi?
İlginiz için bir kez daha teşekkür ediyorum. 3 yıl boyunca hiç bu kadar kolay veri girişi yapmadım. Ayrıca epeyce zaman kazanmaktayım.
İyi çalışmalar dilerim.
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,833
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba Asi Bey,
Kodlar tam istediğim gibi, ama küçük 2 sıkıntı var,
Kodları eklediğim sayfada satır silme işlemleri yapılmakta otomatik olarak, satır sil yapıldığında aşağıdaki satır hata veriyor sarı oluyor.
Kod:
If Len(Target) >= 2 And Len(Target) <= 3 Then
İkinci sorun ise, hücreye girilecek rakam 012 gibi olduğunda, yani 0 ile başlarsa 12 şeklinde yazıyor, 01 yazdığımda da 1 olarak yazıyor hücre biçimlendirmeden sütunu metin olarak işaretlediğimde ise farklı sorunlara yol açmaktadır. Sütunu metin olarak işaretlemeden farklı bir çözüm yolu olabilir mi?
İlginiz için bir kez daha teşekkür ediyorum. 3 yıl boyunca hiç bu kadar kolay veri girişi yapmadım. Ayrıca epeyce zaman kazanmaktayım.
İyi çalışmalar dilerim.
Merhaba
1. Sorununuz bu kod ile çözülür.
Kod:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim BLG As Long
Application.EnableEvents = False
If Target.Count = 1 Then
If Intersect(Target, Range("B3:B" & Rows.Count)) Is Nothing Then _
Application.EnableEvents = True: Exit Sub
If Target.Row > 3 Then
If Len(Target) >= 2 And Len(Target) <= 3 Then
BLG = Left(Cells(Range("A2").End(xlDown).Row, "B"), 4)
Target = BLG & Target
End If: End If: End If
Application.EnableEvents = True
End Sub
2. Sorunuza gelince hücreye rakamsal ifade yazdığınızda hiç bir zaman 0 ( sıfır ) yazamazsınız bunu otomatik siler kayda almak. Çünkü rakamların başında hiç bir zaman 0 olamaz bu ancak metin ile olur. Metine çevirdiğiniz hücrede soğru sonuç veriyor bende.
Ama şu şekilde bir çözüm de olabilir. Mesela sabit bir giriş vardır 1 hane girdiğinizde başına iki tane sıfır 2 hane girdiğinizde başına bir tane 0 ekleme yapılabilir. Tabi bunun için kodda bazı değişiklikler yapmamız gerekli.
 
Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba Asi Bey,
İlk sorun çözüldü elinize sağlık. İkinci soruna gelince metin olarak işlem yapamamaktayım. Bunun için makro olursa çok sevinirim. Girilen rakam 012 ve 001 gibi 0 ile başlıyorsa bu şekilde yazılmalı, 01 giriliyorsa yine bu şekilde yazılmalı. Böyle bir şey olmalı. 2 ve 3 haneli girdiğimde girilen rakam 0 ile başladığında bile yazmalı.

Tekrardan teşekkür ederim.
İyi çalışmalar dilerim.
 
Üst