Formüllü makroları düz makroya çevirmek...

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

irfancantr

Altın Üye
Katılım
18 Haziran 2007
Mesajlar
625
Excel Vers. ve Dili
Excel 365 - İmngilizce
Altın Üyelik Bitiş Tarihi
07-05-2029
Sayın hocalarım sizlerin sayesinde işimi daha anlaşılır kolay ve düzenli bir hale getirdim, ama insanoğlu hep daha iyisi daha güzeli ve daha ayrıntılı olmasının bir türlü önüne geçemiyor :)

Aşağıda küçük bir çalışmam var ve yardımcı olmanızı istiyorum;

Öncelikle formüllü dosyalar işlemleri çok yavaşlattığı için ben formülleri ilk önce yazıyorum daha sonra makroya çeviriyorum ki devamlı işlem yaparak bilgisayarı zorlamaması için, fakat bazı yerlerde tıkanıyorum, bunların aslında daha kolay şekilde yapıldığını sitede ki konuları inceleyerek görüyorum da bir türlü kendime uyarlayamadım, sizlerden ricam biraz zaman ayırarak bana yardımcı olmanız....

Öncelikle tüm dosyalarımı ekliyorum...

HESAP adlı dosya tüm bilgilerimi kapsıyor;
1- Gramajlar sayfası yemek reçetelerini içeriyor ve mecburiyetten fiyatlarıda eklemek zorunda kaldım her malzemenin yanına, fiyat her değiştiğinde yemek maliyetlerimede yansıması gerekli.

2- Aylık menülerin hazırlığı. Liste 1 , Liste 2 ..... diye ilerleyen sayfalarda her bölgeye ait listeler yapılıyor ve bu listelerde belirlenen yemekler kişi sayıları ile çarpılarak 1 ay boyunca olası kullanılması gerekli mazlemelerin hesabından , aylık ortalama maliyetin çıkmasını sağlıyor.

3- YEMEK LİSTESİ adlı sayfa aylık , günlük ve seçilen iki tarihe göre ne kadar malzeme siparişi verileceği konusunda yardımcı oluyor.

a) Bu sayfa tüm bilgilerini SİPARİŞ LİSTELERİ adlı dosyadan çekiyor (bu dosyayı ayrı yapma sebebim tek dosyanın çok ağır işlemesi).

4- SİPARİŞ LİSTELERİ adlı dosya neredeyse formül bankası haline geldi, ama benim hatam tüm formüllü hücreleri mecburiyetten (cahillikten) birbirine bağlamam. Bu formülleri ve olan makroları daha sade yani, kolay yapılası bir duruma sokabilir miyim?

a) SİPARİŞ LİSTELERİ adlı dosyada HESAPLA adlı sayfada bulununa bir aylık 7 farklı yemek listelerinin hergün hangi yemeklerden ne kadar olduğunu gösteriyor ve ilk aşama burada bulunan yemeklerin aynılarını tek kaleme alıp sayılarının toplamını gerçekleştirmek, Örn; Domates Çorba iki kere yazılmış ama birisinde 150 diğerinde 35 sayıları mevcut, bunu Domates Çorba diye tek kaleme alıp karşısına 185 yazdırabilmek.
b) İkinci olarak SİPPARİŞ adlı sayfada bu tek kaleme alınan yemeklerin reçetelerini ayrı ayrı kişi sayılarına oranla hesaplaması ve yine burada da "a" maddesşnde ki gibi tek kaleme malzemeleri gün gün ayrı bir şekilde toparlayabilmek.
c) Sayfa1 adlı sayfada ise hangi malzemenin hangi güne ne kadar siparişi olduğu gözüküyor ve bunları sırasına göre yapmak zorundayım ki herbiri diğerinin takibinde olacak işlem.

Sayfa 1 adlı sayfadan olan verileri HESAP adlı dosyada bulunan YEMEKLİSTESİ sayfası siparişleri yakalıyor.


Biliyorum uzun oldu, imkan olsada online bir şekilde anlaılarak öğrenmek isterdim ama kimseden bunu talep etmek yerinde olmaz.

İşlemler arttıkça bilgisayar tıkanmaya başladı ve ikide bir kapanır oldu :(

İletişime geçmek isteyen ve yardımcı olmak isteyen üstadlarımdan şimdiden ALLAH RAZI olsun.

irfancantr@hotmail.com
 

Ekli dosyalar

irfancantr

Altın Üye
Katılım
18 Haziran 2007
Mesajlar
625
Excel Vers. ve Dili
Excel 365 - İmngilizce
Altın Üyelik Bitiş Tarihi
07-05-2029
:D Evet bu işin altına girmek gerçekten çok zor, yinede hepinizden Allah razı olsun, formülü makroya çevirmeye devam ozaman :)
 

irfancantr

Altın Üye
Katılım
18 Haziran 2007
Mesajlar
625
Excel Vers. ve Dili
Excel 365 - İmngilizce
Altın Üyelik Bitiş Tarihi
07-05-2029
Farklı bir dosya....

