Koşullar Sağlanıyorsa Makro Çalışsın.

Katılım
23 Eylül 2004
Mesajlar
91
Selamlar.

İlişikteki örnek dosyada FF sütunundaki özel kodların tamamının dolu olması halinde makro çalışsın, dolu değil ise boş satırlar seçilsin, boş satırlar kullanıcı tarafından doldurulduktan sonra, makra kaldığı yerden çalışmaya devem etsin şeklinde makro yazma şansımız varmıdır.

Dosyadaki test makrosunu bu koşula bağlayıp çalıştırabilirmiyiz.
 
X

xxrt

Misafir
Ã?nceki sorunuzda dosyanız yok idi bu nedenle sorunuza cevap alamadınız.Sizin dosyanızda;
E Sütununda Verilen Formüllerin Boş veya Sıfır olması halinde kullanıcıya bunu Yazmasını Unutmaması için bir uyarı isteğiniz ve Boş geçilen hücreye dönüş yapmasını istemektesiniz.
Kullanıcının Oraya Yani Maliyet ve satışa mutlak değer girmesini istiyorsanız;
Kod:
Sub Bosolamaz()
If Range("E2") = "0" Then
soru = MsgBox("1 Nolu Stok Kodunu Boş Geçemezsiniz.!Devam Edeyimmi?", vbYesNo, "Hata")
Range("e2").Select
If soru = vbYes Then GoTo devam
If soru = vbNo Then Exit Sub
End If
If Range("e3") = "0" Then
soru = MsgBox("2 Nolu Stok Kodunu Boş Geçemezsiniz.Devam Edeyimmi?", vbYesNo, "Hata")
Range("E3").Select
If soru = vbYes Then GoTo devam
If soru = vbNo Then Exit Sub
End If
If Range("E4") = "0" Then
soru = MsgBox("3 Nolu Stok Kodunu Boş Geçemezsiniz.Devam Edeyimmi?", vbYesNo, "Hata")
Range("E4").Select
If soru = vbYes Then GoTo devam
If soru = vbNo Then Exit Sub
End If

devam:
'Burayada İşlemleri tam olarak yaptıktan sonraki kodları yazacaksınız..
End Sub
Kodlarını Userform sayfasına yazarak,Sayfa Üzerinde Bir butona atayabilirsiniz.
Genellikle Tamam butonu üzerine konulduğundan Kodunuzun
Kod:
devam:
kısmından sonra hangi kod kullanacağınızı bilemediğimden boş bıraktım ama Tamam butonuna bunları yazdıktan sonra
Kod:
devam:
dan sonra kodunuz yok ise şunu yazabiliriz..
Kod:
MsgBox"Tüm Girişler İşlenmiştir."
Bu kodları sıra ile yazmanız gerek..
 
Katılım
23 Eylül 2004
Mesajlar
91
Sayın xxrt,

İlginize teşekkür ederim fakat yapmak istediğim bu değil. Þöyleki;
Ã?rnek olarak gönderdiğim dosyanın FF sütunundaki özel kod satırlarının tamamının dolu olması gerekli, boş olduğu zaman diğer işlemler bu satırlardaki özel kodları referans aldığı için yanlış sonuç veriyor. Benim amacım her seferinde değişen(5000 ile 15000 satır arası) ve satır sayısına göre bu sütundaki boş hücreleri seçip gerekli özel kodları yazdıktan sonra makronun kaldığı yerden devam etmesini sağlamak.

Selamlar.
 
Katılım
7 Temmuz 2004
Mesajlar
1,141
Kod:
For i = 1 To Cells(65536, 1).End(xlUp).Row
    If Trim(Cells(i, 6)) = "" Then
    'boş satır var uyarı ver, satırı seç, çık.
    MsgBox ("Ã?zel kod girilmemiş. Lütfen kodu giriniz.")
    Cells(i, 6).Select
    Exit For
    Else
    'f sütununda boş satır kalmamış. yapılması gereken işlemi yap
    
    End If
Next i
 
Katılım
23 Eylül 2004
Mesajlar
91
Sayın Alpen,

