• DİKKAT

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

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

Katılım
13 Ekim 2017
Mesajlar
178
Excel Vers. ve Dili
2003-tr
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.
 
Son düzenleme:
Merhaba
Makroyu "G4" hücresine aşağıdaki gibi uyarlayabilirsiniz.
Kod:
[SIZE="2"]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[/SIZE]
 
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.

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.
.
 
Ö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.

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.
 
Son düzenleme:
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
 
Cevaplar için teşekkürler. OptionButton daha çok işimi görecekti ama :) Bunlarda yeter. Tekrardan ellerinize sağlık.
 
Geri
Üst