Textbox'a Tıklayınca Takvim Açılması

Katılım
14 Kasım 2016
Mesajlar
170
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
09-01-2024
Arkadaşlar bir userform çalışması yapıyorum. Birkaç gündür siteden araştırarak öğrenmeye çalışıyorum. Bu öğrendiklerimle birşeyler yazdım. Ancak teknik ve ince şeyler kaldı.
Yapmak istediklerimi ekteki excelde bulunan "userform2" ye kırmızı harfle Label olarak ekledim. Yardımlarınızı bekliyorum. Şimdiden ilgilenen arkadaşlarımıza teşekkürü bir borç biliyorum.

http://dosya.co/rhovee37uqsd/İZİNKAĞIDI.xlsm.html
 

Ekli dosyalar

Katılım
14 Kasım 2016
Mesajlar
170
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
09-01-2024
Değerli forum üyeleri çalışmamda takıldığım nokta özellikle şu;
Textbox3 ve Textbox4 e tıkladığımda mümkünse UserForm1 de kullandığım takvim, bu mümkün değilse de takvim açılmasını istiyorum. Forumdaki çalışmaları denedim ancak sonuca ulaşamadım. Yardımcı olur musunuz?
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,568
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Userform2 'nin kod bölümünü açın ve şu satırları ekleyin .


Private Sub TextBox3_Enter()
UserForm1.Show
End Sub

Private Sub TextBox4_Enter()
UserForm1.Show
End Sub

Bu arada userform1 e yer belirten kodların satırbaşlarına ' ekleyerek pasife alın, properties'inde startup position u center olarak değiştirin.

Bu şekilde textbox3 e girildiğinde de textbox4 e girildiğinde de takvim userformun üzerine gelir , seçersiniz.

Bu arada, amaç sadece izin kağıdı oluşturmak mı ya da daha detaylı ve önceden alınmış bilgiden doğrulayarak ( veritabanından çekerek ) bir izin kağıdı oluşturmak mı ?

Naciz aklıma gelen , veli ve öğrenci detaylarını içeren bir veritabanı formu ile veli ve iletişim detaylarını önceden depolamış olmanın doğru olacağı ve öğrencinin vereceği bilgi ile tutarlılığını izin kağıdını doldururken , hatta kaç gün izin aldığını da görerek oluşturmanın daha verimli olacağı ...
 
Katılım
14 Kasım 2016
Mesajlar
170
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
09-01-2024
Aynen öyle. Yavaş yavaş başladım çalışmaya. Veri tabanından çekmek istemiyorum veli bilgilerini. Çünkü izin için her zaman eokuldaki velisi elmıyor. bazen annesi bazen babası veya amcası dayısı vs geliyor. sadece tc no sınıf ogrenci no alıyorum.
Deneyeceğim şimdi söylediğinizi.
userform1 e yer belirten kodlar
demişiniz. Bunu nasıl öğrenebilirim?
 
Katılım
14 Kasım 2016
Mesajlar
170
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
09-01-2024
Userform2 'nin kod bölümünü açın ve şu satırları ekleyin .


Private Sub TextBox3_Enter()
UserForm1.Show
End Sub

Private Sub TextBox4_Enter()
UserForm1.Show
End Sub

Bu arada userform1 e yer belirten kodların satırbaşlarına ' ekleyerek pasife alın, properties'inde startup position u center olarak değiştirin.

Bu şekilde textbox3 e girildiğinde de textbox4 e girildiğinde de takvim userformun üzerine gelir , seçersiniz.

Bu arada, amaç sadece izin kağıdı oluşturmak mı ya da daha detaylı ve önceden alınmış bilgiden doğrulayarak ( veritabanından çekerek ) bir izin kağıdı oluşturmak mı ?

Naciz aklıma gelen , veli ve öğrenci detaylarını içeren bir veritabanı formu ile veli ve iletişim detaylarını önceden depolamış olmanın doğru olacağı ve öğrencinin vereceği bilgi ile tutarlılığını izin kağıdını doldururken , hatta kaç gün izin aldığını da görerek oluşturmanın daha verimli olacağı ...
Denedim. Textbox3 ve textbox4 de tıklayınca takvim açıldı. Ancak açılan takvimden herhangi bir tarihi seçtiğimde, ilgili textboxu doldurmadı.
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Merhaba
"Userform1" de "arama" kodlarına aşağıdaki işaretli aralıktaki; eki yazarak deneyiniz.