Teşekkür ederim, daha önce gönderdiğim dosyadaki sorunun çözümündede Trim komutunu kullanmışsınız. Bu Komutun kullanılışı hakkında açıklayıcı bilgi gönderirseniz sevinirim. S

Selamlar.
 
Katılım
7 Temmuz 2004
Mesajlar
1,141
trim, bir metnin başındaki ve sonundaki boşlukları alır.

Ã?rneğin a1 hücresinde " muratnazli " varsa (baştaki ve sondaki boşluklara dikkat) ve biz

if cells(1,1) = "muratnazli" gibi bir satır aslında o hücrenin değeri muratnazlı olsa bile false döndürür.

fakat
trim(cells(1,1)) = "muratnazli" 'dan true döner.

yukarıdaki örnekte kullanıcının girişteki hatalarını (başına sonuna yanlışlıkla boşluk girilmesi gibi) ayıklamak için kullandık.

aynı şekilde lcase, ucase kullanarak ta kullanıcının bazen büyük harf bazen küçük harf kullanarak girdiği datalarıda kontrol edebiliriz.
 
Katılım
23 Eylül 2004
Mesajlar
91
Sayın Alpen Selamlar,


Gönderdiğiniz kod işimi görüyor fakat özel kodu boş olan hücreyi seçiyor
kullanıcı özel kodu girdikten sonra, ikinci boş hücreyi bulmak için aynı makroyu tekrar çalıştırmak durumunda kalıyor. Bu kod başka bir kodun içinde kullanıldığından tekrar çalışrımak mümkün olmuyor. Sütundaki boş hücreler bitinceye kadar kullanıcı özel kodu girip enter'a bastıktan sonra yeni arama yaptırmanın, boş hücreler bittikten sonrada makroyu kaldığı yerden devem ettirmenin imkanı varmıdır.

Teşekkürler.
 
T

TRABLUS

Misafir
Sizin gönderdiğiniz son dosyayı ben inceledim hata veriyor.
If flag = 1 Then
sllep5
CommandButton1_Click
End If
End Sub koyu renk olan yer hata veriyor.Yada ben yapamadım.
 
T

TRABLUS

Misafir
Elinize sağlık şimdi güzel olmuş.Benim de işime yarar
 
Katılım
23 Eylül 2004
Mesajlar
91
Sayın Alpen,

Teşekkür ederim güzel olmuş, eee sende çok oldun demezseniz iki şey daha rica edeceğim.Birincisi,enter'a iki defa basıldığında özel kodu yazmadan geçebiliyorsunuz. Ã?zel kodu yazmadan geçilmesini engelleyebilirmiyiz. İkincisi Ben makroyu yeni öğreniyorum yaptığım işin mantığını öğrenip tekrar tekrar sormamak ve lazım olduğunda bu kodlardan faydalanmak için kısa açıklamalar yazarsanız sevinirim.

Selemlar.
 
Katılım
23 Eylül 2004
Mesajlar
91
Sayın Alpen,

Gönderdiğiniz kodlar örnek dosyada çalışıyor. Fakat ilişikteki dosyada bunu kullanamadım. Ã?rneğini göndereceğim dosya Windows tabanlı olmayan bir proğramdan excel'e atılmış bir dosya ve bu dosyadaki kodların çoğu, birkaç eklemenin dışında excel'in makrosundan yazılmıştır.
Benim yapmak istediğim kodda not düştüğüm aralığa sizin gönderdiğiniz kodu yerleştirmek.
Yardımcı olabilirseniz sevinirim.

Selamlar.
 
Katılım
23 Eylül 2004
Mesajlar
91
Sayın Alpen,
Gönderdiğiniz kodu inceledim.CommandButton'a yazmış olduğunuz kodun aşağıda yazdığım satırında hata veriyor. Birde modül 1 deki biçim makrosunun içerisinde özel kod kontrolünü alt toplamlar alınmadan yapılması gerekiyor.

Tesekkürler
If Cells(oldr, 15) = "" Then
 
Üst