Onaylanmış Checkboxların İsmini Belirli Bir hücreye Kaydetme

Katılım
20 Mart 2023
Mesajlar
7
Excel Vers. ve Dili
2007 -tr
Birden çok checkboxın olduğu bir userform hazırladım. Onayladığım checkboxların isimlerin sırasıyla aralarına virgül gelecek şekilde save tuşuna basıldığında belirli bir hücreye örn A1 kaydedilmesini istiyorum bunun için birkaöçyol denedim ama başaramadım.Bir bakabilir misiniz. Sadece onayladıklarımın kaydedilmesi gerekiyor


x] dentist
[ ] restorative
[x] compozite
[ ] age
[x] endodontics

SAVE BUTTON

A1 "dentist,composite,endodontics" Mesela bu şekilde olması lazım

ActiveCell.Offset(0, 0).Rows("1:1").EntireRow.Activate
ActiveCell.Offset(1, 8).Range("A1").Activate
ActiveCell.Offset(-1, 0).Range("A1").Activate
ActiveCell.Offset(0, 0).Range("A1").Value = UserForm1.TextBox19.Value
ActiveCell.Offset(0, 0).Range("A1").Value = Me.CheckBox1.Caption
ActiveCell.Offset(0, 0).Range("A1").Value = Me.CheckBox2.Caption
Bu kodu denşyorum ama sadece Checkbox 2 yi kaydediyor ve kutuyu onaylamasam bile kaydediyor
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,757
Excel Vers. ve Dili
Excel 2019 Türkçe
Bu şekilde deneyin.
Kod:
Private Sub CommandButton1_Click()
    For Each chk In UserForm1.Controls
    
        If TypeName(chk) = "CheckBox" Then
        If chk.Value = True Then
            
            a = chk.Caption & ", " & a
            End If
        End If
    Next
    [a1] = Left(a, Len(a) - 2)
End Sub
 
Katılım
20 Mart 2023
Mesajlar
7
Excel Vers. ve Dili
2007 -tr
Bu şekilde deneyin.
Kod:
Private Sub CommandButton1_Click()
    For Each chk In UserForm1.Controls
   
        If TypeName(chk) = "CheckBox" Then
        If chk.Value = True Then
           
            a = chk.Caption & ", " & a
            End If
        End If
    Next
    [a1] = Left(a, Len(a) - 2)
End Sub
Teşekkür ederim.Bu grçekten işime çok yaradı. Ben bunu hasta kayıt sisteminde kullanacağım.Hastanın isminin yanında bir hücreye bilgileri girecek.Şunu yapabiliyor muyum merak ediyorum.Hücredeki hastanın profilini bir userformda açtığımda yukarıda paylaştığım checklistteki işemleri kaydedip kapattıktan sonra tekrar aynı hastayı açıyorum A1 kutusuna kaydetse de hastaya ait userformde onay kutucukları tekrardan boş gözükmekte.Bu kutucuklar için bilgiyi tekrardan A1 kutusundan çağırmak mümkünmüdür?
 

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,607
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Merhaba,
Excel sayfasına ChckBox'ların adının yazılması gerekli mi? Eğer sayfaya kaydettiğiniz bilgileri CheckBox üzerinden takip etmek isterseniz, sayfaya(hücreye) 1 ve 0 şeklinde yazdırabilirsiniz. İstediğiniz zaman hücreden bu değerleri okuyup CheckBox'a aktarabilirsiniz. Böylece hücrede (A1) CheckBox adları yerine 01100101001 gibi bir değer olacağından(her CheckBox bir karakterle temsil edileceğinden) dosya boyutunuz da büyümeyecektir.
Bu yöntemi denemek isterseniz (Ben 10 adet CheckBox olduğunu varsaydım-A1 hücresini de metin olarak biçimlendirdim) aşağıdaki kodları kendinize uyarlayarak kullanabilirsiniz.
C++:
Private Sub Chkboxu_Xl_Aktar()
hcr = "'"
    For i = 1 To 10
       If Controls("CheckBox" & i).Value = True Then
            hcr = hcr & 1
            Else
            hcr = hcr & 0
        End If
    Next i
Cells(1, 1) = hcr
End Sub

Private Sub Xl_ChkBoxa_Aktar()
For i = 1 To 10
    If Mid(Cells(1, 1).Value, i, 1) = 1 Then
        Controls("CheckBox" & i).Value = True
    Else
        Controls("CheckBox" & i).Value = False
    End If