Peki sadece bu (4 tane) formülleri düz makroya çevirebilir miyiz?

Mümkünse bunun mantığı hakkında biraz yardımcı olursanız sorunu kendim biraz daha çabalayarak çözebileceğimi ümit ediyorum :)

Teşekkürler , kolay gelsin....
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,843
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Peki sadece bu (4 tane) formülleri düz makroya çevirebilir miyiz?

Mümkünse bunun mantığı hakkında biraz yardımcı olursanız sorunu kendim biraz daha çabalayarak çözebileceğimi ümit ediyorum :)

Teşekkürler , kolay gelsin....
ekli dosyanızı kontrol ediniz örnek olsun diye birşeyler yaptım.
 

Ekli dosyalar

irfancantr

Altın Üye
Katılım
18 Haziran 2007
Mesajlar
625
Excel Vers. ve Dili
Excel 365 - İmngilizce
Altın Üyelik Bitiş Tarihi
07-05-2029
Hocam elinize sağlık çok güzel olmuş, istediğim gibi değişiklik yapabiliyorum artık lakin bir yerde takıldım;

Aynı sayfada iki kod aktif olmalı;

Öncelikli olarak ilk kod bu,

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo mesaj
If Intersect(Target, Range("A14:A70,F14:F55,K14:K55")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub
Target.Offset(0, 1) = WorksheetFunction.VLookup(Target.Text, Sheets("DEPO").Range("B6:E1000"), 4, 0)
GoTo son
mesaj:
MsgBox "Girdiğiniz Ürün Listede Yok Veya" & vbCrLf & "Yazım Hatası Yaptınız.", vbCritical, "ALARM!!!"

son:

End Sub
Daha sonra bu kod işleme girmeli,

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("c14:c36,h14:h55,m14:m55,c43:c70,h62:h70,m62:m70")) Is Nothing Then Exit Sub
If Target.Column = 3 Then
If Target.Row > 14 Or Target.Row < 70 Then
If Cells(Target.Row, 2) > 0 Then
Cells(Target.Row, 4).Value = Cells(Target.Row, 2).Value * Cells(Target.Row, 3).Value
End If
End If
End If

If Target.Column = 8 Then
If Target.Row > 14 Or Target.Row < 70 Then
If Cells(Target.Row, 7) > 0 Then
Cells(Target.Row, 9).Value = Cells(Target.Row, 7).Value * Cells(Target.Row, 8).Value
End If
End If
End If

If Target.Column = 13 Then
If Target.Row > 14 Or Target.Row < 70 Then
If Cells(Target.Row, 12) > 0 Then
Cells(Target.Row, 14).Value = Cells(Target.Row, 12).Value * Cells(Target.Row, 13).Value
End If
End If
End If
End Sub
Ben ikisinide birbirine bağlayamadım, bu konuda yardımınızı esirgemezseniz çok sevinirim...

Not:Birleştirme işlemini anlatabilirseniz birkaç yerde daha farklı kodları bu şekilde kullanmayı düşünüyorum...


Emeğiniz için şimdiden çok teşekkür ederim.
 

irfancantr

