Soru Makro İle TextBox Ekleme ve Görevlendirme

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
675
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Merhaba,
Makro ile sayfa üzerine textbox ekleme (eklenen textboxun yazı tipi rengi, center vb.) işlemi için bu konudaki makroları inceledim. Örnek dosyaya da ulaşılamıyor.
Ekteki boş sayfada bulunan sarı dolgulu kısıma örnek bir textbox ekleme işlevi hakkında yardımcı olabilirmisiniz?
Bu textbox'a aşağıdaki görevde makro ile atanabilir mi?

C++:
Private Sub TextBox1_Change()
Range("A2:Z1000").CurrentRegion.AutoFilter Field:=8, Criteria1:="=*" & TextBox1.Text & "*"
End Sub
**
Yukarıdaki işlem olmuyorsa;
Sayfa2'de Y sütunundaki gibi 0.01x0.01 şeklinde gizleyip sarı dolgulu alana kaydırma ve ölçülendirme işlevi yapılabilir mi?
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Neden textbox eklemek için makro kullanmak istiyorsunuz?
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
675
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Neden textbox eklemek için makro kullanmak istiyorsunuz?
Makro ile listeler ve evraklar hazırladığım bir çalışma var.
Yukarıdaki işlevi makro ile hesaplamalar sonucu oluşup dizine kaydolan bir listeye atayacağım.
Eklediğim textbox koduda arama yapmak için.
8. sütundaki veriler üzerinde dinamik arama ve filtreleme yapıyor. Bu sebepler yani :)
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Tamam da niye bir kere textbox ekleyip onu kullanmıyorsunuz da textbox eklemek için makro kullanıyorsunuz?
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
675
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Liste makro ile kaydolurken 1. Satıra başlık vb bilgileri geliyor. Normal oluştuğu gibi kalmıyor. Kayıt olurken ekstra satır ve sütun eklenerek kaydoluyor. Textboxu koyup kaydediyorum satırlar geldiği için textbox aşağı kayıyor. Sonradan eklenen satir uzerine hizaladim bende.
Ya şablonu baştan düzenleyeceğim satır sütun ekleme işlemini iptal edip yada makro ile kayıt kısmına son hali üzerine textbox ekletme işlevi ekleyeceğim, tabi mümkünse.


Bu işlev eklenemiyorsa, 2. Sayfada Bahsettiğim şekilde sayfada bir yere gizleyip işlem sonunda belirtilen konuma hizalatma gibi birşey düşünüyorum. Yukarida belirttim rastgele biryere koydum textboxu. Bunun içine koduda ekleyip saklayacağım. Kaydederken makro ile konuma taşıyacak vs .
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
TextBox'ın özelliklerinden Placement'i 3 yapmayı deneyin. Ben yapınca satır/sütun ekleme/silme yaptığımda textboxun boyutları ve yeri değişmedi.

239112
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
675
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
İşleminizi deneyeyim.

TextBox'a kodu makro ile atama veya makro içerisine ekleme işlevini çözemedim. Normal ekleyip aşağıdaki şekilde gizleme/gösterme işlevinide kullanabilirim.

C++:
Sub TextBox_Oluştur()
    ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1", Link:=False, _
        DisplayAsIcon:=False, Left:=5, Top:=5, Width:=150, Height:= _
        25).Select
End Sub

Sub TextBox_Hizala()
    ActiveSheet.Shapes.Range(Array("TextBox1")).Select
    ActiveSheet.Shapes("TextBox1").Top = 10         'Yukarı Ofset
    ActiveSheet.Shapes("TextBox1").Left = 50        'Soldan Ofset
    ActiveSheet.Shapes("TextBox1").Height = 25      'Yükseklik
    ActiveSheet.Shapes("TextBox1").Width = 150      'Genişlik
End Sub

Sub TextBox_Gizle()
    ActiveSheet.Shapes.Range(Array("TextBox1")).Select
    ActiveSheet.Shapes("TextBox1").Top = 0         'Yukarı Ofset
    ActiveSheet.Shapes("TextBox1").Left = 0        'Soldan Ofset
    ActiveSheet.Shapes("TextBox1").Height = 0      'Yükseklik
    ActiveSheet.Shapes("TextBox1").Width = 0       'Genişlik
