öğretmen prorgamını sınıf programına nasıl çeviririm

Katılım
3 Temmuz 2013
Mesajlar
25
Excel Vers. ve Dili
2007-2010 türkçe
sevgili excel müdavimi arkadaşlar çok zorlandığım bir konuda sizden destek istiyorum.
öğretmen programını sınıf programına çevirmek istiyorum ve yine öğretmen programında yapılan değişikliğin sınıf programına otomatik yansımasını istiyorum mümkün müdür? şimdiden teşekkürler

ekte istediğim şablonun basit bir şeklini oluşturdum örnek olsun diye saygılar
 

Ekli dosyalar

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,025
Excel Vers. ve Dili
2013 Türkçe
Merhaba,
Eğer makrolu çözüm işinizi görecekse

Sub DAĞIT()
Application.ScreenUpdating = False
Range("C23:G30") = ""
süt = 2
For i = 23 To 25
For j = 3 To 7
süt = süt + 1
adet = WorksheetFunction.CountIf(Range(Cells(5, süt), Cells(15, süt)), Range("B21"))
If adet = 0 Then GoTo 10
kac = WorksheetFunction.Match(Range("B21"), Range(Cells(5, süt), Cells(15, süt)), 0) + 4
Cells(i, j) = Cells(kac, 2).Value
10
Next
Next
End Sub
kodunu deneyiniz.
B21 hücresine tam sınıf adı yazınız.
 
Katılım
3 Temmuz 2013
Mesajlar
25
Excel Vers. ve Dili
2007-2010 türkçe
muhammet bey tekrar teşekkürler ama benim işim biraz daha karmaşık içinden çıkamadım. Sizin makroyu ben kendi programıma entegre edemedim gönderdim aşağıda ekte yardımcı olursanız memnun olurum şimdiden teşekkürler
 
Son düzenleme:
Katılım
3 Temmuz 2013
Mesajlar
25
Excel Vers. ve Dili
2007-2010 türkçe
TEŞK

Muhammet bey Iki sekme var içersinde, birisi 1 periyot, pozcu öğretmen var diğer sekme olarak da sınıf programı olmasını istiyorum.
Tekrar teşekkürler
 

Ekli dosyalar

Son düzenleme:
Katılım
3 Temmuz 2013
Mesajlar
25
Excel Vers. ve Dili
2007-2010 türkçe
evet sınıf adları A3213 A3214 A3215 YA DA B3210 DİYE DEVAM EDENLER SINIF ADLARI
 
Katılım
3 Temmuz 2013
Mesajlar
25
Excel Vers. ve Dili
2007-2010 türkçe
aynı hücreniin altında yer alan kısımlar yani mat 1 mat 2 veya fizik 1 gibi açıklamaların bir sakıncası yok ayırma zorunluluğum yok
 
Katılım
3 Temmuz 2013
Mesajlar
25
Excel Vers. ve Dili
2007-2010 türkçe
Tekrar elinize sağlık ancak şimdiki sorum da bunu nasıl yapıyorsunuz öğrenebilmem mümkün mü?

Ben öğretmenim alıp sadece kullanayım bir kenara çekileyim bakışım yoktur. Bunu öğrenmek isterim. Yardımınız olursa memnun olurum olmassa da napalım canımız sağolsun emekleriniz ve benim için harcadığınız zamandan dolayı teşekkürlerimi sunarım
 
Son düzenleme:

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,025
Excel Vers. ve Dili
2013 Türkçe
Ben bir tane şablon sayfası ekledim. Kodları ona göre düzenledim.

Sub Dağıt()
Application.ScreenUpdating = False ---- İşlem yaparken ekranda görünmesin. Amaç işlemi hızlandırmak.

Application.Calculation = xlCalculationManual ---- Dosyanızda formül bulunduğundan onları hesaplamaz. Amaç yine işlemi hızlandırmak.

Range("B4:L24") = "" ---- verilen aralığı sil

Set p = Sheets("01 - PERİYOT") ---- bundaki amaç sayfa adlarını kısaltmak.

Her defasında Sheets("01 - PERİYOT") yazmak yerine p harfini yazmamız yeterli.

Set s = Sheets("POZCU SINIF")

s.Range("A:L").Delete ---- Ders programı sayfasındaki A:L sütunlarını siler.

s.Columns(1).ColumnWidth = 25 ---- Ders programı sayfasındaki A sütununun genişliğini artırdık. (Tarihler sığsın diye)

For sınıf = 4 To 15 ---- Şablon sayfası N sütununda bulunan sını kadar döngüye aldık. 4. satır ile 15. satır aralığında olduğundan 4 ile 15 dedim.

