Excel Forum

Excel Forum (http://www.excel.web.tr/index.php)
-   Makro-VBA (http://www.excel.web.tr/forumdisplay.php?f=48)
-   -   Makro ile OptionButton1 oluşturma (ÇÖZÜLDÜ) (http://www.excel.web.tr/showthread.php?t=170428)

TanerSaydam 09-02-2018 13:01

Makro ile OptionButton1 oluşturma (ÇÖZÜLDÜ)
 
Merhaba;

Sayfamdaki G4 sütununa makro kodu ile OptionButton oluşturmak istiyorum. İnternette araştırdım ama benzer bir şey bulamadım. Yardımlarınızı bekliyorum

Şimdiden teşekkürler.

PLİNT 09-02-2018 13:59

Merhaba
Makroyu "G4" hücresine aşağıdaki gibi uyarlayabilirsiniz.
Kod:


Set a = Range("G4")
ActiveSheet.OLEObjects.Add ClassType:="Forms.OptionButton.1", Link:=False, _
        DisplayAsIcon:=False, Left:=a.Left, Top:=a.Top, Width:=a.Width, Height:=a.Height


TanerSaydam 09-02-2018 22:50

Teşekkürler. Peki ismini oluştururken nasıl belirleyebilirim. Optionbutton değil de başka bir isim vermek istiyorum. Bir de silme kodu nedir. .delete kullandım ama silmiyor.

Ömer BARAN 09-02-2018 23:07

Merhaba.

Kusura bakmayın ama benim asıl merak ettiğim; eklenen ve tekrar silmenin yolunu aradığınız OptionButton nesnesini hangi işlem için kullanacağınız.
İstediğiniz işlemin yapılması sonucunu verecek başka alternatif çözüm önerileri de alabileceğinizi düşünüyorum.

Düşündüğünüz nesne OptionButton olduğundan aklıma ilk gelen yöntem; istenilen hücreye/hücrelere
-- çift tıklama ile EVET/HAYIR gibi iki seçeneği bir veri doğrulama uygulaması,
-- seçim sonrasında da yapılan seçim silinmeden veri doğrulama işleminin silinmesi
oldu.

Belge ve tercih sizin ama tavsiyem;
-- yapmak istediğiniz işleme ilişkin net açıklamalar yazarak,
-- gerçek belgeyle aynı yapıda ve
-- tutarlı ve gerçek verileri temsil edebilecek nitelikte örnek veri içeren
bir örnek belge ekleyip sorunuzu onun üzerinden sormanız yönünde olacak.

Örnek belge yükleme yöntemine ilişkin kısa açıklama cevabımın altındaki İMZA bölümünde var.
.

TanerSaydam 10-02-2018 06:09

Ömer bey Merhaba;

Öncelikle örnek bir excel koymamamın sebebi, oluşturduğum excel dosyası işyerinde kullandığımız muhasebe programından cari liste çekiyor. Yani örnek koyabilmem için aynı ağı paylaşmamız lazım yoksa excel çalışmıyor.

Yapmak istediğim de şu; bir tuşa bastığımda kullandığımız muhasebe programından çalıştığımız firmaların yani carilerin bir listesini oluşturuyor. Örnek resmi aşağıda.

https://resmim.net/f/BQpzVV.jpg

Burada G sütununa her carinin yanına, Cari Kod'u isim olarak verebileceğim bir optionbutton oluşturmak. Bu sayede ona tıklayıp "EKSTRE" tuşuna bastığımız da firmanın detaylı ekstresi ekranıma gelecek. Silmeyi istememin sebebi de, listeyi güncellendiğim zaman o butonu silip yenisini getirmesi. İsmini değiştirmeyi istememin sebebi de ona komut verebilmek. En basit örnek ile;

Resimdeki örnekten 1.Sıradaki firmayı ele alalım.

G sütununa "320-01-369" nolu bir optionbutton oluşturdum. EKSTRE butonuna şu kodu yazacağım.

Kod:

320-01-369 tuşuna tıklandığında o cari kodun ekstresini oluştur.
Şu anda bunu G sütununa "X" işareti koyarak yapabiliyorum. Ama bunu OptionButton ile yapabilme ihtimalim var mı onu bilmek istiyorum. Ya da başka bir öneriniz varsa dinlemek isterim.

Teşekkürler şimdiden.

halit3 10-02-2018 07:35

Bu kodlar belki işinize yarar
Kodlar G sutununa CheckBoxes neçenek düğmesi ekliyor ve G sutununa DOĞRU YANLIŞ seçeneği ekliyor siz X değerlerini DOĞRU yaparsanız sonuç alırsınız gibi geliyor bana
Kod:

Sub Nesneleri_sil()
Dim Picture As Object
For Each Picture In ActiveSheet.Shapes
If TypeName(ActiveSheet.Shapes(Picture.Name).OLEFormat.Object) = "CheckBox" Then
Picture.Delete
End If
Next Picture

End Sub

Sub Nesneleriekle()

On Error Resume Next
Set s1 = Sheets(ActiveSheet.Name)
For r = 1 To s1.Shapes.Count
If TypeName(s1.Shapes(r).OLEFormat.Object) = "CheckBox" Then
a = MsgBox("Nesneler mevcut yeniden nesneleri oluşturmak istiyorsanız" & Chr(10) & Chr(10) & _
"Nesneleri sil seçeneğine tıkladıktan sonra yeniden deneyiniz.", vbInformation, " U Y A R I ")
Exit Sub
End If
Next

sut = "g"
For r = 4 To s1.Cells(Rows.Count, "a").End(3).Row
If s1.Cells(r, "a").Value <> "" Then
yer = s1.CheckBoxes.Add(1, 1, 1, 1).Name

s1.Shapes(yer).OLEFormat.Object.Top = s1.Cells(r, sut).Top + 4
s1.Shapes(yer).OLEFormat.Object.Left = s1.Cells(r, sut).Left
s1.Shapes(yer).OLEFormat.Object.Height = s1.Cells(r, sut).Height - 8
s1.Shapes(yer).OLEFormat.Object.Width = s1.Cells(r, sut).Width - 4
s1.Shapes(yer).OLEFormat.Object.Characters.Text = ""
s1.Shapes(yer).OLEFormat.Object.LinkedCell = s1.Cells(r, sut).Address(False, False)
End If
Next r
MsgBox "İşlem Tamam", vbInformation, " U Y A R I "

End Sub

Sub hepsiniseç()
On Error Resume Next
Dim Picture As Object
Set s1 = Sheets(ActiveSheet.Name)
For Each Picture In s1.Shapes
If TypeName(s1.Shapes(Picture.Name).OLEFormat.Object) = "CheckBox" Then
s1.Shapes(Picture.Name).OLEFormat.Object.Value = xlOn
End If
Next Picture
MsgBox "İşlem Tamam", vbInformation, " U Y A R I "

End Sub

Sub secimlerikaldır()
On Error Resume Next
Dim Picture As Object
Set s1 = Sheets(ActiveSheet.Name)
For Each Picture In s1.Shapes
If TypeName(s1.Shapes(Picture.Name).OLEFormat.Object) = "CheckBox" Then
s1.Shapes(Picture.Name).OLEFormat.Object.Value = xlOff
End If
Next Picture
MsgBox "İşlem Tamam", vbInformation, " U Y A R I "

End Sub


TanerSaydam 10-02-2018 13:09

Cevaplar için teşekkürler. OptionButton daha çok işimi görecekti ama :) Bunlarda yeter. Tekrardan ellerinize sağlık.

PLİNT 10-02-2018 13:57

Alıntı:

TanerSaydam tarafından gönderildi (Mesaj 929692)
Teşekkürler. Peki ismini oluştururken nasıl belirleyebilirim. Optionbutton değil de başka bir isim vermek istiyorum. Bir de silme kodu nedir. .delete kullandım ama silmiyor.

Merhaba
Alternatif olarak ek dosyayıda incelersiniz
http://www.dosya.tc/server11/rdk94k/option.zip.html

TanerSaydam 10-02-2018 16:12

Alıntı:

PLİNT tarafından gönderildi (Mesaj 929752)
Merhaba
Alternatif olarak ek dosyayıda incelersiniz
http://www.dosya.tc/server11/rdk94k/option.zip.html

Müthişsin hocam. Tam olarak aradığım buydu. Ellerin dert görmesin.


Saat 12:04

Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.