Excelde solver ile ilgili

Katılım
25 Ocak 2009
Mesajlar
110
Excel Vers. ve Dili
Excel-2007 Türkçe
Merhaba arkadaşlar benim sorum makro ile solver (çözücü) kullanımı ile ilgili.

Excel 2007 deki solverı kullanarak oluşturulmuş bir makroyu excel 2003 de daha eski bir versiyonda açmak mümkün olmuyor.

Bu konuda nette yaptığım araştırma sonucunda aşağıdaki makro örneğini elde ettim. Bu konudaki çalışmasından dolayı Jon Peltier i de referans vermek doğru olur.

Şimdi burada anlayabildiğim kadarıyla referans sorunlarından kurtulmak için

Application.Run komutunu kullanıyor; sonra da bizim direkt yazdığımız SolverReset komutunu tırnak içinde yazıyor. Bu işi bilen değerli hocalarım en altta da benim makrom var ama nereye tırnak işareti nereye virgül koymam gerekiyor. Benim makrom üzerinde gerekli düzenleme nasıl olmalı yardımcı olabilir misiniz?

Sub SolverMacro3()
'
' SolverMacro3 Macro
' Macro fixed up by Jon Peltier
' Edited to use Application.Run to avoid reference problems
'
Application.Run "SolverReset"
Application.Run "SolverAdd", "$B$5:$B$6", 1, "4"
Application.Run "SolverOk", "$B$8", 1, "0", "$B$5:$B$6"
Application.Run "SolverSolve", True
End Sub

Sub SolverMacro3()
'
' SolverMacro3 Macro
' Macro fixed up by Jon Peltier
' Edited to use Application.Run to avoid reference problems
'
Application.Run "SolverReset"
Application.Run "SolverAdd", "$B$5:$B$6", 1, "4"
Application.Run "SolverOk", "$B$8", 1, "0", "$B$5:$B$6"
Application.Run "SolverSolve", True
End Sub

-----------------------------------------------------------------------

Benim makro başlıyor.


SolverReset

SolverOptions Precision:=0.01

SolverOk SetCell:="Sayfa2!" & Sayfa2.Cells(2 + Module1.fark + Module1.donati_sirasi_sayisi(j) * (t_toplam - 1), 12 + Module1.zw * 9 + 25).Address, MaxMinVal:=3, ValueOf:=Sayfa2.Cells(2 + fark_yeni_toplam, 10).Value, ByChange:="Sayfa2!K" & 2 + Module1.fark + Module1.donati_sirasi_sayisi(j) * (t_toplam - 1)

SolverSolve UserFinish:=True
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,405
Excel Vers. ve Dili
2019 Türkçe
Sorunuzdan çok fazla bişey anlamadım ama

Application.Run komutundan sonra tırnak içerisinde yazılan değim bir makro adıdır. Application.Run açık olan herhangi bir excel dosyasındaki makroyu çalıştırmaya yarar.

Yani,
Application.Run "SolverReset"

komutu SolverReset adlı makroyu çalıştırır.

Yoksa Referans sorunundan kurtulmanın yolu bu değildir.

Çözücü eklentisini yüklemek için.

Kod:
AddIns("Çözücü Eklentisi").Installed = True
kodunu kullanın
 
Son düzenleme:
Katılım
25 Ocak 2009
Mesajlar
110
Excel Vers. ve Dili
Excel-2007 Türkçe
Teşekkürler dalgalıkur benim anladığım kadarıyla Application.Run "SolverReset" yapılarak office2007 de office12/Library/Solver/Solver32.dll sine gösterilen referans office2003 de eğer çözücü eklentisi yüklenmişse çözücü dll si office11/Library/Solver klasörünün içine kopyalandığından referans olarak gösterilen dizin yolu kayıp mesajı veriyor.

Application.Run ile missing library nin önünce geçileceğini sanıyorum. Yine de değerli hocalarımızın da bu konuda yanlışsam beni düzeltmelerini rica ediyorum.

Öte yandan çözücü eklentisinin dediğin gibi AddIns("Çözücü Eklentisi").Installed = True olarak yüklenmesi gerekli.

Cevabın için tekrar teşekkür ederim.
 
Üst