• DİKKAT

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

Properties sayısı ile textbox belirlemek

  • Konbuyu başlatan Konbuyu başlatan ziya
  • Başlangıç tarihi Başlangıç tarihi
Katılım
8 Nisan 2005
Mesajlar
789
Excel Vers. ve Dili
Excel 2010 Türkçe
Merhaba
Kod:
Sheets(ComboBox1.Value).Cells((ComboBox2.ListIndex + 1) * 3 + 1, 3 + say).Value _ 
= Controls("Textbox" & say + 1).Value
Yukarıdaki kodda Comb1 ile sayfayı, Comb2 ile hücreyi buluyorum (sütun sayısını "say" değişkeni ile) , ancak 1 den 31'e kadar olan Textboxları "say" değişkeni döngüsü ile bulduğum hücrelere yazdıramıyorum.
Macro çalışıyor, hiç hata vermiyor ama kayıt yapmıyor
Aşağıdaki gibi değişken kullanmazsam, yani 30 satır kod yazarsam sorun yok.
Kod:
Sheets(ComboBox1.Value).Cells((ComboBox2.ListIndex + 1) * 3 + 1, "D").Value _ 
=TextBox1.Value
Sorunun Controls("Textbox" & say + 1).Value tanımındaki Controls da olduğunu sanıyorum.
Yardım rica ediyorum.
 

Ekli dosyalar

Son düzenleme:
Merhaba,
Bence sorun say+1 şeklindeki ifadede.
Çünkü, döngü For say = 1 To 31 şeklinde. Döngünün sonunda(31.döngüde) say+1, 32 değerini alıyor. Halbu ki 31 tane TextBox var ve hata ile sonlanıyor.

Çözüm: Döngü For say = 1 To 30 şeklinde olmalı. (say+1 son -31. textboxu- ifade etmiş olur)
 
Sn dEdE
1 To 30 değil de, say+1 deki +1'i kaldırdım düzeldi. Daha doğrusu her ikisi de hata yapmamasını sağlıyor. Önümü görmemi sağladınız, +1'i kaldırmazsam bu defa Textbox1'i kaydedemeyecektim.
Teşekkür ederim.
 
...1 To 30 değil de, say+1 deki +1'i kaldırdım düzeldi.
...

Merhaba,
Amacınızı bilmediğim için öyle yazdım. Tabii ki en doğrusunu siz bulacaksınız.
Sorunun çözüldüğüne sevindim.
İyi çalışmalar.
 
Sn dEdE
Sorun sizin söylediğiniz gibi kod'un Textbox32 'yi aramasıydı, bakar bakmaz gördünüz sağolun, dediğiniz gibi sorun çözüldü.

Aynı çalışmada başka bir satırda hücre tariflerken problem yaşadım.
Kod:
Dim t32 As Integer
t32 = ((ComboBox2.ListIndex + 1) * 3) - 1
...
t32'yi kullandığım kod
TextBox1 = Format(Sheets(ComboBox1.Value).Range[COLOR=darkred]("H"[/COLOR] & t32 + 2).Value, "#,##0.00")
"H" sütunu ve takip eden sütunlar için sayaç oluşturarak ve yine Textbox sayılarını da bu döngüde elde ettiğim sayı ile ifade etmek istiyorum
Kod:
Controls("Textbox" & say) = Format(Sheets(ComboBox1.Value).Range(say+7 & t32 + 2).Value, "#,##0.00")
Hata veriyor. Sanıyorum Range(say+7 & t32 + 2).Value ile hücreyi tanımlayamıyorum.
İlginize şimdiden teşekkür ederim.
 
...... Sanıyorum Range(say+7 & t32 + 2).Value ile hücreyi tanımlayamıyorum....

Merhaba,
Sizin de söylediğiniz gibi sorun Range tanımlamasında.
Yukarıdaki örneğinizi inceleyelim. Örneğin;
say=2
t32=5 olsun. Bu durumda; 2+7+5+2=16 yani Range(16) olur ki bu yanlış bir tanımlamadır.
Range(kolon&satır) şeklinde tanımlanmalıdır. Range("A1"), Range("A1:B7") gibi.
Dosyanızı incelemeden daha fazlasını söylemem olası değil ama tek hücreyi tanımlamaya çalışıyorsanız range yerine Cells kullanabilirsiniz.
Cells(1,1) veya Cells(1,"A"), cells(değişken,"A"),cells(değişken,değişken) gibi kullanabilirsiniz.
Hoşçakalın.
 
Sn dEdE merhaba,
Önce teşekkür ederim.
t32 neredeyse sabit bir sayı, Ay sayısını 3'le çarpıp 1 eksiltiyor ve satır sayısını buluyor. Her koda ayrı ayrı ((ComboBox2.ListIndex + 1) * 3) - 1 yazmamak için oluşturdum. Açıklama yapmalıydım.
Dosya ekleyemedim, biraz şişkin. Ayrıca teferruatla sizleri meşgul etmek istemedim.
Cells uygulayınca en azından hata vermeden işlem yaptı ama verileri istediğim yerden alamadım şimdilik. Yaklaşık 85 textboxa değişik döngüler uyguluyorum. Belli ki sizi daha rahatsız edeceğim.
Selamlar,
 
Geri
Üst