Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Makro-VBA
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Makro-VBA Makro veya VBA ile ilgili sorularınızı buraya gönderebilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 07-08-2017, 22:00   #1
hmtstc
 
Giriş: 20/02/2014
Şehir: Bursa
Mesaj: 74
Excel Vers. ve Dili:
Excel 2013 - Türkçe
Varsayılan İki koşula göre otomatik seçim yaptırmak

Merhaba arkadaşlar,

Önce size programı anlatayım müsaadenizle.
Ekteki program bir çok işlevsellik tablosundan eğitim planı oluşturmaya yarayacak bir program. Şartımız 3 x 3 x 3 değimiz bir şart. 1. şart, her operatör en az 3 operasyon bilmeli. 2. şart her operasyon 3 operatör tarafından bilinmeli ve 3. şart en az 3 kişi tüm operasyonları bilmeli.

Bu bağlamda ben ana tablodan veri çekmeyi, OK ve NOT OK(nok) olanları ayırt ettirmeyi becerebildim.

Sistem çalıştır' a tıklayınca seçilen takımın durumunu getiriyor. ve koşulları inceliyor. plan oluştur butonuna tıklayınca da koşul 1' i sağlamayanları plan sayfasına aktarıyor. daha sonra düşeyde koşul 2 yi arıyor ve nok olanları nok olarak tekrar belirtiyor ve sayfaya koşullu biçimlendirme koyuyor. bende eğitim organize etmek istediğim operatörü ve operasyonu seçtiğimde kesişen noktaya X yazıyorum. Orayı kırmızıya boyuyor ve sayıyor. şart sağlandığında en altta NOK yazan yer OK oluyor.

İstediğim şey şu, bu planı ben yapıyorum. Bende istiyorum ki bu plan otomatik oluşsun. Yani sistem bana sonuç olarak bir liste verse, şu operatörlerine şu operasyonların eğitimini ver diye bir liste yapsa bende onu uygulasam. Sürekli değişkenlik olması nedeniyle ben mantığı çok kuramadım.

Böyle bir olay yapılabilir mi ? Yani tabiri caizse sistem yapay zeka gibi kendisi koşullayarak bir liste çıkarabilir mi ?

Yapılması şart değil, ben programcılık konusunda gerçekten güzel bir fikir katacağını da düşünüyorum. En azından oluru olmazı konusunda fikir alışverişi bile herkese çok şey katar bence..

Şimdiden teşekkürlerimi sunuyorum.


http://s9.dosya.tc/server3/jb5lhn/Eg...grami.rar.html
hmtstc Çevrimdışı   Alıntı Yaparak Cevapla
Eski 08-08-2017, 07:58   #2
asri
Altın Üye
 
Giriş: 24/04/2005
Şehir: Istanbul
Mesaj: 2,079
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Varsayılan

Biraz sudoku gibi bir problem sanırım.
Operatörlere 3 operasyon ayarlarken aynı zamanda, operasyon a da 3 operator kontrolü ve aynı zamanda da 3 tane tm operasyon almış kuralı çalışmalı çok koşulluk bir denklem

İdeal olanı, bir operator en fazla 3 operasyon bilmeli, eğer 3 ü geçtiyse tüm operasyonları bilmeli mi?. (tabi tümünü bilenlerin sayısı 3 ü geçmemeli)
__________________
www.asriakdeniz.com
asri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 08-08-2017, 13:49   #3
asri
Altın Üye
 
Giriş: 24/04/2005
Şehir: Istanbul
Mesaj: 2,079
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Varsayılan

Yatay ve dikey koşulları sağlıyor, 3x3x3 yada x x x parametrik.
Satır ve sütün bağımsız istenildiği kadar arttırılıp azaltılabilir.

Tüm koşullar için program güncellendi.

http://dosya.co/kmxee9ww4v7g/Eğitim_...ramı.xlsm.html

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Dim listeper() As Integer
Dim listeoper() As Integer
'1-12 arası satır bilgileri, 13 satırdaki eğitim sayısı
Dim i, j, eskisayi, kosul As Integer
Dim persay, opsay As Long
Dim buldu As Boolean

Sub menu()
    kosul = [C2]
    Call sifirla
    Call yukle
    Call hesaplatam
    Call hesaplaope
End Sub

Sub temizle()
   sonsatir = Cells(Rows.Count, "A").End(3).Row
   sonsutun = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
   Range(Cells(7, 4), Cells(sonsatir, sonsutun)).Clear
End Sub

Sub sifirla()
   sonsatir = Cells(Rows.Count, "A").End(3).Row
   persay = sonsatir - 6
   sonsutun = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
   opsay = sonsutun - 3
   If persay >= opsay Then sayi = persay
   If opsay >= persay Then sayi = opsay
   
   ReDim listeper(0 To sayi, 0 To sayi)
   ReDim listeoper(0 To sayi, 0 To sayi)
  
  For i = 0 To sayi
    For j = 0 To sayi
     listeper(i, j) = 0
     listeoper(i, j) = 0
    Next j
  Next
