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 24-09-2017, 23:24   #1
cenkozkurt
Altın Üye
 
Giriş: 04/02/2017
Şehir: Nürnberg
Mesaj: 35
Excel Vers. ve Dili:
2010
Varsayılan Döngü sorunu

Merhabalar,

Ekteki dosyadaki Npt: toplam üretim süresi (M Sütununda) ve süreç: kullanılabilir mevcut zamanı (P sütununda) belirtmektedir.

Yapmak istediğim eğer Npt>süreç ise listboxta (listbox1) bir uyarı çıksın. Örneğin M2 hücresi mevcut bütün "Süreçler" den büyük bunu listboxa bir uyarıyla birlikte yazsın. "Yapılamıyor" şeklinde.

Eğerki npt den küçük süreçler var ise o süreçten npt yi cıkartmalıyız. Yani; M3 hücresinde 140 dakika var ve ondan büyük ilk olan süreçte P9 daki 145 dakika. 145-140=5 dakika arta kalan zaman. Burada arta kalan zamanıda kendinde bir sonraki hücreye eklemek istiyorum. Örnekte olduğu gibi p10+5 dk=165 dakika olmalı.

Daha sonra bu döngü sırayla bütün nptler için devam etmeli ama sürekli bu şekilde bulmalı.

Not: Orjinal dosya biraz karmaşık olduğu için sadece bu kısmını aldım.

Bunu yapmanın en kolay yolu nedir acaba? Şimdiden teşekkürler.
Eklenmiş Dosyalar
Dosya Türü: xlsx Soru.xlsx (10.7 KB, 6 Görüntülenme)
cenkozkurt Çevrimdışı   Alıntı Yaparak Cevapla
Eski 24-09-2017, 23:56   #2
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 9,092
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Merhaba.

Mevcut verilere göre işlem sonucunda M ve P sütunlarındaki veriler nasıl olmalıdır, yani olması gereken sonuç nedir?
Konu açılış mesajında LISTBOX'tan bahsediyorsunuz, belgede (sayfada) böyle bir nesne yok, ayrıca belgede bir USERFORM da göremiyorum.
İsterseniz örnek belgenizi tekrar gözden geçirip, olması gereken nihai sonucu başka bir sütuna elle yazarak yeniden yükleyin, LISTBOX olayını da netleştirin.
.
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosya.co gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 25-09-2017, 00:35   #3
cenkozkurt
Altın Üye
 
Giriş: 04/02/2017
Şehir: Nürnberg
Mesaj: 35
Excel Vers. ve Dili:
2010
Varsayılan

Ömer Bey hızlı cevabınız için teşekkür ederim. Dediğim gibi dosya biraz karışık ve başka bir dilde olduğu için orjinalini koymadım. Orjinal dosyada "Listbox ve Userform" mevcut Listbox1 dedim o yüzden. O kısım bir sonraki sorun açıkcası.

Sonuç olarak yapılmasını istediğimde; örneğin "Q" sütununda nptnin hangi süreçte işlem gördüğünün yazılmasıdır. Örneğin yukarıdaki örnekte M3 hücresi P9 sürecinde işlem gördü ve tabiki M3 işlem gördüğü için bundan sonraki işlemlere girmemelidir. Q9 hücresine hangi nptnin orada işlem gördüğüne dair onun adı "M3" yazılmalıdır. Ayrıca işlemden artan 5 dakikayı da bir sonraki sürece eklemeli.

Böyle birşeyin yapılıp yapılamıcağından emin değilim o yüzden sormak istedim. Ancak mümkün değilse bir ikinci varyasyonu hakkında yardım almak isterim.

Teşekkürler.
cenkozkurt Çevrimdışı   Alıntı Yaparak Cevapla
Eski 25-09-2017, 00:42   #4
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 9,092
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Siz bu şekilde M sütunundaki herbir veri için (neticede şu anda 16 adet veri var ve yapılabilir bence)
manuel olarak olması işlemi sürdürdüğünüzde olması gereken son durum nedir, onu merak ettim doğrusu.
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosya.co gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 25-09-2017, 00:44   #5
cenkozkurt
Altın Üye
 
