Keresés

Részletes keresés

Törölt nick Creative Commons License 2006.11.28 0 0 4580
Előzmény: Fatimia (4528)
tammmy4 Creative Commons License 2006.11.28 0 0 4579
Köszönöm mindenkinek a segítséget!!!
Végre működik!
Törölt nick Creative Commons License 2006.11.28 0 0 4578

Rendben.

Jó lenne, ha lehetne még javítani a pontosságon. Csak azért tettem a a makró elejére a solver pontosági beállításainak parancsait, hogy el lehessen játszani velük.

Előzmény: extekergo (4577)
extekergo Creative Commons License 2006.11.28 0 0 4577
Köszönöm, utólagos engedelmeddel Jozsefnek is tovább adtam.

Előzmény: Törölt nick (4576)
Törölt nick Creative Commons License 2006.11.28 0 0 4576
Elküldtem a megoldásomat.
Előzmény: extekergo (4574)
Jozsef Creative Commons License 2006.11.28 0 0 4575

Szia!

 

Jozsef kukacka torzsasztal pontocska hu

Előzmény: extekergo (4573)
extekergo Creative Commons License 2006.11.28 0 0 4574
Ja!!! Menne, de hová? :))
Előzmény: extekergo (4573)
extekergo Creative Commons License 2006.11.28 0 0 4573
Úgy látszik a tom nincs gépközelben. Reggel visszaküldtem neki a makróval kiegészített tábláját. Remélem nem harapja le a fejem, ha elküldöm neked is.

Egy csomó új dolgot tanultam már a problémája kapcsán. (dehát ezért járok erre a topikra)

Érdekes, érdekel, s leginkább az, miért akad ki a gép ettől a feladattól.
Ennyit tud az excel? Korlátaiba már máskor is ütköztem...

Gondolod, ha lle van tiltva a képernyőffrissítés (pontosan hogy is kell beírni ezt a makróba?) akkor talán jobban fut?

Na megy a mél.

Előzmény: Jozsef (4571)
Törölt nick Creative Commons License 2006.11.28 0 0 4572

Kösz. Nézegetem.

Előzmény: extekergo (4570)
Jozsef Creative Commons License 2006.11.28 0 0 4571

Szia!

 

Mivel nekem nincs meg a fájlod, konkrét makrót nem tudok írni, de én a feladatot a következőképpen oldanám meg:

 

1. A Solver feladatot én külön területen (akár egy másik külön munkalapon) oldanám meg. Ezt a megoldást rögzíteném a makrórögzítővel, vagy a lenti kódot módosítanám értelemszerűen.

 

2. Egy olyan felhasználói függvényt írnék, ami első lépésben a paramétereit átmásolná  a másik munkalap megfelelő celláiban, majd a rögzített makró meghívásával megoldja a Solveres feladatot. A függvény visszatérési értéke a másik munkalap változó cellájának megoldásként kapott értéke lenne.

 

3. Az eredeti táblázatba ezt a függvényt írnám be, ahova a lambda értéke szükséges.

 

Nagyobb táblázat esetén célszerű lenne az automatikus újraszámítást kikapcsolni és a függvény elején Application.ScreenUpdating  false, a végén vissza true-ra allítani.

Üdv

József

 

 

 

Előzmény: tammmy4 (4561)
extekergo Creative Commons License 2006.11.28 0 0 4570
Ok! Megy.
Előzmény: Törölt nick (4569)
Törölt nick Creative Commons License 2006.11.28 0 0 4569

 

Készítettem egyet, ide elküldheted a fájlt:

 

djcarlos2@vipmail.hu

Előzmény: extekergo (4566)
Törölt nick Creative Commons License 2006.11.28 0 0 4568
Nekem is elszállt az a makró.
Előzmény: extekergo (4566)
Törölt nick Creative Commons License 2006.11.28 0 0 4567
Szervusz! Most éppen nincs publikus mailem, küldtem egy mail-t már a tommyinak, úgyhogy ő tudná a címemet, de úgy látom neked sincs, pedig nekem is kéne az eredeti fájl. A gyorsításhoz mindenestre amit lehet ki kéne pakolni a cikllus elé.
Előzmény: extekergo (4566)
extekergo Creative Commons License 2006.11.28 0 0 4566
Helló!
Épp most reggel tudtam próbálgatni az eredeti tábláját, kiegészítve stromba makrójával. Persze a hivatkozásokat hozzáigazítottam a tom táblájához.
Hát működik is meg nem is. Úgy tünik sok a 8-61 ciklus. 8-18 ra állítva pedig szépen csinálja a számításokat, de a végén vagy elszáll (eltünik) az egész excel, vagy valami hibát ír. De ment már normálisan is. Hogy mi lehet?