http://dosya.co/u9fnxd99w1jn/İZİNKAĞIDI.zip.html
Kod:
Sub arama()
'....
'....kodlarınız
'.......
'
son4 = i

Worksheets(ActiveSheet.Name).Cells(ActiveWindow.Selection.Row, ActiveWindow.Selection.Column).Value = CDate(CommandButton51.Caption)
'......................'
If UserForm2.ActiveControl.Name = "TextBox3" Or UserForm2.ActiveControl.Name = "TextBox4" Then
UserForm2.Controls(UserForm2.ActiveControl.Name).Value = Format(CDate(CommandButton51.Caption), "dd.mm.yyyy")
If UserForm2.ActiveControl.Name = "TextBox3" Then
UserForm2.TextBox4.SetFocus
Else
If UserForm2.ActiveControl.Name = "TextBox4" Then
UserForm2.ComboBox3.SetFocus
Me.Hide
End If
End If: End If
'..........................................'
End If
End If
End If

Next

Calendar = vbCalHijri 'Hicri Takvim modu. PC deki Takvimi Hİcriye çevirir.
yer = Format(Controls("CommandButton" & son4).Caption & "." & ComboBox2.Text & "." & ComboBox1.Text, "dd.mm.yyyy")

Calendar = vbCalGreg 'Miladi Takvim. PC deki

End Sub
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,568
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Sayın Halit3 ün takvim formundaki kodlarında , alta doğru bakınca amaç konusunda karışıklık nedeni ile değişiklik yapmadım .Yaptığım yer

Private Sub UserForm_Activate()

End sub

arasındaki kodları pasifize edip userform1 in sol alta çekilmesini engelleyip ekranortasında çıkarmak oldu. Alta doğru Hicri takvim detayları var, izin konusu ile alakasını kuramadım ve bir şeyler ya eksik ya fazla görünüyor.

Esasen takvim yükselmesine de gerek yok. . Verdiğim kodları şunlarla değiştirin


Private Sub TextBox3_Enter()
TextBox3 = Format(Date, texbox3)
End Sub

Private Sub TextBox4_Enter()
TextBox4 = Format(Date, texbox3)
End Sub

Bu şekilde textboxlara girildiğinde bugünün tarihi getirilir. Birinci için değişiklik yapmazsınız ikinci için elle ileri tarihe değiştirebilirsiniz. . Textboxlara ait properties kısımlarında font ayarları ile buyutup kalınlaştırabilirsiniz.. Ancak bu sayfaya aynen yansımaz, sayfadaki hücreyi sağ tıklayıp özelliklerde format değiştirerek yapabilirsiniz.
 
Son düzenleme:
Katılım
14 Kasım 2016
Mesajlar
170
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
09-01-2024
Merhaba
"Userform1" de "arama" kodlarına aşağıdaki işaretli aralıktaki; eki yazarak deneyiniz.

http://dosya.co/u9fnxd99w1jn/İZİNKAĞIDI.zip.html
Kod:
Sub arama()
'....
'....kodlarınız
'.......
'
son4 = i

Worksheets(ActiveSheet.Name).Cells(ActiveWindow.Selection.Row, ActiveWindow.Selection.Column).Value = CDate(CommandButton51.Caption)
'......................'
If UserForm2.ActiveControl.Name = "TextBox3" Or UserForm2.ActiveControl.Name = "TextBox4" Then
UserForm2.Controls(UserForm2.ActiveControl.Name).Value = Format(CDate(CommandButton51.Caption), "dd.mm.yyyy")
If UserForm2.ActiveControl.Name = "TextBox3" Then
UserForm2.TextBox4.SetFocus
Else
If UserForm2.ActiveControl.Name = "TextBox4" Then
UserForm2.ComboBox3.SetFocus
Me.Hide
End If
End If: End If
'..........................................'
End If
End If
End If

Next

