TextBox1 için yazılan kod 80 adet Textbox için çoğaltılabilirmi?

Katılım
5 Ağustos 2007
Mesajlar
247
Excel Vers. ve Dili
excel 2003 tr
Selam arkadaşlar aşağıdaki kodu Sayın Evren_Gizlen arkadaşın hazırladığı bir sayfadan almıştım kırmızı yazan yerdeki kod sıralı olmayan 80 adet textboxta geçerli olması için nasıl düzenlenebilir. (Sıralı olmayandan kastım tarih içeren textboxlar TextBox1,2,3,4, gibi sıralı değil yani Me olayına gelmiyor demek istedim)

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal HWND As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal HWND As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal HWND As Long) As Long
Private TitleBarState As String
Public Property Get HWND() As Long
HWND = FindWindow(lpClassName:=IIf(Val(Application.Version) > 8, "ThunderDFrame", "ThunderXFrame"), lpWindowName:=Me.Caption)
End Property
Private Sub Calendar1_Click()
UserForm1.TextBox1.Text = Format(Calendar1.Value, "dd.mm.yyyy")
Unload Me
End Sub
Private Sub UserForm_Activate()
For a = 0 To 176.25 Step 0.05
DoEvents
Me.Height = a
Next
End Sub
Private Sub UserForm_Initialize()
Dim Userform_Style As Long
Const GWL_STYLE = (-16)
Const WS_CAPTION = &HC00000
Userform_Style = GetWindowLong(HWND:=Me.HWND, nIndex:=GWL_STYLE)
If bShow = True Then
Userform_Style = Userform_Style Or WS_CAPTION
Else
Userform_Style = Userform_Style And Not WS_CAPTION
End If
Call SetWindowLong(HWND:=Me.HWND, nIndex:=GWL_STYLE, dwNewLong:=Userform_Style)
Call DrawMenuBar(HWND:=Me.HWND)
Calendar1.Value = Date
Me.Height = 0
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,307
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Sırasız kontrollerde maalesef tek tek kod yazmak durumundasınız.
 
Katılım
5 Ağustos 2007
Mesajlar
247
Excel Vers. ve Dili
excel 2003 tr
Selam
Korhan bey textboxlar için Active Sheet gibi Active Textbox benzeri bir şey olabilirmi yani kodun çağıran textbox sa göre değişken olması sağlanamazmı. Örnek dosya ekledim. Yada sıraya soksam nasıl olurdu.
Saygılar.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Sorunuzun çözümü için class modül kullanımı kolaylık getirecektir. Ekli dosyayı inceleyin.
 

Ekli dosyalar

Katılım
5 Ağustos 2007
Mesajlar
247
Excel Vers. ve Dili
excel 2003 tr
Sayın Levent Menteşoğlu teşekkür ederim çok class çözüm olmuş.
 
Katılım
5 Ağustos 2007
Mesajlar
247
Excel Vers. ve Dili
excel 2003 tr
Selam Sayın Menteşoğlu;
Sizinde dikkatinizi çektimi yada sizin bilgisayardada oldumu; Her şey çok güzel Calendar'a tıklayıp tarih textboxa aktarıldıktan sonra mouse ikonu kum saatine dönüşüyor ilk başlarda otomatik kayıt devreye giriyor sanmıştım ama değilmiş mouse boş tıklayınca normale dönüyor sebebi ne olabilir bir fikriniz varmı.
 
Katılım
5 Ağustos 2007
Mesajlar
247
Excel Vers. ve Dili
excel 2003 tr
Üstadım birde örnek dosya haricinde başka userformda uygularken
Private Sub Userform_Initialize ()
ReDim Preserve txt(Me.Controls.Count)
kırmızı yazan yeri işaret ederek değişkenin tanımlanamadığına dair (Variable Not Defined) hatası veriyor neden olabilir.
 
Katılım
5 Ağustos 2007
Mesajlar
247
Excel Vers. ve Dili
excel 2003 tr
Textboxların bazılarına tarih formatı tanımlanmış ondan olabilirmi çünkü sayfadaki tüm diğer kodları bloke edince takvim kodları çalışıyor ama diğer kodları aktif edince çalışmıyor.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Selam Sayın Menteşoğlu;
Sizinde dikkatinizi çektimi yada sizin bilgisayardada oldumu; Her şey çok güzel Calendar'a tıklayıp tarih textboxa aktarıldıktan sonra mouse ikonu kum saatine dönüşüyor ilk başlarda otomatik kayıt devreye giriyor sanmıştım ama değilmiş mouse boş tıklayınca normale dönüyor sebebi ne olabilir bir fikriniz varmı.
Bunu bende farkettim ama sebebi konusunda açıkçası bir fikrim yok. Ancak takvim nesnesindeki kodlara aşağıdaki gibi bir satır ekleyerek imleçi userform1 üzerindeki başka bir nesneye örneğin bir commandbutona yönlendirirseniz sorun çözülüyor.

Kod:
userform1.commandbutton1.setfocus
Üstadım birde örnek dosya haricinde başka userformda uygularken


kırmızı yazan yeri işaret ederek değişkenin tanımlanamadığına dair (Variable Not Defined) hatası veriyor neden olabilir.
Kendi dosyanızda kodların en üstüne aşağıdaki tanımlamayı yazmayı atlamış olabilirsiniz. Yada kodlarınızın başında Option Explicit ifadesi mevcut olabilir. Eğer mevcutsa bu ifadeyi kaldırabilirsiniz.

Kod:
dim txt() as new class1
Textboxların bazılarına tarih formatı tanımlanmış ondan olabilirmi çünkü sayfadaki tüm diğer kodları bloke edince takvim kodları çalışıyor ama diğer kodları aktif edince çalışmıyor.
Sebebi yukarıdaki yazdığım gibidir sanıyorum.
 
Katılım
5 Ağustos 2007
Mesajlar
247
Excel Vers. ve Dili
excel 2003 tr
Selamlar
Birincsi Textboxların birine başka biryerde deneme amaçlı başka bir komut vermiştim başına işaret koyup bloke etmeyi unuttum, sizin vermiş olduğunuz kodlarda tüm textboxlar için olduğundan çakışma sorunundan kaynaklanıyormuş Textbox dblclick aynı userformu çağırıyormuş yani.
İkincisi
Private Sub Calendar1_Click()
UserForm1.Controls("" & UserForm1.nesne) = Format(Calendar1.Value, "dd.mm.yyyy")
Unload Me
'UserForm1.Controls("" & UserForm1.nesne).SetFocus
UserForm1.CommandButton2.SetFocus
MsgBox " aaa"
End Sub
kırmızı yazılı kod yüzünden kum saati çıkıyormuş onu bloke edip yönlendirmeyi commandbuttona yapınca düzeldi.
İlginize teşekkür ederim. Saygılar
 
Üst