Van publikus méled? Elküldeném akár most. Egy órát itt ülök a gép előtt...
Előzmény: Törölt nick (4565)
Törölt nick Creative Commons License 2006.11.28 0 0 4565
Ha még mindig nem menne, akkor küld el nyugodtan a fájlt. 
Előzmény: tammmy4 (4561)
toccata Creative Commons License 2006.11.27 0 0 4564
Mégegy megoldás a feltételes formázással:
A1 cella tartalmazza a keresett összeget. Alatta és mellette pedig a számsorozat.
A táblázat többi cellája üres, csak feltételes formázásnál a képletet kell választani és a megjegyzésben látható képletet kell beírni. Húzással vagy ecsettel a többi cellára is rámásolni.
Így azok a számok érdekesek, amelyek a zöld színű cellák sorának illetve oszlopának elején találhatóak.

Előzmény: Fatimia (4528)
stromba Creative Commons License 2006.11.27 0 0 4563

 

Azt hiszem ezt kerested:

 

Option Explicit


Sub Szamol()
'
' Szamol Makró
'
'
Dim i As Byte
For i = 8 To 61

    SolverAdd CellRef:=Cells(i, 7), Relation:=3, FormulaText:="0,000001"
    SolverOk SetCell:=Cells(i, 8), MaxMinVal:=2, ValueOf:="0", ByChange:=Cells(i, 7)
    SolverSolve UserFinish:=True

Next i

End Sub

Előzmény: tammmy4 (4561)
Törölt nick Creative Commons License 2006.11.27 0 0 4562
Ez hataaalmaaaasjóóóóóó. Nem értem hogy működik, de addig nem nyugszom, míg ki nem bogozom
Előzmény: Jozsef (4559)
tammmy4 Creative Commons License 2006.11.27 0 0 4561
Nekem sehogy sem akar sikerülni ez a makrós dolog. Már feladtam. Esetleg ha valaki tud segítsen!
Egy cellára a kódom a következő:

Sub Szamol()
'
' Szamol Makró
'
'
SolverOk SetCell:="$H$8", MaxMinVal:=2, ValueOf:="0", ByChange:="$G$8"
SolverDelete CellRef:="$G$8", Relation:=3, FormulaText:="0,000001"
SolverAdd CellRef:="$G$8", Relation:=3, FormulaText:="0,000001"
SolverOk SetCell:="$H$8", MaxMinVal:=2, ValueOf:="0", ByChange:="$G$8"
SolverSolve
End Sub

A képlet amivel számol a H8 cellában van és a következő:
ABS(1/GYÖK(G8)+2*LOG10(2,51/(C8*GYÖK(G8))+($B$3/$B$2)/3,71))
A H8 cella a célcella, a módosuló cella a G8, a korlátozó feltétel pedig, hogy G8>=0,00001.
A számolás a 8. sortól a 61. sorig kellene elvégezni. A C oszlop értéke mindig az aktuális sorhoz tartozó értékek.
Vagy, ha valakinek könnyebb akkor a file- t is elküldhetem.
Előzmény: Törölt nick (4551)
Jozsef Creative Commons License 2006.11.27 0 0 4560
A képek tördelése nem túl sikeres volt, az első Solver kép az a. rész, a második a b. részt megoldó beállítás. 
Előzmény: Jozsef (4559)
Jozsef Creative Commons License 2006.11.27 0 0 4559

Szia!

 

Általánosságban a feladatod az optimumszámítás egyik szép alapfeladata az ún. hátizsák-probléma módosított változata.

Legyen az a vektor a számsorozatod, k a kívánt összeg, egy olyan x vektort kell keresned, ahol az xi-k 1 vagy 0 értéket vehetnek fel (attól függően, hogy az ai-t kiválasztjuk-e az összegzésben vagy nem), ekkor  ax=k (a és x skaláris szorzata=k) egyenletet kell megoldanod.

Ha ezen még tovább kell finomítanod, akkor x vektorra további feltételeket kell megadnod pl.:

a.  a legtöbb egymás utáni szám legyen kiválasztva

b. legkevesebb szám kiválasztásával érjed el a megoldást.

 

Erre pedig tökéletes a Solver.

Az ábrán sárga a számsorozat, zöld az x (ahol a megoldást kapod), a világoskék mező egy segédoszlop, amiben az van, ha egymás utániak vannak kiválasztva az aktuális érték eggyel nő, ha nem, lenullázódik). A szükséges képletek az ábráról leolvashatóak (a kívánt összeg 5).

 

 