Giriş: 04/02/2017
Şehir: Nürnberg
Mesaj: 35
Excel Vers. ve Dili:
2010
Varsayılan

Bahsettiğim 2. varyasyonda şöyle olabilir;

M2 hücresindeki npt=252 dakika buna karşılık P2 hücresinde 120 dakika var ve buda yetersiz gelmektedir. O yüzden 252 dakika olana kadar gerekli süreçler toplanmalıdır. Yani P2+P3+P4 bunların toplamı 300 yani 48 dakika daha fazla ve bu 48 dakika bir sonraki sürece eklenmelidir. Yeni "P5";

P5+48= 78 dakika olmalıdır. Bu işlem sonucunda M2; P2,P3 ve P4'te işlendiğinden dolayı Q2,Q3 ve Q4 hücrelerine burada M2 işlendiğine dair "m2" yazılmalıdır.

M2 bittikten sonra M3 e geçmeli ve sırayla bütün nptler için bu işlemi yapmalıdır. Bunu yapabilmek için bir makroya ihtiyacım var.
cenkozkurt Çevrimdışı   Alıntı Yaparak Cevapla
Eski 25-09-2017, 00:46   #6
cenkozkurt
Altın Üye
 
Giriş: 04/02/2017
Şehir: Nürnberg
Mesaj: 35
Excel Vers. ve Dili:
2010
Varsayılan

Alıntı:
Ömer BARAN tarafından gönderildi Mesajı Görüntüle
Siz bu şekilde M sütunundaki herbir veri için (neticede şu anda 16 adet veri var ve yapılabilir bence)
manuel olarak olması işlemi sürdürdüğünüzde olması gereken son durum nedir, onu merak ettim doğrusu.
Ömer Bey,

Bu bir üretim planlama programı olacak o yüzden elle yapmak mümkün değil malesef. Ben sadece bir kısmını kopyaladım. 2. varyasyon daha kolay sanırım. Onu yapmakta yardımcı olursanız sevinirim.
cenkozkurt Çevrimdışı   Alıntı Yaparak Cevapla
Eski 25-09-2017, 01:29   #7
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 9,092
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Son cevabınızdan bir önceki cevapta belirttiğiniz husus (P2+P3+P4....48 dk....) üzerinden gidilebilir gibi geliyor bana.
Biraz bakayım o konuya.
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosya.co gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 25-09-2017, 02:31   #8
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 9,092
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Tekrar merhaba.

İşlem öncesinde Sayfa1'in 1 kopyasını oluşturun.

-- alt taraftan Sayfa1 adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçin,
-- açılan VBA ekranında sağdaki boş alana aşağıdaki kod'u yapıştırın,
-- kod'u çalıştırın.

Bakalım istediğiniz işlem gerçekleşiyor mu?
.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub BARAN()
son = Cells(Rows.Count, "M").End(3).Row
Range("Q1:Q" & son).ClearContents: [Q1] = "NPT KODU"
    For msat = 2 To son
        m = Cells(msat, "M")
        ilk = Evaluate("=MATCH(""ZZZ"",Q:Q,1)") + 1
        For psat = ilk To son
                p = p + Cells(psat, "P")
                Cells(psat, "Q") = "M" & msat
                If p > m Then
                    Cells(psat + 1, "P") = Cells(psat + 1, "P") + (p - m)
                    p = 0: fark = 0
                    Exit For
                End If
        Next
    Next
MsgBox "İşlem tamamlandı.", vbInformation, "..::.. Ömer BARAN ..::.."
End Sub
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosya.co gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 25-09-2017, 09:44   #9
cenkozkurt
Altın Üye
 
Giriş: 04/02/2017
Şehir: Nürnberg
Mesaj: 35
Excel Vers. ve Dili:
2010
Varsayılan

Alıntı:
Ömer BARAN tarafından gönderildi Mesajı Görüntüle
Tekrar merhaba.

İşlem öncesinde Sayfa1'in 1 kopyasını oluşturun.

-- alt taraftan Sayfa1 adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçin,
-- açılan VBA ekranında sağdaki boş alana aşağıdaki kod'u yapıştırın,
-- kod'u çalıştırın.

