Tanımlanan nesneleri textboxlara for döngüsü ile uygulama

Katılım
25 Eylül 2023
Mesajlar
11
Excel Vers. ve Dili
Office 2016
Saygı değer hocalarım merhaba;

UserFormda;
20 adet TextBox var (TextBox1, TextBox2, TextBox3........)
20 adet Nesne tanımladım (A1, A2, A3,......) nesnelerin her biri farklı sayfalardaki farklı hücrelerin değeri.

yapmak istediğim, for döngüsü ile bu nesneleri textboxlara nasıl tanımlarım?

Örnek:

Kod:
For i = 1 to 20
    Controls("TextBox" & i) = Controls("A" & i)
Next i
böyle yapıyorum ama nesne bulunamadı hatası alıyorum (could not find the specified object)
20 ye kadar tek tek yazmak yerine for döngüsü ile yapabilirsem makbule geçer.


Sevgiler, saygılar.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,875
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Excel vba da A adında bir nesne yok onun için hata alıyorsunuz.
Sizin tanımladığınız şey nesne değil, büyük ihtimalle değişken tanımlaması yapmış olmalısınız.
Tanımlama yaptığınız kodları da paylaşırsanız yardımcı olabiliriz.
 
Katılım
25 Eylül 2023
Mesajlar
11
Excel Vers. ve Dili
Office 2016
Merhaba Muzaffer Ali Bey;

Haklısınız ben değişken tanımladım ve yanlış tabir ettim kusura bakmayın.


Kod:
A1 = Sheets("Arac1").Range("B10")
A2 = Sheets("Arac2").Range("B10")
A3 = Sheets("Arac3").Range("B10")
A4 = Sheets("Arac4").Range("B10")
A5 = Sheets("Arac5").Range("B10")
A6 = Sheets("Arac6").Range("B10")
A7 = Sheets("Arac7").Range("B10")
A8 = Sheets("Arac8").Range("B10")
A9 = Sheets("Arac9").Range("B10")
A10 = Sheets("Arac10").Range("B10")
A11 = Sheets("Arac11").Range("B10")
A12 = Sheets("Arac12").Range("B10")
A13 = Sheets("Arac13").Range("B10")
A14 = Sheets("Arac14").Range("B10")
A15 = Sheets("Arac15").Range("B10")
A16 = Sheets("Arac16").Range("B10")
A17 = Sheets("Arac17").Range("B10")
A18 = Sheets("Arac18").Range("B10")
A19 = Sheets("Arac19").Range("B10")
A20 = Sheets("Arac20").Range("B10")


For i = 1 to 20
    Controls("TextBox" & i) = Controls("A" & i)
Next i

Bu tanımlanan değişkenleri de for ile yapabilir miyim?

Teşekkür ederim.
 

DoğanD

Altın Üye
Katılım
22 Eylül 2023
Mesajlar
415
Excel Vers. ve Dili
Office 365 TR
Altın Üyelik Bitiş Tarihi
05-10-2028
Kodu bu şekilde değişken olmadan dener misiniz?

For i = 1 to 20
Controls("TextBox" & i) = Controls(sheets("Arac" & i).range("B10").value)
Next i
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,875
Excel Vers. ve Dili
2019 Türkçe
Kod:
Dim i as integer
For i = 1 to 20
    Controls("TextBox" & i).value = sheets("Arac" & i).range("B10").value
Next i
 
Katılım
25 Eylül 2023
Mesajlar
11
Excel Vers. ve Dili
Office 2016
Çok teşekkür ederim, bu şekilde hiç düşünmemiştim. Sayenizde işim baya kolaylaştı ve sadeleşti.

Şimdi 2. bir soru daha sorayım.
ben bu değişkenleri toplama yapmak için de tanımlamıştım.

Kod:
A1 = Sheets("Arac1").Range("B10")
A2 = Sheets("Arac2").Range("B10")
A3 = Sheets("Arac3").Range("B10")
A4 = Sheets("Arac4").Range("B10")
A5 = Sheets("Arac5").Range("B10")
A6 = Sheets("Arac6").Range("B10")
A7 = Sheets("Arac7").Range("B10")
A8 = Sheets("Arac8").Range("B10")
A9 = Sheets("Arac9").Range("B10")
A10 = Sheets("Arac10").Range("B10")
A11 = Sheets("Arac11").Range("B10")
A12 = Sheets("Arac12").Range("B10")
A13 = Sheets("Arac13").Range("B10")
A14 = Sheets("Arac14").Range("B10")
A15 = Sheets("Arac15").Range("B10")
A16 = Sheets("Arac16").Range("B10")
A17 = Sheets("Arac17").Range("B10")
A18 = Sheets("Arac18").Range("B10")
A19 = Sheets("Arac19").Range("B10")
A20 = Sheets("Arac20").Range("B10")
    
KullanilanMotorin = A1 + A2 + A3 + A4 + A5 + A6 + A7 + A8 + A9 + A10
KullanilanBenzin = A11 + A12 + A13 + A14 + A15 + A16 + A17 + A18 + A19 + A20
farklı sayfalarda bulunan değerleri toplama yapmak için böyle yaptım. bunları da sadeleştirmenin bir yolu var mıdır?

Teşekkür ederim.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,875
Excel Vers. ve Dili
2019 Türkçe
Kod:
Sub test()
    Dim i As Integer
    Dim KullanilanMotorin As Double
    Dim KullanilanBenzin As Double
    
    For i = 1 To 20
        Controls("TextBox" & i).Value = Sheets("Arac" & i).Range("B10").Value
        If i <= 10 Then
            KullanilanMotorin = KullanilanMotorin + Sheets("Arac" & i).Range("B10").Value
        Else
            KullanilanBenzin = KullanilanBenzin + Sheets("Arac" & i).Range("B10").Value
        End If
    Next
End Sub
 
Katılım
25 Eylül 2023
Mesajlar
11
Excel Vers. ve Dili
Office 2016
Çok teşekkür ederim Muzaffer Ali Bey elinize sağlık.
 
Üst