Range("B2") = Cells(sınıf, "N") ---- Şablon B2 hücresine döngüde yer alan sınıf adını yazdım.

Range("A1") = Range("B2") & " SINIFI HAFTALIK DERS PROGRAMI"



süt = 1 ---- Periyot sayfasında bulunan sütun numarasına 1 değerini verdim.

For j = 4 To 24 ---- şablonda A sütunuda 4 ile 24 satırları tarih olduğundan 4 ile 24 arası döngü aldık. Bu sayede o tarihler arasını tarayacağız.

For i = 2 To 12 ---- 11 tane ders olduğundan 2 ile 12 arasını döngüye aldık. Şablon sayfası B:L aralığı.

süt = süt + 1 ' sütun değerini bir artırdık. Amaç süt değeri 2 olduğunda Periyot sayfası B sütununda arama yapmak, süt değeri 3 olduğunda 3 C sütunu, 4 olduğunda D sütunu böylece HX sütununa kadar arama yapacağız.

adet = WorksheetFunction.CountIf(p.Range(p.Cells(30, süt), p.Cells(56, süt)), Range("B2") & "*") ---- Periyot sayfasında süt değerindeki sütunda ( Yukarıda açıkladım, süt 2 için B sütunu) sınıf adı kaç tane diye sayar. 30 ve 56 periyot sayfasındaki veri satırlarımız olduğu için 30 ve 56 kullandık. Örneğin 4 öğretmen daha gelse 56 değerini 60 yaparız.

If adet = 0 Then GoTo 10 ---- Eğer belirtilen sütunda sını adı geçmiyorsa 10 yazan satıra git. Böylelikle bu kod satırı ile 10 yazan kod satırı arasında işlem yapılmasını istemiyoruz. Çünkü veri yok.

kac = WorksheetFunction.Match(Range("B2") & "*", p.Range(p.Cells(30, süt), p.Cells(56, süt)), 0) + 29 ---- Ders programını aldığımız sınıf verilen sütunda kaçıncı sırada. Yani satır numarasını buluyoruz. 29 ile toplamamızın nedeni 30 satırdan verilerin başlamsı.


Cells(j, i) = Mid(p.Cells(kac, süt).Value, 6, 8) ---- Bulduğumuz satırdaki verinin sadece ders adını almasını sağlıyor. Parçaal fonksiyonu kısacası

10

Next

Next

Range("B2") = ""

son = s.Cells(Rows.Count, "A").End(3).Row + 3 ---- Sınıf programındaki son boş satırın 3 alt satırı demek.

Range("A1:L24").Copy s.Cells(son, 1) ---- şablondaki veriyi sınıf programına kopyalıyoruz.

Next
Range("A1") = "HAFTALIK DERS PROGRAMI"
Range("B4:L24") = ""

s.Select ---- sınıf programı sayfasını seçiyoruz.

Set s = Nothing ---- tanımlamaları iptal ediyoruz.
Set p = Nothing

Application.Calculation = xlCalculationAutomatic
End Sub
 

Ekli dosyalar

Katılım
3 Temmuz 2013
Mesajlar
25
Excel Vers. ve Dili
2007-2010 türkçe
muhammet bey teşekkü erderim sizin için yapabileceğim birşey var mıdır? bir faydam dokunsun isterim bunca bilgi aldıktan sonra
 
Katılım
3 Temmuz 2013
Mesajlar
25
Excel Vers. ve Dili
2007-2010 türkçe
söylediklerinizin aynısını benim elimdeki başka bir program için uyguladım (tabi satır sütun sayıları aynı değil) adım adım gittim ama olmadı yapamadım bu gece tekrar deneyeceğim heralde böyle yapa yapa öğrenirim
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,025
Excel Vers. ve Dili
2013 Türkçe
Excel'i öğrenmenin en kısa yolu deneyerek bir şeyler başarmaktır.
 
Katılım
3 Temmuz 2013
Mesajlar
25
Excel Vers. ve Dili
2007-2010 türkçe
muhammet bey bunun makro dışında bir yöntemi olabilir mi?
 
Katılım
3 Temmuz 2013
Mesajlar
25
Excel Vers. ve Dili
2007-2010 türkçe
çok mu olurum ? sorsam valla mahçup olarak soruyorum cevap vermeyebilirsiniz
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,025
Excel Vers. ve Dili
2013 Türkçe
Yok Hocam estağfurullah. Ama tam olarak formülleri oluşturamadım. Siz bir tane Sınıf Ders programı şablonu oluşturabilir misiniz? Onun üzerinden çalışma yapsak.
 
Üst