• DİKKAT

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

Checkbox Hk...

  • Konbuyu başlatan Konbuyu başlatan hlojan
  • Başlangıç tarihi Başlangıç tarihi
Katılım
15 Mayıs 2015
Mesajlar
518
Excel Vers. ve Dili
Microsoft Office 2019
Amaç : Userformda textbox ın yanına Chechbox koyup tıkladığımda textboxdaki veriyi sabitlesin. Userform açıp kapadığımda o veri sabit olarak kalsın.Checkboxı kaldırdığımda yazıyı değştiribileyim

Uygulama : bazen 20 -30 adet yazıyorum . textbox 2-4-7 mesela 20 kere aynı olması gerekiyor. Checkboxı tıkladığımda veriler sabitlensin. Kaldırdığımda tekrar değiştireyim


Benim geldiğim nokta şu


Bu iki kode birleştirip checkbox prosedürüne koyarsam olacak gibi

Kod:
Sub CreateProcedure()
    Dim VBComp As VBIDE.VBComponent
    Dim CodeMod As VBIDE.CodeModule
    Dim S As String
    Dim LineNum As Long
    
    ' Use the next two lines to create a new module for the code
    'Set VBComp = ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule)
    'VBComp.Name = "NewModule"
    ' OR use the following line to use an existing module for the code
    'Set VBComp = ThisWorkbook.VBProject.VBComponents("Module2")    
    
    Set CodeMod = VBComp.CodeModule
    LineNum = CodeMod.CountOfLines + 1
    S = "Sub HelloWorld()" & vbCrLf & _
        "    MsgBox ""Hello, World""" & vbCrLf & _
        "End Sub"
    CodeMod.InsertLines LineNum, S
End Sub

Kod:
Private Sub UserForm_Initialize()

TextBox1.Value = X1



End Sub


Yardımlarınızı bekliyorum....
 

Ekli dosyalar

Son düzenleme:
Aşağıdaki kodu deneyiniz.

Kod:
Private Sub CheckBox1_Click()
    If CheckBox1 = True Then
        Range("B1") = "X"
        TextBox1.Locked = True
    Else
        Range("B1") = ""
        TextBox1.Locked = False
    End If
End Sub

Private Sub TextBox1_Change()
    Range("A1") = TextBox1
End Sub

Private Sub UserForm_Initialize()
    If Range("B1") <> "" Then
        CheckBox1 = True
        TextBox1 = Range("A1")
        TextBox1.Locked = True
    Else
        TextBox1 = Range("A1")
        TextBox1.Locked = False
    End If
End Sub
 
hmm anladım. Textbox verilerini workbookta saklasın.

Korhan bey pratik çözüm olmuş teşekkür ederim.

Bunu yeni sayfada yazdırırarak olabilir.


Ama benim Word sablonlarımda var. Onlarda yapamam

Şimdi şunu nasıl yaparız


Kod ile vba kodlarını değiştirebiliyoruz ya. Check box if then ile Initialize'yi kodu değiştirsem

Kod:
 If CheckBox1 = True Then
        Excel Programmatically kodları


Private Sub UserForm_Initialize()

TextBox1.Value = X1



End Sub

    Else
        Private Sub UserForm_Initialize()

TextBox1.Value = ""



End Sub
    End If

Şimdi kodla kodu değiştiribilirsem hem excel hem wordde işe yarar
 
Merhaba.
Ben biraz daha basit düşündüm.
Aşağıdaki kodu UserForm'un kod bölümüne uygulayınız.
Kod:
Private Sub UserForm_Initialize()
    TextBox1 = Sheets("Sayfa1").Range("A1")
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CheckBox1 = True Then
    Sheets("Sayfa1").Range("A1") = TextBox1
Else
    Sheets("Sayfa1").Range("A1") = ""
End If
End Sub
 
ömer teşekkür ederim. Ama benim check box ile veriyi workbooktan bağımsız sabitlemesini istiyorum.
 
Şu kodu çözmeme yardım ederseniz işi çözeceğim

ThisWorkbook.VBProject.VBComponents(ad).CodeModule.InsertLines 1, TextBox1.Text

ad yazan yere Userform1 yazıom olmuyor
 
Sayın Ömer.baran'ın yazdığı kod çekbox'ın durumunu sayfadaki hücreye göre almıyor.Çekboxın true veya false oluşuna göre alıyor.:cool:
 
Evren bey ; farkındayım ama textbox bilgisini workbooktan( Range a1) alıyor.

Ben istiyorum ki Userform kodundan alsın

Aşağıdaki kod kaynağından

Kod:
Private Sub UserForm_Initialize()

TextBox1.Value = "blablabla"



End Sub


Şimdi bunuda kod ile kod değiştirme ile yapılıyormuş.

Buna benzer bir kodla

Kod:
ThisWorkbook.VBProject.VBComponents(ad).CodeModule .InsertLines 1, TextBox1.Text

Check box if checked

Kod:
ThisWorkbook.VBProject.VBComponents(Userform1).CodeModule .InsertLines 1, TextBox1.Text

else

Kod:
ThisWorkbook.VBProject.VBComponents(Userform1).CodeModule .InsertLines 1, ""

gibi olması gerekiyor.




Arkadaşlar çok karmaşık bişimi istiyorum bilmiyorum
Sadece excelde kullansam yukardaki arkadaşların çözümü işimi görür. bunu ben Worddede kullanıyorum
 
Geri
Üst