Bakalım istediğiniz işlem gerçekleşiyor mu?
.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub BARAN()
son = Cells(Rows.Count, "M").End(3).Row
Range("Q1:Q" & son).ClearContents: [Q1] = "NPT KODU"
    For msat = 2 To son
        m = Cells(msat, "M")
        ilk = Evaluate("=MATCH(""ZZZ"",Q:Q,1)") + 1
        For psat = ilk To son
                p = p + Cells(psat, "P")
                Cells(psat, "Q") = "M" & msat
                If p > m Then
                    Cells(psat + 1, "P") = Cells(psat + 1, "P") + (p - m)
                    p = 0: fark = 0
                    Exit For
                End If
        Next
    Next
MsgBox "İşlem tamamlandı.", vbInformation, "..::.. Ömer BARAN ..::.."
End Sub

Ömer Bey çok teşekkür ederim. Yukarıda belirttiğim gibi olmuş. Bunu bir adım öteye taşımak mümkün müdür acaba?

Yeni yüklediğim dosyada "Sayfa2" de A:C aralığındaki tabloda; A:B aralığında saat aralıkları belirtilmiş bu bir makroyla bulunuyor orjinal dosyada. C sütununda da bu saat aralıklarında ki elektrik fiyatları mevcut.

Bir başka makroyla sayfa1'de elekrik fiyatlarının kaç kere tekrar ettikleri mevcut. Buraya kadar anlattıklarımın makrosunu yazdım ve bir sorun yok.

Sizin yukarıda yazdığınız kod yardımı ile Q sütununa npt'nin hücre numarası verilmişti. Bunun yerine Sayfa1.N sütunundaki 0.15 i Sayfa2'deki tablodan bularak hangi aralıklarda olduğunu yazdırmak mümkün mü? Burada sorun 0.15 in 8 kere tekrar etmesi.

Bu işlemin sonucu bir tabloda olabilir veya Gantt şemasıda ya da hücrelere yazılabilir nasıl uygun görürseniz. Sonuç olarak; hangi saat aralığında hangi npt işleme girmiş ve ne kadar süre kullanmıs onu görmek istiyorum.

Not: Buradaki saat aralıkları 15 dakika ancak bunlar değişken yani 1 saat veya yarım saatte olabilir. Makro her koşula uymalı.
Eklenmiş Dosyalar
Dosya Türü: xlsx Soru.xlsx (14.8 KB, 2 Görüntülenme)

Bu mesaj en son " 25-09-2017 " tarihinde saat 13:50 itibariyle cenkozkurt tarafından düzenlenmiştir....
cenkozkurt Çevrimdışı   Alıntı Yaparak Cevapla
Eski 25-09-2017, 13:16   #10
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 9,092
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Önce bir not:
-- Forumda önceki cevaptan bütün olarak alıntı yapmanız sayfanın kalabalıklaşmasına neden oluyor.
-- Bu nedenle çok gerekmedikçe alıntı işlemini kullanmamamınızı,
alıntı yapıldığında da gereksiz kısımları silerek alıntılama olayını sadece ilgili kısımlarla sınırlı tutmanızı öneriyorum.

Son cevabınız:
-- Eklenmiş yeni belge göremiyorum, dolayısıyla da son cevapta yazdıklarınızla ilgili berşey anlaşılması, yapılması mümkün değil.
-- Aynıca, mevcut makrolardan bahsediyorsunuz.

Gerçek belgenizle aynı yapıda ve belirttiğiniz Sayfa2 ve makrolar içerisinde olacak şekilde yeni bir örnek belge yüklerseniz ve fırsat bulursam tekrar bakarım.
.
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosya.co gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Ç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 08:06


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

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım - Tarot Falı - invest in turkey - Lingerie - Dyeing Machine - Karton Bardak- Çorlu Özel Eğitim- 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 Araç Takip- Çorlu Su Arıtma- Boru Profil- Gebze Emlak- Beylikdüzü Temizlik- İstanbul Burun Estetiği- Bakır Sülfat- Rampa- Rotary- Çorlu İnternet Sitesi- youngblood- Çorlu Palet- Çerkezköy Palet-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden