• DİKKAT

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

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
 
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)
 
Dosyanızı eklermisiniz.
 
Dosyanızı xls olarak eklermisiniz.
 
bu şekildemi

xls nedir pek bilmiyorum ama 97-2003 formatında kaydettim
 
Ekli dosyayı inceleyin.
 
hiç bir değişiklik olmuyor listeye aktarılmıyor f1e yazdıklarım neden olabilir?
 
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.
 
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)
 
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.
 
Rica ederim, faydalı olabildiğime sevindim.
 
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 :)
 
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.
 
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...
 
Geri
Üst