a. megoldása

 

 

b. megoldása

 

 

Üdv

József

Előzmény: Fatimia (4528)
extekergo Creative Commons License 2006.11.27 0 0 4558
Na ismét meg kellett vele kínálni. Már jó. De hogy hová tünt az első kipipálás után?

Még egyszer köszi. Később gyötörni fogom ezt a dolgot. Most el. :)
Előzmény: extekergo (4557)
extekergo Creative Commons License 2006.11.27 0 0 4557
A fenébe! Csak nem megy. Hibával leáll a makró, ami a solvert futtatná.
Előzmény: Törölt nick (4556)
Törölt nick Creative Commons License 2006.11.27 0 0 4556
Nálam is máshol volt, de rákerestem. Tőbb több helyen is megtalálta.
Előzmény: extekergo (4555)
extekergo Creative Commons License 2006.11.27 0 0 4555
Köszi. Meg van.
Igaz az én gépemen itt találtam: c:Program FilesMicrosoft OfficeOfficeMakroSolverSOLVER.XLA
Előzmény: Törölt nick (4554)
Törölt nick Creative Commons License 2006.11.27 0 0 4554

 

Browse-olni kell ha nem látszik:

 

"Note If you do not see Solver.xls in the Available References list, click Browse. In the Add Reference dialog box, locate and select the Solver.xla file, and then click Open. The Solver.xla file is typically found in the C:Program FilesMicrosoft OfficeOfficeLibrarySolver subfolder."

Előzmény: extekergo (4553)
extekergo Creative Commons License 2006.11.27 0 0 4553
"A feljövő Vb ablakban a Tools references-ben solver.xls bejelölése szükséges lehet a makróhoz"
Mondjátok meg nekem, vaksi vagyok, hogy ebben a listában nem látom a solver.xls szöveget, vagy nincs talán a gépemen telepítve?



Melyik lehet a hozzá tartozó fájl?

Segítsetek, szeretném kipróbálni, buherálni ezt a solver futtrató makrót.
Előzmény: Törölt nick (4552)
Törölt nick Creative Commons License 2006.11.27 0 0 4552

 

Parancsgomb a munkalapra a makró indításához:

Ha nem látszik a Vezérlők eszköztára akkor a Nézet -Eszköztárak -vezérlő eszköztárat bejelölni.

A megjelenő vezérlő eszköztárról a Parancsgom ikont lenyomva felrajzolható  a munkapalra.

Parancsgomb jobb kattintás-Tulajdonságok, itt a  Caption mezőben : ide a felirat.

Parancsgomb jobb kattintás Kód megjelenítése: ide  a makró kód.

(A feljövő Vb ablakban a Tools references-ben solver.xls bejelölése szükséges lehet a makróhoz.)

Előzmény: tammmy4 (4549)
Törölt nick Creative Commons License 2006.11.27 0 0 4551

Ez nálam műkszik már.

 

A teszteléshez az alábbiakat megadva a munkalapon:

 

A2 mező elnevezve y-nak

B2 mező: z-nek elnevezve.

A C2 mezőben a képlet:
=ABS(1/GYÖK(z)+2*LOG10(2,51/(y*GYÖK(z))+0,4/15*0,269))

 

( azaz az egyenlet két oldala klölnbségének abszolút értéke, ezt minimalizálja a solver.

bemenet y, keresett: z. Amely (y,z) párokra teljesül az egyenlet.

 

Az y- értékek az a2 cella alat adandók meg. (pozitív értékek, a képlet miatt)

(A z-re szintén pozitív érték fogadható el csak)

itt most a tesztelés miatt 10 értéket kell megadni y-ra.

Az a2 és b2 celákban számol, és visszaír az aktuális sorba.

Ha szükséges a solver pontossági beállításait is lehetne módosítani.

Itt a makró:

 

Sub Rögzítés2()
'
  SolverReset
  SolverAdd CellRef:="$B$2", Relation:=3, FormulaText:="0,0001"
  For i = 3 To 13
 
    Range("A2").Value = Cells(i, 1)
    Range("B2").Value = 1
    SolverOk SetCell:="$C$2", MaxMinVal:=2, ValueOf:="0", ByChange:="$B$2"
    SolverSolve UserFinish:=True
    Cells(i, 2).Value = Range("B2").Value
  ' Finish and discard the final results.
    SolverFinish KeepFinal:=2
 
  Next i
   
End Sub

 

Előzmény: tammmy4 (4549)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!