Altın Üye
Katılım
18 Haziran 2007
Mesajlar
625
Excel Vers. ve Dili
Excel 365 - İmngilizce
Altın Üyelik Bitiş Tarihi
07-05-2029
Bulamamışım :( :D
 
Son düzenleme:

irfancantr

Altın Üye
Katılım
18 Haziran 2007
Mesajlar
625
Excel Vers. ve Dili
Excel 365 - İmngilizce
Altın Üyelik Bitiş Tarihi
07-05-2029
Çıkış yolu üzerinde uğraşıyorum ama nafile, yardım talep ediyorum .
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,843
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
şöyle bir deneyiniz.
iyi akşamlar

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A14:A70,c14:c36,c43:c70,F14:F55,h14:h55,h62:h70,m14:m55,m62:m70,K14:K55")) Is Nothing Then Exit Sub
If Target.Column = 3 Then
If Target.Row > 14 Or Target.Row < 70 Then
If Cells(Target.Row, 2) > 0 Then
Cells(Target.Row, 4).Value = Cells(Target.Row, 2).Value * Cells(Target.Row, 3).Value
End If
End If
End If
If Target.Column = 8 Then
If Target.Row > 14 Or Target.Row < 70 Then
If Cells(Target.Row, 7) > 0 Then
Cells(Target.Row, 9).Value = Cells(Target.Row, 7).Value * Cells(Target.Row, 8).Value
End If
End If
End If
If Target.Column = 13 Then
If Target.Row > 14 Or Target.Row < 70 Then
If Cells(Target.Row, 12) > 0 Then
Cells(Target.Row, 14).Value = Cells(Target.Row, 12).Value * Cells(Target.Row, 13).Value
End If
End If
End If
On Error GoTo mesaj
If Target.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub
Target.Offset(0, 1) = WorksheetFunction.VLookup(Target.Text, Sheets("DEPO").Range("B6:E1000"), 4, 0)
GoTo son
mesaj:
MsgBox "Girdiğiniz Ürün Listede Yok Veya" & vbCrLf & "Yazım Hatası Yaptınız.", vbCritical, "ALARM!!!"
son:
End Sub
 

irfancantr

Altın Üye
Katılım
18 Haziran 2007
Mesajlar
625
Excel Vers. ve Dili
Excel 365 - İmngilizce
Altın Üyelik Bitiş Tarihi
07-05-2029
Denedim işlemde bir sıkıntı yok sadece her defasında uyarı mesajını veriyor?
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,843
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
kırmızı renkli olan yeri siliniz.

Target.Offset(0, 1) = WorksheetFunction.VLookup(Target.Text, Sheets("DEPO").Range("B6:E1000"), 4, 0)
 

irfancantr

Altın Üye
Katılım
18 Haziran 2007
Mesajlar
625
Excel Vers. ve Dili
Excel 365 - İmngilizce
Altın Üyelik Bitiş Tarihi
07-05-2029
kırmızı renkli olan yeri siliniz.
Denedim ama aynı hatayı veriyor, ben;

On Error GoTo mesaj
On Error GoTo son
böyle yaptım şu anda bir problem gözükmüyor;

buarada ekli dosyada farklı bir düşeyara formülü var

=DÜŞEYARA(B4;VERİ1!$A$1:$AG$65536;2;0) =DÜŞEYARA(B4;VERİ1!$A$1:$AG$65536;3;0)
=DÜŞEYARA(B4;VERİ1!$A$1:$AG$65536;4;0) =DÜŞEYARA(B4;VERİ1!$A$1:$AG$65536;5;0)
=DÜŞEYARA(B4;VERİ1!$A$1:$AG$65536;6;0) =DÜŞEYARA(B4;VERİ1!$A$1:$AG$65536;7;0)

diye gidiyor buna değişik bir çalışma yapabilir miyiz?
Koyu renkli rakamları değiştirmek zorunda kalmasam

For i = 4 To 19
Cells(i, 5).Select
kodunu yazıp formüllere döktükten sonra

With [a44:aj529]
.Formula = .Value
End With
yapıp geçicem ama ozamanda tek tek her formülü makroya çevirmek gerekiyor,

Yani gerekli sayfadan aranan ne ise o ürünleri kendisi seçip çarpma işlemini yapıp yazabilir mi?
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,843
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
öncelikle şunu söylüyeyim ben 3.nolu mesajınızdaki soruya cevap verdim 8 nolu mesajımdaki kodu 10. nolu mesajımdaki hatayı düzeltirseniz çalışacağını söyledim.

bu kodların size birazcık yol göstereceği düşüncesiyle size iyi çalışmalar diliyorum.

kod çalışıyor ekli dosyaya bir bakınız.
 

Ekli dosyalar

irfancantr

Altın Üye
Katılım
18 Haziran 2007
Mesajlar
625
Excel Vers. ve Dili
Excel 365 - İmngilizce
Altın Üyelik Bitiş Tarihi
07-05-2029
öncelikle şunu söylüyeyim ben 3.nolu mesajınızdaki soruya cevap verdim 8 nolu mesajımdaki kodu 10. nolu mesajımdaki hatayı düzeltirseniz çalışacağını söyledim.

bu kodların size birazcık yol göstereceği düşüncesiyle size iyi çalışmalar diliyorum.

kod çalışıyor ekli dosyaya bir bakınız.
Evet haklısınız halit hocam, kabalık yaptıysam çok özür dilerim. Ben amacına ulaşma heyecanı ile dikkatsiz yazmış olabilirim. Tekrarda kusuruma bakmayın, ilgi ve alakanızı eksik etmediğiniz için sonsuz teşekkürler.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,843
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
11 nolu mesajındaki dosyaya bir şeyler yaptım dosyanın içinde not bölümü var onu okuyunuz birde yemek değerlerine kılevyede herhangibir tuşa rasgele basmanız yeterli verileri kendisi bulup getirecektir dosyanızı kontrol ediniz.
 

Ekli dosyalar

irfancantr

Altın Üye
Katılım
18 Haziran 2007
Mesajlar
625
Excel Vers. ve Dili
Excel 365 - İmngilizce
Altın Üyelik Bitiş Tarihi
07-05-2029
11 nolu mesajındaki dosyaya bir şeyler yaptım dosyanın içinde not bölümü var onu okuyunuz birde yemek değerlerine kılevyede herhangibir tuşa rasgele basmanız yeterli verileri kendisi bulup getirecektir dosyanızı kontrol ediniz.
Sayın halit hocam tekrardan çok teşekkür ediyorum, yolun (Bilecik) bozüyük'ten geçerse senden çok rica ediyorum lütfen birgün öncesinden haber vermeni istiyorum...

Yol üzerinde Muttfak adlı restorantı göreceksin, şuanda çalıştığım yer.

Bu bana ilk yardımınız değil, buradan tüm üstadlara sesleniyorum, kapım herzaman açık ve sizlerin yardımları parayla ölçülemez...

Teşekkürler...
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst