macro ile yan hücre tanımı.

Katılım
31 Mayıs 2006
Mesajlar
62
Merhaba Arkadaşlar,
Macroda bir kodu sormak isterim.

Sheets("sayfa1").Range("a1") 'in anlamı

"sayfa 1 shetindeki a1 hücresi" demek oluyor.

peki "sayfa1 sheetindeki a1 hücresinin yanındaki hücre" ifadesini nasıl yazabiliriz.

teşekkürler.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bunu aşağıdaki şekilde elde edebilirsiniz.

Sağdaki ilk bitişik hücre için,

Kod:
Sheets("sayfa1").Range("a1").next
Sağdaki istenilen hücre için (buradaki "1" sayısı ilk bitişik hücreyi temsil ediyor, bu sayıyı değiştirerek mevcut hücreden itibaren istenilen uzaklıktaki hücre belirlenebilir)

Kod:
Sheets("sayfa1").Range("a1").offset(0,1)
 
Katılım
31 Mayıs 2006
Mesajlar
62
bu kodu yapmaya çalıştığım basit stok programı için sormuştum. fakay uygulamada hata yapıyorum. yani kodun tamamını yazmakta zorlanıyorum.

yapmaya çalıştığım kod şu şekilde;

1- combobox1'de seçmiş olduğum değeri a sütununda bul,
2- textbox1'de yazmış olduğum değeri, bulunan hücrenin yanındaki rakama ekle.

aşağıda da nasıl saçmaladığımı göstemek isterim :)

Private Sub CommandButton1_Click()
deger = ComboBox1.Value
deger2 = TextBox1.Value
rar = Application.WorksheetFunction.VLookup(deger, Sheets("sayfa1").Range("A2:b5"), 2, 0)
toplam = CDbl(rar.Value) + CDbl(deger)
TextBox1.Value = deger2
rar.Value = toplam
End Sub

yukarıaki kod tabi ki işe yaramadı.

yazdığım iki maddeye istinaden bir öneriniz var mı acaba?

teşekkürler.
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,475
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
07-11-2024
dosyanızın bir örneğini eklerseniz daha iyi olur bence
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,475
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
07-11-2024
bir örnek göndermediniz ben bir şeyler yapmaya çalıştım ama denermisiniz aşağıdaki kodu
Kod:
Private Sub CommandButton1_Click()
On Error Resume Next
If ComboBox1.Text = "" Then

MsgBox "Bir Değer Seçmelisiniz!!!"
Exit Sub
End If
For Each hucre In Range("a2:a" & WorksheetFunction.CountA(Range("a1:a65000")) + 1)
If StrConv(hucre.Value, vbUpperCase) = StrConv(ComboBox1.Value, vbUpperCase) Then
   hucre.Select
   t1 = CDbl(ComboBox1)
   t2 = CDbl(TextBox1)
   ActiveCell.Offset(0, 1).Value = t1 + t2
   
End If
Next


End Sub
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,475
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
07-11-2024
aşağıdaki kodu ilgili yerdeki ile değiştirirmisiniz
Kod:
For Each hucre In Range("a2:b5" & WorksheetFunction.CountA(Range("a1:a65000")) + 1)
 
Katılım
31 Mayıs 2006
Mesajlar
62
@udentr2002
Tam ben de dosyayı sadeleştirmiş gönderiyorken cevabınızı gördüm. ve dosyaya uyguladım. çok teşekkürler.

yaptığınız gibi değeri buluyor ve yanındaki rakamı değiştiriyor.

fakat benim yapmaya çalıştığım a sütunundaki ismin yanındaki değer ile textbox1'deki değeri toplamasıdır.
toplamayı da ekliyebilir misiniz?

dosyayı ekte gönderiyorum.

yardımınız için şimdiden teşekkürler.
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,475
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
07-11-2024
kodu aşağıdaki gibi değişttirin
Kod:
Private Sub CommandButton1_Click()
On Error Resume Next
If ComboBox1.Text = "" Then