End Sub

Sub TextBox_Sil()
    ActiveSheet.Shapes.Range(Array("TextBox1")).Select
    Selection.Delete
End Sub
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Sizin amacınız mevcut textboxın boyut ve yerinin değişmemesi mi yoksa her çalıştırdığınızda yeni bir textbox eklemek mi? Eğer hep yeni bir tane eklemek istiyorsanız sayfada biriken onca textbox ne olacak?
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
675
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Her projede Makro 1 defa çalışıyor.

Listeyi oluşturuyor birtakım bedel hesaplamaları vb. en son adımda bulunduğu dizine kaydediyor.
Arama/filtreleme kutusu eklemek istedim bende. Bu işlevi textbox üzerinden yapacağım.
Yukarıda beritmiştim. Şablonu baştan düzenlemek yerine makro ile ekleme/konumlandırma daha basit.

TextBox 1 defa eklenecek zaten. Üst üste bineceği bir çalışma değil.
Textbox ekleme makrosu içeriğine
C++:
Private Sub TextBox1_Change()
Range("A2:Z1000").CurrentRegion.AutoFilter Field:=8, Criteria1:="=*" & TextBox1.Text & "*"
End Sub
işlevini de birleştirilebilirse bu şekilde, birleştirilmez ise sayfaya manuel bir textbox ekleyeceğim.
Kodlarıda tanımlayacağım.

Yukarıdaki gizleme/hizalama işlevleri ile kullanacağım.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Yapmak istediğiniz bana pek mantıklı gelmedi (sonuçta ekle/gizle/hizala için de uğraşmanız gerekiyor) ama yine de araştırdım. Nesne eklemek konusunu zaten çözmüşsünüz. Eklenen nesneye kod eklemekle ilgili bir çözüm bulamadım maalesef.
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
675
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
TextBox ekleme işlevi çalışıyor fakat içerisine makro ile kod ekleme işlevi çalışmıyordu.
Textboxu manuel ekleme ve gerekli düzenlemelerin ardından aşağıdaki şekilde gizleme/hizalama mantığıyla hallettim.

Aşağıdaki kodlar sayfada bulunan textboxlara işlem yaptırır.
"TextBox" Then yerine "Picture" Then gibi yazarsanız bu sefer resimlere işlem yaptırır.


C++:
Sub Ra_47_TextBox_Hizala()
say = ActiveSheet.Shapes.Count
    For i = say To 1 Step -1
        If Left(ActiveSheet.Shapes(i).Name, 7) = "TextBox" Then
            ActiveSheet.Shapes(i).Select
            ActiveSheet.Shapes(i).Top = 15         'Yukarı Ofset
            ActiveSheet.Shapes(i).Left = 250        'Soldan Ofset
            ActiveSheet.Shapes(i).Height = 35      'Yükseklik
            ActiveSheet.Shapes(i).Width = 250      'Genişlik
        End If
    Next
End Sub

Sub Ra_48_TextBox_Gizle()
    say = ActiveSheet.Shapes.Count
    For i = say To 1 Step -1
        If Left(ActiveSheet.Shapes(i).Name, 7) = "TextBox" Then
            ActiveSheet.Shapes(i).Select
            ActiveSheet.Shapes(i).Top = 0         'Yukarı Ofset
            ActiveSheet.Shapes(i).Left = 0        'Soldan Ofset
            ActiveSheet.Shapes(i).Height = 0      'Yükseklik
            ActiveSheet.Shapes(i).Width = 0      'Genişlik
        End If
    Next
End Sub

Sub Ra_49_TextBox_Sil()
    say = ActiveSheet.Shapes.Count
    For i = say To 1 Step -1
        If Left(ActiveSheet.Shapes(i).Name, 7) = "TextBox" Then
           ActiveSheet.Shapes(i).Select
           Selection.Delete
        End If
    Next
End Sub
 
Katılım
18 Aralık 2022
Mesajlar
42
Excel Vers. ve Dili
2010
Merhabalar

