• DİKKAT

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

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

Katılım
14 Kasım 2016
Mesajlar
170
Excel Vers. ve Dili
2016
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

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?
 
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ğı ...
 
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?
 
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ı.
 
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
 
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:
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?
 
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.
 
Kodlarızda aktif hücreye kaydeden bölüm var

Worksheets(ActiveSheet.Name).Cells(ActiveWindow.Selection.Row, ActiveWindow.Selection.Column).Value = CDate(CommandButton51.Caption)
 
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.
 
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.
 
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ü.
 
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.
 
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
 
İş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 .
 
İş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 .
 
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.
 
Geri
Üst