Next i
End Sub
 
Son düzenleme:
Katılım
20 Mart 2023
Mesajlar
7
Excel Vers. ve Dili
2007 -tr
Merhaba,
Excel sayfasına ChckBox'ların adının yazılması gerekli mi? Eğer sayfaya kaydettiğiniz bilgileri CheckBox üzerinden takip etmek isterseniz, sayfaya(hücreye) 1 ve 0 şeklinde yazdırabilirsiniz. İstediğiniz zaman hücreden bu değerleri okuyup CheckBox'a aktarabilirsiniz. Böylece hücrede (A1) CheckBox adları yerine 01100101001 gibi bir değer olacağından(her CheckBox bir karakterle temsil edileceğinden) dosya boyutunuz da büyümeyecektir.
Bu yöntemi denemek isterseniz (Ben 10 adet CheckBox olduğunu varsaydım-A1 hücresini de metin olarak biçimlendirdim) aşağıdaki kodları kendinize uyarlayarak kullanabilirsiniz.
C++:
Private Sub Chkboxu_Xl_Aktar()
hcr = "'"
    For i = 1 To 10
       If Controls("CheckBox" & i).Value = True Then
            hcr = hcr & 1
            Else
            hcr = hcr & 0
        End If
    Next i
Cells(1, 1) = hcr
End Sub

Private Sub Xl_ChkBoxa_Aktar()
For i = 1 To 10
    If Mid(Cells(1, 1).Value, i, 1) = 1 Then
        Controls("CheckBox" & i).Value = True
    Else
        Controls("CheckBox" & i).Value = False
    End If
Next i
End Sub
Merhaba hocam üzerinde uğraştım ama benim sistemimde kaydedilen yerlere checkboxların ismini yazması gerekiyor. Checkboxların tikli olması yerine önceki kodla hücrelere kaydettiğim yazan kelimenin Textboxlara geri gelmesini istiyorum. Onu da ayrı bir formda bu şekilde halletim. Nasıl bir kod ile çağırabilirim acaba. Sizin verdiğiniz geçen kodu da şu şekile çevirdim
Private Sub CommandButton34_Click()
On Error Resume Next
For Each chk In UserForm12.Controls

If TypeName(chk) = "CheckBox" Then
If chk.Value = True Then

a = chk.Caption & ", " & a
End If
End If
Next
ActiveCell.Offset(0, 0).Rows("1:1").EntireRow.Activate
ActiveCell.Offset(1, 9).Range("A1").Activate
ActiveCell.Offset(-1, 0).Range("A1").Activate
ActiveCell.Offset(0, 0).Range("A1").Value = Left(a, Len(a) - 2)
End Sub

Bu kod activecell ile bilgiyi belirli bir hücreye kaydediyor. Bu bilgiyi bir textboxta ggörmek istiyorum kısaca. Şİmdiden ilginze teşekkürler
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,757
Excel Vers. ve Dili
Excel 2019 Türkçe
Kod:
TextBox1 =a
olarak dener misiniz ?
 
Katılım
20 Mart 2023
Mesajlar
7
Excel Vers. ve Dili
2007 -tr
Kod:
TextBox1.Value = Sheets("menu").Range("k8").Value
Bu kod ile hallettim hocam ama ActiveCell ile her zaman yeni hastanınkini alsın istiyorum. Bu kod ile nasıl birleştirebilirim
ActiveCell.Offset(0, 0).Rows("1:1").EntireRow.Activate
ActiveCell.Offset(1, 9).Range("A1").Activate
ActiveCell.Offset(-1, 0).Range("A1").Activate
ActiveCell.Offset(0, 0).Range("A1").Value = Left(a, Len(a) - 2)
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,757
Excel Vers. ve Dili
Excel 2019 Türkçe
k sütunundaki son hücreyi mi almasını istiyorsunuz ?
 
Katılım
20 Mart 2023
Mesajlar
7
Excel Vers. ve Dili
2007 -tr
yok hayır her zaman seçtiğim satırın 9. sütünunu alsın istiyorum
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,757
Excel Vers. ve Dili
Excel 2019 Türkçe
Kod:
cells(activecell.row,9)
bu şekilde düşünebilirsiniz.
 
Üst