...
Commandbox1 newtextbox içeren birkod dizilimini çalıştırıyor. ve textbox1 ioluşturuyor.
Tekrar commanbox1 e bastığımda önceden textbox1 varolduğı için newtexbox1 kod dizilimini esgeçmesi gerekiyor.
Bu nedenle
Daha önceden oluşturulan textbox1 in varlığını nasıl kontrol etmem gerekiyor
özetle
if textbox1 yoksa then
newtextbox kodu (bu zaten ben de var)
Else
...
End if
"if textbox1 yoksa then" buraya ne yazmalıyım.
Yardımcı olabilirmisiniz.
 
Katılım
18 Aralık 2022
Mesajlar
42
Excel Vers. ve Dili
2010
Merhabalar

...
Commandbox1 newtextbox içeren birkod dizilimini çalıştırıyor. ve textbox1 ioluşturuyor.
Tekrar commanbox1 e bastığımda önceden textbox1 varolduğı için newtexbox1 kod dizilimini esgeçmesi gerekiyor.
Bu nedenle
Daha önceden oluşturulan textbox1 in varlığını nasıl kontrol etmem gerekiyor
özetle
if textbox1 yoksa then
newtextbox kodu (bu zaten ben de var)
Else
...
End if
"if textbox1 yoksa then" buraya ne yazmalıyım.
Yardımcı olabilirmisiniz.
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
675
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Merhaba, deneyiniz.

Yapay zeka kodudur. Sayfadaki textbox adı "Forms.TextBox.1" olarak düşünüldü.

C++:
Sub CheckTextBox()

    Dim myControl As OLEObject
   
    ' TextBox'u kontrol et
    For Each myControl In ActiveSheet.OLEObjects
        If myControl.progID = "Forms.TextBox.1" Then
            MsgBox "var" 'Varsa yapılacak işlem.
            Exit Sub
        End If
    Next myControl
   
    ' TextBox yok
    MsgBox "yok" 'Yoksa yapılacak işlem.

End Sub
 
Son düzenleme:
Katılım
18 Aralık 2022
Mesajlar
42
Excel Vers. ve Dili
2010
ilginiz için teşekkür ederim. Yazdığını kodu kendi çalışmama uyarlamayı denedim ama olmadı.
Yazdığınız kodu bir de aşağıdaki bilgilere göre düzenleyebilir misiniz
tetxtbox adı: nt1
bulunduğu yer: BelletmenNobeti isimli bir userform
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
675
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
ilginiz için teşekkür ederim. Yazdığını kodu kendi çalışmama uyarlamayı denedim ama olmadı.
Yazdığınız kodu bir de aşağıdaki bilgilere göre düzenleyebilir misiniz
tetxtbox adı: nt1
bulunduğu yer: BelletmenNobeti isimli bir userform

Userform içinde butona atayın.

C++:
Private Sub CommandButton1_Click()
On Error Resume Next
    Dim ctrl As MSForms.Control
    Set ctrl = Me.Controls("nt1")
    On Error GoTo 0
    If Not ctrl Is Nothing Then
        If TypeOf ctrl Is MSForms.TextBox Then
            MsgBox "VAR"
        Else

        End If
    Else
        MsgBox "YOK"
    End If
End Sub
 
Katılım
18 Aralık 2022
Mesajlar
42
Excel Vers. ve Dili
2010
Çok Teşekkür ederim.
Bir sorum daha olacak.

yazdırma alanı 2 sayfadan ibaret olan sayfamı pdf ye dönüştürdüğümde farklı bilgisayarlarda sayfaların yazdırma sınırları kayıyor. bu nedenle say1 ve sayfa2sınırlarını belirlemek isiyorum
Araştırdığım tüm konularda printarea sınırları var.
Ben aynı sayfa içerisinde yazdırma alanının sayfa1 sayfa2 ..sınırlarını belirlemek istiyorum.
bu konuda da yardımcı olabilirseniz çok memnun olurum.
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
675
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Bunla ilgili farklı bir konu açınız, üstadlar yardımcı olacaktır.
 
Üst