• DİKKAT

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

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.
 
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)
 
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.
 
dosyanızın bir örneğini eklerseniz daha iyi olur bence
 
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
 
aşağıdaki kodu ilgili yerdeki ile değiştirirmisiniz
Kod:
For Each hucre In Range("a2:b5" & WorksheetFunction.CountA(Range("a1:a65000")) + 1)
 
@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.
 
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
 
@ 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
 
gerçek dosyanızı örnek olarak gönderebilrseniz belki bir döngü içinde yazılabilir
 
StrConv(hucre.Value, vbUpperCase)
açılımı nedir?
 
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.
 
teşekkürler sn woyzeck
 
Geri
Üst