End Sub

Sub hesaplaope()
   For i = 1 To persay
     peresay = listeper(i, 0)
     For i1 = 1 To kosul - peresay
       Call peregitimver
     Next i1
   Next i
End Sub

Sub hesaplatam()
  satir = 0
  For j = 1 To kosul
    eskisay = 0
    buldu = False
    kosul3 = 0
    For i = 1 To persay
     peresay = listeper(i, 0)
     If peresay = opsay Then
         kosul3 = kosul3 + 1
         GoTo son
     End If
     If peresay > eskisay And peresay <> opsay Then
       eskisay = peresay
       satir = i
       buldu = True
     End If
son:
    Next i
    If kosul3 = kosul Then Exit Sub
    If buldu = False Then satir = satir + 1
    
    For i1 = 1 To opsay
      If listeper(satir, i1) = 0 Then
       listeper(satir, i1) = 99
       listeoper(i1, satir) = 99
       listeoper(i1, 0) = listeoper(i1, 0) + 1
       listeper(satir, 0) = listeper(satir, 0) + 1
       Cells(satir + 6, i1 + 3).Value = 99
      End If
    Next i1

   Next j
   
End Sub

Sub peregitimver()
   eskisayi = 9999
   sutun = 0
   For j = 1 To opsay
     peregitim = listeper(i, j)
     If peregitim = 0 And listeoper(j, 0) < eskisayi Then
        eskisayi = listeoper(j, 0)
        sutun = j
     End If
   Next j
   If sutun = 0 Then
   a = a
   End If
   
       listeper(i, sutun) = 99
       listeoper(sutun, i) = 99
       listeoper(sutun, 0) = listeoper(sutun, 0) + 1
       listeper(i, 0) = listeper(i, 0) + 1
       Cells(i + 6, sutun + 3).Value = 99

       
End Sub

Sub yukle()

   For i = 1 To persay
     say = 0
     For j = 1 To opsay
        listeper(i, j) = Cells(i + 6, j + 3).Value
        If Cells(i + 6, j + 3).Value > 0 Then
           say = say + 1
           listeper(i, 0) = say
        End If
     Next j
   Next i
   
   For i = 1 To opsay
     say = 0
     For j = 1 To persay
        veri = Cells(j + 6, i + 3).Value
        listeoper(i, j) = veri
        If Cells(j + 6, i + 3).Value > 0 Then
           say = say + 1
           listeoper(i, 0) = say
        End If
     Next j
   Next i
End Sub
__________________
www.asriakdeniz.com

Bu mesaj en son " 09-08-2017 " tarihinde saat 15:23 itibariyle asri tarafından düzenlenmiştir....
asri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 08-08-2017, 20:24   #4
hmtstc
 
Giriş: 20/02/2014
Şehir: Bursa
Mesaj: 74
Excel Vers. ve Dili:
Excel 2013 - Türkçe
Varsayılan

Hocam koşullar şu şekilde,

1. koşul

1 operatör en az 3 operasyon bilmeli ( 4 , 5 , 6 da bilebilir. Buna engel yok. Ancak sistemsel olarak 3 operasyon bilmesi koşullarımızı sağlamış olduğu için fazlası gereksiz kalıyor )

2. koşul

bir operasyon en az 3 operatör tarafından bilinmeli. Yine aynı mantık. fazla olabilir ancak 3 yeterli.

3. koşul

en az 3 operatör tüm operasyonları bilmeli. 4 5 6 operatör de olabilir engel yok ancak dediğim gibi gerek de yok. Şu anda sistemimizde bu şartı sağlayan bir durum yok. ( şirketteki çalışma düzeninde yani )
bu koşulda operatörlerin takım liderinin kanaati de etkili olduğu için direkt bir koşuldan öte öneri olabilir. Şöyle ki, en fazla operasyon bilen operatörü öneri olarak sunabilir sistem kullanıcıya.
hmtstc Çevrimdışı   Alıntı Yaparak Cevapla
Eski 08-08-2017, 20:30   #5
asri
Altın Üye
 
Giriş: 24/04/2005
Şehir: Istanbul
Mesaj: 2,079
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Varsayılan

Alıntı:
hmtstc tarafından gönderildi Mesajı Görüntüle
Hocam koşullar şu şekilde,

1. koşul

1 operatör en az 3 operasyon bilmeli ( 4 , 5 , 6 da bilebilir. Buna engel yok. Ancak sistemsel olarak 3 operasyon bilmesi koşullarımızı sağlamış olduğu için fazlası gereksiz kalıyor )

2. koşul

bir operasyon en az 3 operatör tarafından bilinmeli. Yine aynı mantık. fazla olabilir ancak 3 yeterli.

3. koşul

