Hücreye veri yazma

Katılım
15 Ekim 2007
Mesajlar
8
Excel Vers. ve Dili
2007 türkçe
resimde anlatmaya çalıştım
yukarıda sabit bir noktada TR 12 345 678 hayvan kulak küpe numaralarını yazmak istiyorum ve ilk 2 hanesi olmadan aşağıdaki listeye otomatik gitmesini istiyorum. yardımcı olursanız çok sevinirim.
teşekkürler
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Kaynak verinin başlangıcına tek tırnak koyarak
Bir hücreye Aşağıdaki formülü yazarak denermisiniz.:cool:
=SAĞDAN($F$1;UZUNLUK($F$1)-2)
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Dosyanızı eklermisiniz.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Dosyanızı xls olarak eklermisiniz.
 
Katılım
15 Ekim 2007
Mesajlar
8
Excel Vers. ve Dili
2007 türkçe
bu şekildemi

xls nedir pek bilmiyorum ama 97-2003 formatında kaydettim
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Ekli dosyayı inceleyin.
 
Katılım
15 Ekim 2007
Mesajlar
8
Excel Vers. ve Dili
2007 türkçe
hiç bir değişiklik olmuyor listeye aktarılmıyor f1e yazdıklarım neden olabilir?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Araçlar-makro-güvenlik-düşük olarak ayarlayın. Ayrıca "güvenilen yayımcılar" sekmesindeki "visual basic project erişimine güven kutusunuda işaretleyin. Sonrasında dosyayı kapatıp tekrar açın.
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Sayın leventm

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [f1]) Is Nothing Then Exit Sub
x = Left([f1], 1) * 1
y = Right([f1], 6) * 1
For a = 1 To 100
If Cells(2, a) = x Then
[COLOR=green]'z = Columns(a).End(3).Row + 1[/COLOR]
[COLOR=red]z = Cells(65536, a).End(3).Row + 1[/COLOR]
Cells(z, a) = y
End If
Next
End Sub
Soru üzerinde bende çalışıyordum ama tabi hızınıza ve bilginize yetişmek mümkün değil.
Kod yazma konusunda acemiyim.
Takıldığım yer ise kodlardaki yeşil satır. Sizin kodlarınızdan aldığım kısım ile çalşıyor (kırmızı yer)

'z = Columns(a).End(3).Row + 1

Bu şekilde değişken bir sütundaki son dolu satır bulamazmıyız?

Yada sizin yazdığınızın dışında başka nasıl bulabiliriz. (Sütun numarası ile)
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Sn AS3434

Cells(65536, a).End(3).Row şeklindeki ifade klavyedeki end+üst ok kısayolunun kod olarak karşılığıdır. Bu kısayol, seçilen bir hücreden yukarıya doğru ilk dolu hücreye imleçin gönderilmesini sağlar. Dolayısıyla bu kısayolun doğru çalışması için bir hücre veya hücre grubunun seçili olması gerekir. Eğer tüm sütunu seçerseniz bu kısayol imleçi her zaman ilk hücreye yani birinci satıra götürecektir. Dolayısıyla Columns(a).End(3).Row + 1 ifadesi doğru sonucu vermeyecektir. Kısa bir bilgi daha verecek olursam, (3) ifadesindeki 3 rakamı (xlup) tanımlamasının sayısal karşılığıdır.

Son dolu satırı bulmak için başka yöntemlerde elbette mevcuttur, örneğin sütundaki dolu satırlar worksheetfunction.counta(...) fonksiyonu ile saydırılabilir (arada boş satırlar olmamalıdır). Yada aşağıdan yukarı değilde yukarıdan aşağı doğru gidilerek bulunabilir, örneğin, Cells(2, 2).End(4).Row + 1 gibi. Yada bir döngü kurularakta son satır bulunabilir. Bence en hızlı çözüm ilk cells(65536,a).end(3).row şeklindeki çözümdür.


Umarım anlaşılır şekilde ifade etmeyi başarabilmişimdir.
 

AS3434

Özel Üye
Katılım
13 Ocak 2005
Mesajlar
1,820
Excel Vers. ve Dili
M.Office/Excel 2007 Türkçe
Eğer tüm sütunu seçerseniz bu kısayol imleçi her zaman ilk hücreye yani birinci satıra götürecektir.
Sayın leventm
Gayet net oldu. Yukarıdaki cümle herşeyi özetledi zaten.
Teşekkür ederim.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Rica ederim, faydalı olabildiğime sevindim.
 
Katılım
15 Ekim 2007
Mesajlar
8
Excel Vers. ve Dili
2007 türkçe
ayda yaklaşık 10.000 küpe yazıyordum beni nasıl bir zahmetten kurtardınız bilemezsiniz ilgileriniz için sonsuz minnettarım çok teşekkürler. allah tuttuğunuzu altın etsin :)
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
ayda yaklaşık 10.000 küpe yazıyordum beni nasıl bir zahmetten kurtardınız bilemezsiniz ilgileriniz için sonsuz minnettarım çok teşekkürler. allah tuttuğunuzu altın etsin :)
Rica ederim. Yardımcı olabildiğime sevindim.

Not: Kodun her zaman doğru sonucu verdiğini mutlaka deneyin.
 
S

Skorpiyon

Misafir
Sayın AS3434,

Bir örnekte ben vereyim. Sayın leventm, bir döngü ile de gidilebilir demişti.

Örneğin, A sütununda ilk boş hücreye gitmek için, veya hiçbir satır veri atlanmadan yazılmış ise en son satıra gitmek için,

Range("A1").Select 'İlgili sütunun denetlenecek hücresi seçilir
Do While Not IsEmpty (Activecell) 'Seçilen hücre Boş Değilse komutu
Activecell.Offset(1,0).Select 'Eğer boş değilse 1 alt satırı seç diyoruz
Loop 'Taa ki ilk boş hücre bulunana kadar döngüye devam

Bu işlem sonucunda A sütununda A1'den başlayarak denetleme yapılır. 10 satır düşünün. Eğer 10 tanesi de dolu ise (yani A1 - A10 arası) bu komut ile A11 seçilir. Yok A5 boş diyelim. A5 seçilir gibi.

Saygılarımla...
 
Üst