Vba ile Oluşturulan TextBox ve Buton'a Görev Verme?

Katılım
3 Mart 2014
Mesajlar
6
Excel Vers. ve Dili
2007 - 2013
Hayırlı sabahlar arkadaşlar. Bir konuda yine bilginize ihtiyacım var. Yardımcı olursanız sevinirim.

UserForm'a kodlarla 3 adet Label, 2 adet TextBox ve 1 Adet Buton ekledim.
TextBox1 -->tbTarih isminde -----> Buna Girilecek veri Tarih formatında olacak ve mümkünse tarih girilirken nokta ( . ) işaretini otomatik kendisi eklesin.
TextBox2 -->tbGun isminde -----> Buna sadece rakam girişi olacak ve "35" sayısından büyük sayı girilmemesi tercihimdir.

CommandButton1 --> bkaydet isminde -----> Buton'a tıklanınca TextBox'lara girilen tarihten başlayarak girilen gün sayısı kadar tarihi arttırarak "O3" hücresinden 3. satır boyunca sağa doğru yazması.

Yardımcı olursanız sevinirim.

Kod:
Private Sub UserForm_initialize()

    With Tarih
        .Width = 310
        .Height = 220
    End With

Set LBaslik = Tarih.Controls.Add("Forms.Label.1")
Set Ltarih = Tarih.Controls.Add("Forms.Label.1")
Set LGun = Tarih.Controls.Add("Forms.Label.1")
Set tbTarih = Tarih.Controls.Add("Forms.TextBox.1")
Set tbGun = Tarih.Controls.Add("Forms.TextBox.1")
Set bkaydet = Tarih.Controls.Add("Forms.CommandButton.1")

    With LBaslik
    
        .Caption = "Tarih ve Gün Bilgisi Girişi"
        .Left = 55
        .Width = 200
        .Top = 10
        .Font.Name = "Times New Roman"
        .Font.Bold = True
        .Font.Size = 16
        
    End With

    With Ltarih
    
        .Caption = "Puantajın Başlayacağı Tarih"
        .Left = 10
        .Width = 150
        .Height = 20
        .Top = 70
        .Font.Name = "Times New Roman"
        .Font.Size = 12

    End With

    With LGun
    
        .Caption = "Puantajdaki Gün Sayısı"
        .Left = 10
        .Width = 120
        .Height = 20
        .Top = 100
        .Font.Name = "Times New Roman"
        .Font.Size = 12

    End With
    
    With tbTarih
    
        .Width = 120
        .Height = 20
        .Top = 64
        .Left = 170
        .Font.Name = "Times New Roman"
        .Font.Size = 13
        
    End With

    With tbGun
    
        .Width = 120
        .Height = 20
        .Top = 94
        .Left = 170
        .Font.Name = "Times New Roman"
        .Font.Size = 13
        
    End With
    
    With bkaydet
        
        .Caption = "Aktar"
        .Width = 100
        .Height = 50
        .Left = 100
        .Top = 130
        .Font.Name = "Times New Roman"
        .Font.Size = 15
        .Font.Bold = True
        
    End With

End Sub
Normalde tarihi yazdırmak için kullandığım kod aşağıdaki ancak bu olayı yukarıda dediğim gibi kodlarla oluşturulmuş buton ile yapmak istiyorum.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

' OgretmenVeri Sayfasında O3 ile AW3 hücrelerini siler
' OgretmenRapor Sayfasında E3 ile AM3 hücrelerini siler
' EkdersCizelge Sayfasında E3 ile AM3 hücrelerini siler
    For i = 1 To 35
        ThisWorkbook.Worksheets("OgretmenVeri").Cells(3, i + 14).ClearContents
        ThisWorkbook.Worksheets("OgretmenRapor").Cells(3, i + 4).ClearContents
        ThisWorkbook.Worksheets("EkdersCizelge").Cells(3, i + 4).ClearContents
    Next i

' OgretmenVeri Sayfasında O3 ile AW3 hücrelerine tarihleri yazar
' OgretmenRapor Sayfasında E3 ile AM3 hücrelerine tarihleri yazar
' EkdersCizelge Sayfasında E3 ile AM3 hücrelerine tarihleri yazar
    For i = 1 To ThisWorkbook.Worksheets("Veri").Range("A4").Value
        ThisWorkbook.Worksheets("OgretmenVeri").Cells(3, i + 14) = ThisWorkbook.Worksheets("Veri").Range("A3") + i - 1
        ThisWorkbook.Worksheets("OgretmenRapor").Cells(3, i + 4) = ThisWorkbook.Worksheets("Veri").Range("A3") + i - 1
        ThisWorkbook.Worksheets("EkdersCizelge").Cells(3, i + 4) = ThisWorkbook.Worksheets("Veri").Range("A3") + i - 1
    Next i

End Sub
 
Katılım
3 Mart 2014
Mesajlar
6
Excel Vers. ve Dili
2007 - 2013
Hocam ilginiz için teşekkür ederim. Verdiğiniz linki 1 saatten fazla süredir inceleyip düzenlemeye çalışıyorum ancak başaramadım. VBA konusunda hiç bilgim yok sadece deneme yanılma yoluyla öğrenmeye çalışıyorum. Mümkünse daha fazla yardım etmenizi bekliyorum.
 
Üst