en az 3 operatör tüm operasyonları bilmeli. 4 5 6 operatör de olabilir engel yok ancak dediğim gibi gerek de yok. Şu anda sistemimizde bu şartı sağlayan bir durum yok. ( şirketteki çalışma düzeninde yani )
bu koşulda operatörlerin takım liderinin kanaati de etkili olduğu için direkt bir koşuldan öte öneri olabilir. Şöyle ki, en fazla operasyon bilen operatörü öneri olarak sunabilir sistem kullanıcıya.
Bu durumda tüm koşullar sağlansın da kim kaç operasyon öğrenmiş, hangi operasyon kaç kişi almış önemli değil diyorsunuz doğru mudur?

Program çalıştığında tüm koşulları sağlayan bir tablo oluşturacak sizin ön verileri verdiğiniz tabloya program koşulları sağlayan 99 ları ekleyecek buraya kadar var mı bir sorun.
__________________
www.asriakdeniz.com
asri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 08-08-2017, 20:34   #6
hmtstc
 
Giriş: 20/02/2014
Şehir: Bursa
Mesaj: 74
Excel Vers. ve Dili:
Excel 2013 - Türkçe
Varsayılan

Hayır buraya kadar yok. Yani söylediklerinizle mutabık kaldığımız noktalar şunlar, koşullar sağlandığı takdir de fazla bilen operatörler yanımıza kâr kalacak. Eksik olmaması önemli.

Buradaki tek bir konu var bu programın anasayfasında koşullara sayılar verdim 3 3 3 olarak görüyorsunuzdur. Bu programı 2 sene sonra 4x4x4 koşuluna göre çalıştır dediğimizde sistem oradaki güncellenmiş sayılara göre hareket etmeli. Dipnot olarak onu da ekleyeyim dedim.
hmtstc Çevrimdışı   Alıntı Yaparak Cevapla
Eski 08-08-2017, 20:37   #7
asri
Altın Üye
 
Giriş: 24/04/2005
Şehir: Istanbul
Mesaj: 2,079
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Varsayılan

Alıntı:
hmtstc tarafından gönderildi Mesajı Görüntüle
..Buradaki tek bir konu var bu programın anasayfasında koşullara sayılar verdim 3 3 3 olarak görüyorsunuzdur. Bu programı 2 sene sonra 4x4x4 koşuluna göre çalıştır dediğimizde sistem oradaki güncellenmiş sayılara göre hareket etmeli. Dipnot olarak onu da ekleyeyim dedim.
Orası sorun değil, 4x4x4 e de gerek yok 3 ise 3x3x3 e göre 4 ise 4x4x4 e göre çalışır.

Önemli olan dağıtımı doğru yapalım.

Önemli: Programda her eğitim için neden 1 yok da bazen 2 bazen 3, bazen 4 yazıyor. Tek bir hücre için diyorum.
__________________
www.asriakdeniz.com
asri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 08-08-2017, 21:08   #8
asri
Altın Üye
 
Giriş: 24/04/2005
Şehir: Istanbul
Mesaj: 2,079
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Varsayılan

Mesajımdaki kod ve dosya güncellendi.

10x10x10 da diyebilirsiniz. Ancak henüz tüm satırlar koşulunu eklemedim.
__________________
www.asriakdeniz.com
asri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 08-08-2017, 21:32   #9
asri
Altın Üye
 
Giriş: 24/04/2005
Şehir: Istanbul
Mesaj: 2,079
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Varsayılan

Tüm koşullara göre dosya ve kodlar güncellendi.

Program ilk aşamada koşula göre 3x3x3 örneğin.
* En fazla eğitim alan 3 kişiyi 12 tam eğitim tamamlıyor.
* Daha sonra diğer personelleri 3 er eğitime tamamlarken OP ları da 3 e tamamlıyor.
__________________
www.asriakdeniz.com
asri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 09-08-2017, 09:11   #10
asri
Altın Üye
 
Giriş: 24/04/2005
Şehir: Istanbul
Mesaj: 2,079
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Varsayılan

Kod ve dosya güncellendi.

Satır ve sütün bağımsız istenildiği kadar arttırılıp azaltılabilir.

tablo tamamen boş olsa dahi yeni bir eğitim programı hazırlar.

Tablo boş iken tüm eğitimleri almasını istediğiniz kişilere 1 yazmanız yeterlidir.
__________________
www.asriakdeniz.com

Bu mesaj en son " 09-08-2017 " tarihinde saat 09:18 itibariyle asri tarafından düzenlenmiştir....
asri Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 17:11


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Hurda - Torna - Çorlu Web Tasarım - Tarot Falı - Fenerbahçe Haberleri - Trakya Haberleri - investing - Hurda - Kozmetik Ürünler - Excel Eğitimi - Lingerie - Dyeing Machine - Çorlu Temizlik- Hazır Site- SEO- Çorlu Burun Estetiği- Karton Bardak- Çorlu Pimapenci- İstanbul Avukat- Çorlu Kekemelik- Edirne Su Arıtma- Çorlu Perde Yıkama- Marmara Ereğlisi Hotel- Site Yönetimi- Led Aydınlatma- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Kırklareli- Pronet Çerkezköy- Pronet Çorlu- Pronet Lüleburgaz- Pronet Keşan- Çorlu Kamera- Çorlu Fiber- Çorlu Araç Takip-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden