Makro kopira ob pogoju
Makro kopira ob pogoju
Lep pozdrav
Že dlje časa se mučim z eno zadevo in sicer moj problem je naslednji :
imam excelov model s katerim generiram različne scenarije ki imajo v celicah a18: a27 napisane imena sestavin katere uporabljam, v celicah b18:b27 pa se nahajajo količine ki so potrebne. Ko je scenarij izbran mu določim zaporedno številko (1,3,5,...23) in ga kopiram na mesto kjer so zbrani scenariji, tam so zgolj imena v sestavin v območju a36:l36 se nahajajo imena sestavin v vrstici spoda a37:l37 pa količine.
S pomočjo funkcij izberem scenarij ki je naujustreznejši.
Kje je moja težava: funkcije so mi izračunale da je recimo naujstreznejši scenarij št:9 in zdaj bi rad da mi makro skopira območje obeh vrstic scenarija 9 in sicer v območje stolpca a18:a27 in količine v območje stolpca b18:b27 da ga lahko natisnem.
Kako bi rešil moj problem ?
hvala in lp!
Že dlje časa se mučim z eno zadevo in sicer moj problem je naslednji :
imam excelov model s katerim generiram različne scenarije ki imajo v celicah a18: a27 napisane imena sestavin katere uporabljam, v celicah b18:b27 pa se nahajajo količine ki so potrebne. Ko je scenarij izbran mu določim zaporedno številko (1,3,5,...23) in ga kopiram na mesto kjer so zbrani scenariji, tam so zgolj imena v sestavin v območju a36:l36 se nahajajo imena sestavin v vrstici spoda a37:l37 pa količine.
S pomočjo funkcij izberem scenarij ki je naujustreznejši.
Kje je moja težava: funkcije so mi izračunale da je recimo naujstreznejši scenarij št:9 in zdaj bi rad da mi makro skopira območje obeh vrstic scenarija 9 in sicer v območje stolpca a18:a27 in količine v območje stolpca b18:b27 da ga lahko natisnem.
Kako bi rešil moj problem ?
hvala in lp!
Re: Makro kopira ob pogoju
Ne ve, če sem tole sploh prav razumel.
Če imate scenarij vedno v celicah od A36 do L37 in bi morali te skopirati v celice od A18 do B27 (tukaj se vam ne ujema število celic; 24 in 20), potem vam to napravi tale makro:
Če pa ni v redu, pa malo bolj razložite celo stvar; kje je sploh ta scenarij, je vsa stvar na enem listu ali kako drugače. Vse skupaj se mi zdi malo nerazumljivo.
Če imate scenarij vedno v celicah od A36 do L37 in bi morali te skopirati v celice od A18 do B27 (tukaj se vam ne ujema število celic; 24 in 20), potem vam to napravi tale makro:
Koda: Izberi vse
Sub Prekopiraj_scenarij()
Range("A36:L37").Select
Selection.Copy
Range("A18").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
Range("A1").Select
End Sub
lp,
cedra
cedra
Re: Makro kopira ob pogoju
Sem prebral vprašanje večkrat pa ne vidim povezave med scenariji in ostalim?
Pravite, da imate sestavine od A18-A27 in zraven ustrezne količine B18-B27.
Enako imate spet sestavine v A36 - L36 in pripadajoče količine v A37-L37.
Kje so tu kakšni scenariji, kje je zapisan scenarij 9 in kje npr. scenarij 5? Kam naj se torej kaj kopira?
Ah, me je cedra prehitel .. Upam da vas je on pravilno razumel in vam podal rešitev...
Pravite, da imate sestavine od A18-A27 in zraven ustrezne količine B18-B27.
Enako imate spet sestavine v A36 - L36 in pripadajoče količine v A37-L37.
Kje so tu kakšni scenariji, kje je zapisan scenarij 9 in kje npr. scenarij 5? Kam naj se torej kaj kopira?
Ah, me je cedra prehitel .. Upam da vas je on pravilno razumel in vam podal rešitev...
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Makro kopira ob pogoju
Zdravo mogoče sem bil malo nejasen,...
Tole kodo že uporabljam za kopiranje scenarija na drugo mesto v istem delovnem listu. in sicer nad vnosnimi polji ki so med a18-a27 imam v celici a17 številko scenarija (1,3,5,7,9,...do 23 vsako drugo številko uporabljam zaradi tega ker scenarij obsega 2 vrstici kamor kopiram, mogoče bi se dalo rešit, )
Skopirat vem z makrom podatke in ga uporabljam tudi z podobno formulo kot je cedra navedel, zdaj bi rad da bi rad te iste podatke ki so v naboru teh 23 številk scenarijev skopiral nazaj tja kje so vnosna polja. Nabor scenarijev se nahaja v območju a36:l59 in sicer vsaki 2 vrstici ima en scenarij v prvi vrstici so imena sestavin v drugi vrstici pa količine.
Z funkcijo izberem scenarij ki je najugonejši recimo da je tokrat 9 kjer se v območju a44 nahaja ime scenarija 9, v območju b44: l44 so imena sestavin v v vrstici pod pa še količine v območju b45:l45 in vsaki izmed 23 scenarijev je zgrajen na isti princip.
rad bi skopiral scenarij ki je trenutno najugodnejši tokraj je shranjen pod številko 9 nazaj tja kjer so vnosna polja in sicer od a18:a27 prva vrstica - sestavine in b18-b27 kjer je druga vrstica in so količine
Poskušal sam z tole rešitvijo, da sem scenariju ki ustreza pogojem da je najugodnejši dodal polje true, ostali so false, zdaj bi rad samo makro ki kopira izbrano območje 2 vrstic kateri ima trenutno polje true (trenutno je to scenarij 9) v dva stolpca in sicer imena ki so v prvi vrstici v stolpec a18:a27, količine pa v b18:b27.
Moje znanje je preskromno da bi kodo napisal sam, poznam način, ki bi bil naelegantnejši in sicer da mako kopira 2vrstici najugodnejšega scenarija v 2 stolpca ob pogoju če ima scenarij oznako true, kar pomeni da je pogoj izpolnjen,
Najlepša hvala ob pomoči !
Tole kodo že uporabljam za kopiranje scenarija na drugo mesto v istem delovnem listu. in sicer nad vnosnimi polji ki so med a18-a27 imam v celici a17 številko scenarija (1,3,5,7,9,...do 23 vsako drugo številko uporabljam zaradi tega ker scenarij obsega 2 vrstici kamor kopiram, mogoče bi se dalo rešit, )
Skopirat vem z makrom podatke in ga uporabljam tudi z podobno formulo kot je cedra navedel, zdaj bi rad da bi rad te iste podatke ki so v naboru teh 23 številk scenarijev skopiral nazaj tja kje so vnosna polja. Nabor scenarijev se nahaja v območju a36:l59 in sicer vsaki 2 vrstici ima en scenarij v prvi vrstici so imena sestavin v drugi vrstici pa količine.
Z funkcijo izberem scenarij ki je najugonejši recimo da je tokrat 9 kjer se v območju a44 nahaja ime scenarija 9, v območju b44: l44 so imena sestavin v v vrstici pod pa še količine v območju b45:l45 in vsaki izmed 23 scenarijev je zgrajen na isti princip.
rad bi skopiral scenarij ki je trenutno najugodnejši tokraj je shranjen pod številko 9 nazaj tja kjer so vnosna polja in sicer od a18:a27 prva vrstica - sestavine in b18-b27 kjer je druga vrstica in so količine
Poskušal sam z tole rešitvijo, da sem scenariju ki ustreza pogojem da je najugodnejši dodal polje true, ostali so false, zdaj bi rad samo makro ki kopira izbrano območje 2 vrstic kateri ima trenutno polje true (trenutno je to scenarij 9) v dva stolpca in sicer imena ki so v prvi vrstici v stolpec a18:a27, količine pa v b18:b27.
Moje znanje je preskromno da bi kodo napisal sam, poznam način, ki bi bil naelegantnejši in sicer da mako kopira 2vrstici najugodnejšega scenarija v 2 stolpca ob pogoju če ima scenarij oznako true, kar pomeni da je pogoj izpolnjen,
Najlepša hvala ob pomoči !
Re: Makro kopira ob pogoju
Uf, za razumevanje tega pa sem moral tekst prebrati 3x Ampak OK – sedaj mi je jasno kaj želite in sedaj ste tudi opisali, kje so ti scenariji shranjeni… Nahajajo se od vrstice 36 dalje… In to je ja idealno, zakaj bi se trudil človek z iskanjem scenarija preko nete TRUE/False spremenljivke, če pa je vrstico scenarija trivialno najti!! Vsak scenarij se nahaja v vrstici
To je vse kar človek potrebuje. No in sedaj je potrebno samo še prekopirati 10 podatkov iz te in iz naslednje vrstice v koloni A in B od vrstice 18 dalje. Torej:
Če želite kopirati scenarij 9 pokličete
Oziroma v vašem primeru je številka scenarija zapisana v celic A17, zato lahko napišete makro, ki številko scenarija prebere iz celice A17:
Ko torej imate številko scenarija v A17 izvedete makro KopirajScenarijIzA17 in viola...
Koda: Izberi vse
vrstica scenarija = 35 + oznaka scenarija
Koda: Izberi vse
'
' www.matjazev.net
' januar 2011
'
Sub KopirajScenarij(scenarij As Integer)
Dim vrsticaScenarija As Integer
vrsticaScenarija = 35 + scenarij
Dim i As Integer
For i = 1 To 10
Cells(17 + i, 1) = Cells(vrsticaScenarija, i)
Cells(17 + i, 2) = Cells(vrsticaScenarija + 1, i)
Next
End Sub
Koda: Izberi vse
KopirajScenarij 9
Koda: Izberi vse
Sub KopirajScenarijIzA17()
KopirajScenarij Range("a17")
End Sub
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Makro kopira ob pogoju
Zdravo saj vem, da velikokrat zakomplicirano povem kaj mislim,...
te kode niso ustvarjene za comand button ?
ker se že cel dan mučim in mi nikakor ne uspe,.... je prvi stavek v rdečem
no sam pa sem uspel napisati naslednjo kodo, ki mi skopira celotni scenarij v zato namenjeno območje če je true in imam samo samo ta en stavek za točno določeno vrstico .
Če pa naredim po istem principu za vse scenarije po vrsti, pa mi skopira samo iz tega scenarija ki je true samo prvo vrednost in prvo količino, ostalo pa pusti prazno - problem je verjetno v kodi ?
Ker se številka kateri scenarij je najugodnejši spreminja z dodajanjem novih scenarijev, se mi zdi da je to pot z true ali false kar dobra, sigurno se da to kodo kak poenostavljeno napisat, sam tega nevem.
Jaz sem si zamislil tale makro takole : funkcija ki določa scenarij ki je najcenejši je stalno v teku in s pomočjo match funkcije mi izpiše, da je najugodnejši, trenutno je to št. 7, potem sem pri vsakem scenariju kot izpeljava te funkcije dodal true - false območja (v kodi zgoraj so to m36, m38, m40,...vse do m58) , samo ena izmed teh (m) območij je lahko true, ostale so false. Trenutno je true območje samo zraven scenarija številka 7 ostali si false. Zdaj bi rad samo da mi makro skopira ti dve vrstici tega scenarija kjer je zraven true (prva so sestavine - druga so količine) na določeno mesto od a18 navzdol za prvo kolono in b18 za drugo vrstico.
Zgornja koda mi skopira samo prvo ime sestavine in količino, ostalo vrednosti se mi povozijo,.....
te kode niso ustvarjene za comand button ?
ker se že cel dan mučim in mi nikakor ne uspe,.... je prvi stavek v rdečem
no sam pa sem uspel napisati naslednjo kodo, ki mi skopira celotni scenarij v zato namenjeno območje če je true in imam samo samo ta en stavek za točno določeno vrstico .
Koda: Izberi vse
IF cell.m36 is false then do nothing'
'IF cell.m36 is a true then
stc = Excel.Range("m36").Value
Range("b36:l36").Select
Selection.Copy
Range("a19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A20").Select
tc = Excel.Range("m36").Value
Range("b37:l37").Select
Selection.Copy
Range("b19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("b20").Select
Če pa naredim po istem principu za vse scenarije po vrsti, pa mi skopira samo iz tega scenarija ki je true samo prvo vrednost in prvo količino, ostalo pa pusti prazno - problem je verjetno v kodi ?
Koda: Izberi vse
'IF cell.m36 is false then do nothing'
'IF cell.m36 is a true then
stc = Excel.Range("m36").Value
Range("b36:l36").Select
Selection.Copy
Range("a19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A20").Select
tc = Excel.Range("m36").Value
Range("b37:l37").Select
Selection.Copy
Range("b19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("b20").Select
'IF cell.m38 is false then do nothing'
'IF cell.m38 is a true then
stc = Excel.Range("m38").Value
Range("b38:l38").Select
Selection.Copy
Range("a19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A20").Select
tc = Excel.Range("m38").Value
Range("b39:l39").Select
Selection.Copy
Range("b19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("b20").Select
'IF cell.m40 is false then do nothing'
'IF cell.m40 is a true then
stc = Excel.Range("m40").Value
Range("b40:l40").Select
Selection.Copy
Range("a19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A20").Select
tc = Excel.Range("m40").Value
Range("b41:l41").Select
Selection.Copy
Range("b19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("b20").Select
'IF cell.m42 is false then do nothing'
'IF cell.m42 is a true then
stc = Excel.Range("m42").Value
Range("b42:l42").Select
Selection.Copy
Range("a19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A20").Select
tc = Excel.Range("m42").Value
Range("b43:l43").Select
Selection.Copy
Range("b19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("b20").Select
'IF cell.m44 is false then do nothing'
'IF cell.m44 is a true then
stc = Excel.Range("m44").Value
Range("b44:l44").Select
Selection.Copy
Range("a19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A20").Select
tc = Excel.Range("m44").Value
Range("b45:l45").Select
Selection.Copy
Range("b19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("b20").Select
'IF cell.m46 is false then do nothing'
'IF cell.m46 is a true then
stc = Excel.Range("m46").Value
Range("b46:l46").Select
Selection.Copy
Range("a19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A20").Select
tc = Excel.Range("m46").Value
Range("b47:l47").Select
Selection.Copy
Range("b19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("b20").Select
'IF cell.m48 is false then do nothing'
'IF cell.m48 is a true then
stc = Excel.Range("m48").Value
Range("b48:l48").Select
Selection.Copy
Range("a19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A20").Select
tc = Excel.Range("m48").Value
Range("b49:l49").Select
Selection.Copy
Range("b19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("b20").Select
'IF cell.m50 is false then do nothing'
'IF cell.m50 is a true then
stc = Excel.Range("m50").Value
Range("b50:l50").Select
Selection.Copy
Range("a19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A20").Select
tc = Excel.Range("m50").Value
Range("b51:l51").Select
Selection.Copy
Range("b19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("b20").Select
'IF cell.m52 is false then do nothing'
'IF cell.m52 is a true then
stc = Excel.Range("m52").Value
Range("b52:l52").Select
Selection.Copy
Range("a19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A20").Select
tc = Excel.Range("m52").Value
Range("b53:l53").Select
Selection.Copy
Range("b19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("b20").Select
'IF cell.m54 is false then do nothing'
'IF cell.m54 is a true then
stc = Excel.Range("m54").Value
Range("b54:l54").Select
Selection.Copy
Range("a19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A20").Select
tc = Excel.Range("m54").Value
Range("b55:l55").Select
Selection.Copy
Range("b19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("b20").Select
'IF cell.m56 is false then do nothing'
'IF cell.m56 is a true then
stc = Excel.Range("m56").Value
Range("b56:l56").Select
Selection.Copy
Range("a19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A20").Select
tc = Excel.Range("m56").Value
Range("b57:l57").Select
Selection.Copy
Range("b19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("b20").Select
'IF cell.m58 is false then do nothing'
'IF cell.m58 is a true then
stc = Excel.Range("m58").Value
Range("b58:l58").Select
Selection.Copy
Range("a19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("A20").Select
tc = Excel.Range("m58").Value
Range("b59:l59").Select
Selection.Copy
Range("b19").Select
ActiveCell.Offset(stc, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Range("b20").Select
Ker se številka kateri scenarij je najugodnejši spreminja z dodajanjem novih scenarijev, se mi zdi da je to pot z true ali false kar dobra, sigurno se da to kodo kak poenostavljeno napisat, sam tega nevem.
Jaz sem si zamislil tale makro takole : funkcija ki določa scenarij ki je najcenejši je stalno v teku in s pomočjo match funkcije mi izpiše, da je najugodnejši, trenutno je to št. 7, potem sem pri vsakem scenariju kot izpeljava te funkcije dodal true - false območja (v kodi zgoraj so to m36, m38, m40,...vse do m58) , samo ena izmed teh (m) območij je lahko true, ostale so false. Trenutno je true območje samo zraven scenarija številka 7 ostali si false. Zdaj bi rad samo da mi makro skopira ti dve vrstici tega scenarija kjer je zraven true (prva so sestavine - druga so količine) na določeno mesto od a18 navzdol za prvo kolono in b18 za drugo vrstico.
Zgornja koda mi skopira samo prvo ime sestavine in količino, ostalo vrednosti se mi povozijo,.....
Re: Makro kopira ob pogoju
Kaj je narobe s funkcijo, ki sem vam jo napisal?
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Makro kopira ob pogoju
Ko zaženem kodo iz gumba se ne zgodi nič, vse ostane tko kot je blo!
To je printscreen delovnega zvezka
v a17 je številka scenarija s pomočjo katere lahko skopiram sredstva v v koloni a18:a27 v prvo vrstico a36 se skopira ta ista številka scenarija od b36:l36, medtem ko se količine iz b18:b27 kopirajo v naslednjo vrstico pod se pravi b37:l37 in v vrsticah se nadaljuje tak kot je na sliki za naslednje scenarije
naslednji je scenarij št 3,5,7,9,.....
Postopek je tak: najprej kopiram z gumbom iz 2 kolon a in b 18:27 v vrstice b36:l36 b37:l37 in tako po vrsti navzdol, zdaj bi bilo potrebno nekak skopirati nazaj tisti scenarij ki je najugodnejši iz vrstice (trenutno je to 7-ka), v 2 koloni a in b, ker tam se dogajajo izračuni in s tistega območja lahko potem natisnem izdelan obrazec
scenarij ki je najugonejši je zapisan v celici O63
http://www.shrani.si/f/3W/xL/2jIofq4F/untitled.jpg
hvala za pomoč, lp
To je printscreen delovnega zvezka
v a17 je številka scenarija s pomočjo katere lahko skopiram sredstva v v koloni a18:a27 v prvo vrstico a36 se skopira ta ista številka scenarija od b36:l36, medtem ko se količine iz b18:b27 kopirajo v naslednjo vrstico pod se pravi b37:l37 in v vrsticah se nadaljuje tak kot je na sliki za naslednje scenarije
naslednji je scenarij št 3,5,7,9,.....
Postopek je tak: najprej kopiram z gumbom iz 2 kolon a in b 18:27 v vrstice b36:l36 b37:l37 in tako po vrsti navzdol, zdaj bi bilo potrebno nekak skopirati nazaj tisti scenarij ki je najugodnejši iz vrstice (trenutno je to 7-ka), v 2 koloni a in b, ker tam se dogajajo izračuni in s tistega območja lahko potem natisnem izdelan obrazec
scenarij ki je najugonejši je zapisan v celici O63
http://www.shrani.si/f/3W/xL/2jIofq4F/untitled.jpg
hvala za pomoč, lp
Re: Makro kopira ob pogoju
In kako izgleda ta koda iz gumba??Jozefv napisal/-a:Ko zaženem kodo iz gumba se ne zgodi nič, vse ostane tko kot je blo!
Če vam pomagam bova najhitreje prišla na cilj, če mi sledite in mi poveste, kaj točno vam pri mojem nasvetu ne deluje. Drugače lahko piševa po forumu malce vsak po svoje... Povejte torej kateri makro ste vi zapisali na gumb. Na gumb morate vezati makro KopirajScenarijIzA17 , seveda pa ta makro potrebuje tudi pomožno funkcijo, zato morate vi lepo v VBA urejevalnik skopirati sledeče:
Koda: Izberi vse
'
' www.matjazev.net
' januar 2011
'
Sub KopirajScenarij(scenarij As Integer)
Dim vrsticaScenarija As Integer
vrsticaScenarija = 35 + scenarij
Dim i As Integer
For i = 1 To 10
Cells(17 + i, 1) = Cells(vrsticaScenarija, i)
Cells(17 + i, 2) = Cells(vrsticaScenarija + 1, i)
Next
End Sub
Sub KopirajScenarijIzA17()
KopirajScenarij Range("a17")
End Sub
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Makro kopira ob pogoju
Pozdravljeni!
najlepša hvala na pomoči, zdaj ko sem po vašem nasvetu delal zadeva deluje, prej sem vse vaše kode skopiral v gumb in zato ni delovalo,...
Je možno da bi zadeva delovala tako: klinkem gumb Izberi scenarij
prvi msg box mi izpiše koliko stane najcenejši scenarij kliknem ok
drugi msg box mi izpiše kateri je najcenejši scenarij - kliknem ok
tretji msg box ki se zažene po drugem pa me vpraša če želim kopirati najustreznejši scenarij možnosti so yes no cancel
in ob potrditvi Yes bi se zagnal makro s katerim kopiram omenjeni scenarij
Koda za celotni postopek je spodaj - zgodi se pa tole da mi obarva rdeče Run"KopirajScenarij Range("O63") in pa napiše mi ali end of statement ali pa syntax error. - čeprav iz gumba zadeva super deluje, tudi vsi msg boxi delujejo, edino noče kopirati in pa obarva se rdeče!
oz sem spet narobe razvrstil kode,...
Najlepša hvala za pomoč pri kopiranju - če bi delovalo še tole je to bomba !
najlepša hvala na pomoči, zdaj ko sem po vašem nasvetu delal zadeva deluje, prej sem vse vaše kode skopiral v gumb in zato ni delovalo,...
Je možno da bi zadeva delovala tako: klinkem gumb Izberi scenarij
prvi msg box mi izpiše koliko stane najcenejši scenarij kliknem ok
drugi msg box mi izpiše kateri je najcenejši scenarij - kliknem ok
tretji msg box ki se zažene po drugem pa me vpraša če želim kopirati najustreznejši scenarij možnosti so yes no cancel
in ob potrditvi Yes bi se zagnal makro s katerim kopiram omenjeni scenarij
Koda za celotni postopek je spodaj - zgodi se pa tole da mi obarva rdeče Run"KopirajScenarij Range("O63") in pa napiše mi ali end of statement ali pa syntax error. - čeprav iz gumba zadeva super deluje, tudi vsi msg boxi delujejo, edino noče kopirati in pa obarva se rdeče!
oz sem spet narobe razvrstil kode,...
Najlepša hvala za pomoč pri kopiranju - če bi delovalo še tole je to bomba !
Koda: Izberi vse
'
' www.matjazev.net
' januar 2011
'
Sub KopirajScenarij(scenarij As Integer)
Dim vrsticaScenarija As Integer
vrsticaScenarija = 35 + scenarij
Dim i As Integer
For i = 1 To 10
Cells(16 + i, 1) = Cells(vrsticaScenarija, i)
Cells(16 + i, 2) = Cells(vrsticaScenarija + 1, i)
Next
End Sub
Sub KopirajScenarijIzO63()
KopirajScenarij Range("O63")
End Sub
Private Sub CommandButton6_Click()
MsgBox ("Najcenejši scenarij stane: " & _
Range("MINIMUM").Value & ".")
MsgBox ("Najustreznejši scenarij je št: " & _
Range("SCENARIJ").Value & ".")
Dim iReply As Integer
iReply = MsgBox(Prompt:="Želite kopirati najustreznejši scenarij ?", _
Buttons:=vbYesNoCancel, Title:="")
If iReply = vbYes Then
Run"KopirajScenarij Range("O63")
ElseIf iReply = vbNo Then
'Do Other Stuff
Else 'They cancelled (VbCancel)
Exit Sub
End If
End Sub
Re: Makro kopira ob pogoju
Pozdravljeni,
Mnogo manj "črnila" bi bilo prelitega , če bi mi že na začetku sledili
Vse vaše želje v zadnjem prispevku so seveda izvedljive, a kot sem omenil že v nekaterih drugih tematikah, vam z veseljem pomagam in dajem manjše nasvete. V kolkor pa potrebujete kaj več, pa vas moram preusmeritei na tole spletno stran.
Kar pa se tiče napake v programski kodi pa morate ukiniti tisti RUN; torej
Mnogo manj "črnila" bi bilo prelitega , če bi mi že na začetku sledili
Vse vaše želje v zadnjem prispevku so seveda izvedljive, a kot sem omenil že v nekaterih drugih tematikah, vam z veseljem pomagam in dajem manjše nasvete. V kolkor pa potrebujete kaj več, pa vas moram preusmeritei na tole spletno stran.
Kar pa se tiče napake v programski kodi pa morate ukiniti tisti RUN; torej
Koda: Izberi vse
' Namesto
Run"KopirajScenarij Range("O63")
' morate napisati
KopirajScenarij Range("O63")
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Makro kopira ob pogoju
To je to, zdaj je moj model popoln - najlepša hvala !