Calendar = vbCalHijri 'Hicri Takvim modu. PC deki Takvimi Hİcriye çevirir.
yer = Format(Controls("CommandButton" & son4).Caption & "." & ComboBox2.Text & "." & ComboBox1.Text, "dd.mm.yyyy")

Calendar = vbCalGreg 'Miladi Takvim. PC deki

End Sub
Ne kadar teşekkür etsem azdır. Çok sağolun.
Yalnız izin bitiş tarihini yani textbox4 ü I3hücresine de yazıyor. Neden oluyor?
 
Katılım
14 Kasım 2016
Mesajlar
170
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
09-01-2024
Sayın Halit3 ün takvim formundaki kodlarında , alta doğru bakınca amaç konusunda karışıklık nedeni ile değişiklik yapmadım .Yaptığım yer

Private Sub UserForm_Activate()

End sub

arasındaki kodları pasifize edip userform1 in sol alta çekilmesini engelleyip ekranortasında çıkarmak oldu. Alta doğru Hicri takvim detayları var, izin konusu ile alakasını kuramadım ve bir şeyler ya eksik ya fazla görünüyor.

Esasen takvim yükselmesine de gerek yok. . Verdiğim kodları şunlarla değiştirin


Private Sub TextBox3_Enter()
TextBox3 = Format(Date, texbox3)
End Sub

Private Sub TextBox4_Enter()
TextBox3 = Format(Date, texbox3)
End Sub

Bu şekilde textboxlara girildiğinde bugünün tarihi getirilir. Birinci için değişiklik yapmazsınız ikinci için elle ileri tarihe değiştirebilirsiniz. . Textboxlara ait properties kısımlarında font ayarları ile buyutup kalınlaştırabilirsiniz.. Ancak bu sayfaya aynen yansımaz, sayfadaki hücreyi sağ tıklayıp özelliklerde format değiştirerek yapabilirsiniz.
İlgili hücrede biçimlendirme yapsam bile userformdan kaydet dediğimde değişiklik yapmıyor malesef.
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Kodlarızda aktif hücreye kaydeden bölüm var

Worksheets(ActiveSheet.Name).Cells(ActiveWindow.Selection.Row, ActiveWindow.Selection.Column).Value = CDate(CommandButton51.Caption)
 
Katılım
14 Kasım 2016
Mesajlar
170
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
09-01-2024
Kodlarızda aktif hücreye kaydeden bölüm var

Worksheets(ActiveSheet.Name).Cells(ActiveWindow.Selection.Row, ActiveWindow.Selection.Column).Value = CDate(CommandButton51.Caption)
Silince düzeldi. Gerçekten çok sağolun.
Tarih formatı için ne yapabilirim? 10 Şubat 2019 Pazar olarak yazmasını istiyorum hücreye.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,568
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Hatırlatma : İzin kağıdı sayfasında TC Kimlik , sınıf , no verilerini girmek için Userform2 de textbox açılmamış .

Bunları userforma eklemeden izin kağıdında çıkaramazsınız zira sadece Tc kimlik girerek diğer bütün bilgilerin
getirileceği bir veritabanı istemiyorsunuz.
 
Katılım
14 Kasım 2016
Mesajlar
170
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
09-01-2024
Hatırlatma : İzin kağıdı sayfasında TC Kimlik , sınıf , no verilerini girmek için Userform2 de textbox açılmamış .

Bunları userforma eklemeden izin kağıdında çıkaramazsınız zira sadece Tc kimlik girerek diğer bütün bilgilerin
getirileceği bir veritabanı istemiyorsunuz.
İsmi usrformdan seçip kaydedince, düşeyaradan sınıfı tc si ve okul no su otomatik geliyor. o şekilde ayarladım formülü.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,568
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Sınıfta 2 tane Ayşe Yılmaz olursa bu yöntem işe yaramayabilir. Ya kod ile sayfaya aktarmak ya da userform kullanmadan
formüllerle sayfa üzerine çekmek ve değişmez değişken olarak Tc Numarasını almak daha doğru olabilir. Hem kod hem
formül olduğunda adaşlarda birinci kişi seçilebilir, bu da hata demek olabilir.

Ayrıca bazı bilgileri el ile bazılarını da userform ile girmenin kolaylaştırıcı bir etkisi olmayabilir.
 