MsgBox "Bir Değer Seçmelisiniz!!!"
Exit Sub
End If
For Each hucre In Range("a2:b5" & WorksheetFunction.CountA(Range("a1:a65000")) + 1)
If StrConv(hucre.Value, vbUpperCase) = StrConv(ComboBox1.Value, vbUpperCase) Then
   hucre.Select
   
   t2 = CDbl(TextBox1)
   t1 = ActiveCell.Offset(0, 1).Value
   ActiveCell.Offset(0, 1).Value = t1 + t2
End If
Next


End Sub
 
Katılım
31 Mayıs 2006
Mesajlar
62
@ udentr2002 tekrar çok teşekkürler,

ellerinize sağlık. sayenizde bi çok kod'da öğrenmiş oldum.

eğer beni mazur görmez iseniz bi ek daha sorucam.

örneğimde de gördüğünüz gibi userform'umda 2 adet combobox kutucuğu var. gerçek usurformumda bunlardan yaklaşık olarak 25 adet altalta dizilmiş durumda.

yukarıdaki kod bir combo box için yazılmış. peki 25 kod için aşağıdaki gibi yazsam mı yoksa kodu şişirmeden daha kısa bi yazımı olur mu?

Kod:
Private Sub CommandButton1_Click()
On Error Resume Next
If ComboBox1.Text = "" Then

MsgBox "Bir Değer Seçmelisiniz!!!"
Exit Sub
End If
For Each hucre In Range("a2:b5" & WorksheetFunction.CountA(Range("a1:a65000")) + 1)
If StrConv(hucre.Value, vbUpperCase) = StrConv(ComboBox1.Value, vbUpperCase) Then
   hucre.Select
   
   t2 = CDbl(TextBox1)
   t1 = ActiveCell.Offset(0, 1).Value
   ActiveCell.Offset(0, 1).Value = t1 + t2
End If
Next
or Each hucre In Range("a2:b5" & WorksheetFunction.CountA(Range("a1:a65000")) + 1)
If StrConv(hucre.Value, vbUpperCase) = StrConv(ComboBox2.Value, vbUpperCase) Then
   hucre.Select
   
   t2 = CDbl(TextBox2)
   t1 = ActiveCell.Offset(0, 1).Value
   ActiveCell.Offset(0, 1).Value = t1 + t2
End If
Next

or Each hucre In Range("a2:b5" & WorksheetFunction.CountA(Range("a1:a65000")) + 1)
If StrConv(hucre.Value, vbUpperCase) = StrConv(ComboBox3.Value, vbUpperCase) Then
   hucre.Select
   
   t2 = CDbl(TextBox3)
   t1 = ActiveCell.Offset(0, 1).Value
   ActiveCell.Offset(0, 1).Value = t1 + t2
End If
Next
End Sub
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,475
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
07-11-2024
gerçek dosyanızı örnek olarak gönderebilrseniz belki bir döngü içinde yazılabilir
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
StrConv(hucre.Value, vbUpperCase)
açılımı nedir?
 
Katılım
31 Mayıs 2006
Mesajlar
62
StrConv(hucre.Value, vbUpperCase)
açılımı nedir?

Kod:
StrConv: Stringi Verilen Moda cevirir.

StrConv(String,Mod)

String : cevirilecek metin
Mod : vbLowerCase = Kücük harfe cevrilir
vbUpperCase = Büyük harfe cevrilir
vbProperCase = Ilk harf büyük digerleri kücük
VbFromUnicode = Unicode'dan cevrilir
vbUnicode = Unicode'a cevrilir
vbHiragana = Hiragana
vbKatakana = Katakana
vbNarrow = Dar
vbWide = Genis


aucar19 arkadaşımızın bi açıklamasını buldum bunun üzerine. Strconv ile kullanılıyor.

http://www.excel.web.tr/showthread.php?t=13936

udentr2002 arkadaşımızın orda bu ifadeyi kullanması aynı olan hücreleri bulmak içindi sanırım.
bence çok güzel bi örnek oldu.

@udentr2002 bey ekte uygulamamı gönderiyorum. ilginiz için çok teşekkürler.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
teşekkürler sn woyzeck
 
Üst