DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Class modül ile yapılır, ancak dosya yapınızı görmek lazım. Dosyanızı bir dosya paylaşım sitesine ekleyin linkini paylaşın.
Evet doğrudur, yada 1. sayfadaki onay kutularının numaraları var. 2. sayfadaki alana o numaraları da yazdırabiliriz.Her iki sayfada da onay kutusu var. Sayfa1 deki onay kutusunu işaretleyince Sayfa2 deki aynı numaralı onay kutusu mu, işaretli hale gelecek.
Option Explicit
' --- Auto_Open: Sayfa1'deki tüm Form Denetimi CheckBox'lara makro atar
Sub Auto_Open()
Dim shp As Shape
For Each shp In ThisWorkbook.Sheets("Sayfa1").Shapes
If shp.Type = msoFormControl Then
If shp.FormControlType = xlCheckBox Then
shp.OnAction = "OnayKutusuTikla" ' Tıklandığında çalışacak makro
End If
End If
Next shp
End Sub
' --- Tıklanan CheckBox'u yakalar
Sub OnayKutusuTikla()
Dim clickedShapeName As String
clickedShapeName = Application.Caller ' Tıklanan şeklin ismini al
If Len(clickedShapeName) > 0 Then
Dim shp As Shape
Set shp = ActiveSheet.Shapes(clickedShapeName)
If shp.Type = msoFormControl Then OnayKutusuAynala shp
End If
End Sub
' --- Sayfa2'deki aynı Text'e sahip CheckBox ile eşler
Public Sub OnayKutusuAynala(OnayKutu As Shape)
Dim shp As Shape
Dim sh As Worksheet: Set sh = ThisWorkbook.Sheets("Sayfa2")
For Each shp In sh.Shapes
If shp.Type = msoFormControl And shp.FormControlType = xlCheckBox Then
' Eşleşen metin varsa değeri kopyala
If LCase(shp.OLEFormat.Object.Text) = LCase(OnayKutu.OLEFormat.Object.Text) Then
shp.OLEFormat.Object.Value = OnayKutu.OLEFormat.Object.Value
End If
End If
Next shp
End Sub
'Sayfa2 açıkken çalıştırın
Sub Makro1()
For i = 1 To 32
ActiveSheet.Shapes.Range(i).Select
Selection.LinkedCell = "Sayfa1!$J$" & i
Next
End Sub
'Sayfa1 açıkken çalıştırın
Sub Makro2()
For i = 1 To 32
ActiveSheet.Shapes.Range(i + 2).Select
Selection.LinkedCell = "Sayfa1!$J$" & i
Next
End Sub