Katılım
14 Kasım 2016
Mesajlar
170
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
09-01-2024
Sınıfta 2 tane Ayşe Yılmaz olursa bu yöntem işe yaramayabilir. Ya kod ile sayfaya aktarmak ya da userform kullanmadan
formüllerle sayfa üzerine çekmek ve değişmez değişken olarak Tc Numarasını almak daha doğru olabilir. Hem kod hem
formül olduğunda adaşlarda birinci kişi seçilebilir, bu da hata demek olabilir.
Evet haklisiniz. Ona da bir çare dusunucem. Simdilik ihtiyac olmuyor. Sadece isme baglamamin nedeni de bu sekilde daha pratik olmasi. Bazi zamanlar oyle yogun oluyoruz ki; veli izin almaya gelince ogrencinin adini soyluyor. Hangi sinifta oldugunu dahi bilmeyen velilerimiz oluyor. Bende hemen userformdaki yerleri doldurup kaydedip cikti alacak sekilde ayarladim.
En pratiği bu sekilde oluyor.

SM-G935F cihazımdan Tapatalk kullanılarak gönderildi
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,568
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
İşi hızlandırmak için bir program geliştirmeye çalışmanız çok güzel . Diğer yandan , Meb kurallarını da , olası kural delme olasılıklarını da gözden geçirmek gerekebilir. Yani konunun hukuki zeminini de düşünmek gerekebilir.

Ukalalık olmasın , Meb sistemini de yakından tanıdığım söylenemez ama mantıken Öğrencinin velisi esasen kaydettiren olarak alınır. Bunun dışındaki herkes asıl velinin vereceği isimler ve onların kısa detayı ile mumkun olur sanıyorum . En azından kurumu zorda bırakacak açıları da düşünmek de gerekebilir.
Örneğin ; Biri geldi ben Ayşe Yılmaz'ın amcasıyım izin alıp götüreceğim dedi . Ancak veli olan anne ve baba ile de ayrılmış durumda ve iletişimleri yok , aslında bir amca da yok . Ancak siz öğrenciye izin vermiş oluyorsunuz ve kurum dışına çıkarmış oluyorsunuz.

Bu tip bir durum gelişir ve kontrolde zafiyet olarak kaydeden veli tarafından kuruma geri döndürülürse ciddi başağrısı olabilir.

Veya , bizde öyle şeyler olmaz , ben sadece bu formu istiyorum da diyebilirsiniz .
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,568
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
İşi hızlandırmak için bir program geliştirmeye çalışmanız çok güzel . Diğer yandan , Meb kurallarını da , olası kural delme olasılıklarını da gözden geçirmek gerekebilir. Yani konunun hukuki zeminini de düşünmek gerekebilir.

Ukalalık olmasın , Meb sistemini de yakından tanıdığım söylenemez ama mantıken Öğrencinin velisi esasen kaydettiren olarak alınır. Bunun dışındaki herkes asıl velinin vereceği isimler ve onların kısa detayı ile mumkun olur sanıyorum . En azından kurumu zorda bırakacak açıları da düşünmek de gerekebilir.
Örneğin ; Biri geldi ben Ayşe Yılmaz'ın amcasıyım izin alıp götüreceğim dedi . Ancak veli olan anne ve baba ile de ayrılmış durumda ve iletişimleri yok , aslında bir amca da yok . Ancak siz öğrenciye hiç bir doğrulama yapmadan izin vermiş ve kurum dışına çıkarmış oluyorsunuz.

Bu tip bir durum gelişir ve kontrolde zafiyet olarak kaydeden veli tarafından kuruma geri döndürülürse ciddi başağrısı olabilir.

Veya , bizde öyle şeyler olmaz , ben sadece bu formu istiyorum da diyebilirsiniz .
 
Katılım
14 Kasım 2016
Mesajlar
170
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
09-01-2024
Yok ukalalık olarak düşünmeyin. farklı fikirler herzaman iyi olur.
Sistemde velisi annesi oluyor. Bazen babası geliyor. veya tersi. veya birbaşkası (amcasıı,dayısı vs.)evvela herzaman gelen veliden kimlik alırım. ilaveten annesini veya babasını mutlaka ararım.daha sonra izin yazarım.
 
Üst