..|| Blog || Produkti/Storitve || MExcel || MDodatki || 300 nasvetov ||..

makro, ki kopira iz večjega števila vrstic po 1 na enkrat

Pomoč pri izdelavi makrov

makro, ki kopira iz večjega števila vrstic po 1 na enkrat

OdgovorNapisal/-a Jozefv » Ne nov 08, 2015 6:04 pm

Pozdravljeni

imam naslednji problem in sicer sem generiral vseh 8568 možnih kombinacij, katere imam na delovnem listu ''Kombinacije'' v vrsticah od 1-8568 in stolpcih od A -E. Zdaj bi pa želel, da mi makro kopira po 1 vrstico na enkrat na drugi delovni list, kjer bi se zagnali drugi makri, ki jih mam napisane. En makro s izračuna kombinacijo, drugi pa kopira rešitve v bazo podatkov in tako gre spet nazaj na list kombinacije, kjer izbere naslednjo vrstico in tako vrti model do konca seznama.

Razmišljal sem v tej smeri, da se vedno zgornja vrstica na delovnem listu ''kombinacije'' izbriše in se tako seznam z vsakim krogom zmanjša, vendar je problem, ker ne znam narediti te zanke, ki bi vrtela vse skup.

Posnel sem makro ki kopira to zgornjo vrstico iz lista ''kombinacije'' na list kjer potekajo izračuni dlje pa ne znam, zato se obračam na vas če mi lahko kako pomagate ?

Lep pozdrav


Koda: Izberi vse
Sheets("Kombinacije").Select
    Range("A1:E1").Select
    Selection.Copy
Sheets("Racun").Select
    Range("B4").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Sheets("Kombinacije").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlUp
Jozefv
 
Prispevkov: 14
Pridružen: Ne mar 28, 2010 12:36 pm



Matjazev.NET
 

Re: makro, ki kopira iz večjega števila vrstic po 1 na enkra

OdgovorNapisal/-a admin » Po nov 09, 2015 8:43 am

Pozdravljeni,

Podoben problem sva reševala že v tejle tematiki. Tam sem vam tudi napisal kodo za kopiranje in morate jo samo malce prirediti pa bo.
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3524
Pridružen: Sr jul 20, 2005 10:06 pm

Re: makro, ki kopira iz večjega števila vrstic po 1 na enkra

OdgovorNapisal/-a Jozefv » To nov 17, 2015 8:43 pm

Pozdravljeni, nekak mi je uspelo, da ob enem še zažene excelovega reševalca in reši vsak primer posebej, vendar mi ne uspe z kodo, da bi to rešitev kopiral. Dosedaj sem to počel z dvema gumboma, en je dodelil posameznemu scenarijo številko na podlagi katere je drugi kopiral rešitev na drugo mesto. Sedaj pa mi ne uspe vezati obeh da bi potekalo avtomatsko.


Na listu kombinacije je 8568 kombinacij, katere mi makro kopira 1 po 1 in zažene reševalca in reši problem. Želel bi samo še rezultat vsake od teh vrstic kopirat v neko vrstico. Kopirat pa moram celice b4:b8 ; i4:i8 in c14:c18 tako, da mam rezultate teh 3 obsegov celic zapisane v teh 8568 vrsticah

Koda: Izberi vse
Private Sub CommandButton13_Click()
Dim i As Integer
For i = 1 To 8568
Sheets("kombinacije").Range("B" & i & ":e" & i).Copy
Range("B4").PasteSpecial xlPasteValues, Transpose:=True
Application.CutCopyMode = False
SolverReset
SolverOk SetCell:="$K$3", MaxMinVal:=1, ValueOf:=0, ByChange:="$I$4:$I$8", _
        Engine:=1, EngineDesc:="GRG Nonlinear"
    SolverSolve UserFinish:=True



Prej sem delal tako, da sem gumbu dodelil makro, ki pomika števila naprej

Koda: Izberi vse
Sub GOR()
Dim intDV As Integer
Dim ws As Worksheet
Dim c As Range
Dim rngList As Range

Set ws = Sheets("1 leto")
Set c = ws.Range("a17")
Set rngList = ws.Range("ŠTEVILA ")
intDV = 0
On Error Resume Next
intDV = Application.WorksheetFunction.Match(c.Value, rngList, 0)

If intDV = 0 Or intDV = 1 Then
  c.Value = rngList.Cells(rngList.Rows.Count, 1)
Else
  c.Value = rngList.Cells(intDV - 1, 1)
End If
End Sub



Ta makro pa kopira

Koda: Izberi vse
stc = Excel.Range("I2").Value
    stc = Excel.Range("I2").Value
   
    Range("B4:B8").Select
    Selection.Copy
    Range("B47").Select
    ActiveCell.Offset(stc, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
    Range("B47").Select
   
   Range("i4:i8").Select
    Selection.Copy
    Range("f47").Select
    ActiveCell.Offset(stc, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
    Range("f47").Select

  Range("c14:c18").Select
    Selection.Copy
    Range("l47").Select
    ActiveCell.Offset(stc, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
    Range("l47").Select
Jozefv
 
Prispevkov: 14
Pridružen: Ne mar 28, 2010 12:36 pm

Re: makro, ki kopira iz večjega števila vrstic po 1 na enkra

OdgovorNapisal/-a admin » Sr nov 18, 2015 8:59 am

Pozdravljeni,

Če vas razumem pravilno želite poklicati kopiranje po tistem, ko se 'Reševalec' izvede. Če je temu tako, morate zadji makro pač poimenovati, npr. Kopiraj in potem ta makro poklicati po zaključku reševalca:
Koda: Izberi vse
Private Sub CommandButton13_Click()
.....
  SolverReset
  SolverOk SetCell:="$K$3", MaxMinVal:=1, ValueOf:=0, ByChange:="$I$4:$I$8", Engine:=1, EngineDesc:="GRG Nonlinear"
  SolverSolve UserFinish:=True

  Kopiraj
......
End sub
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3524
Pridružen: Sr jul 20, 2005 10:06 pm

Re: makro, ki kopira iz večjega števila vrstic po 1 na enkra

OdgovorNapisal/-a Jozefv » Pe nov 20, 2015 7:24 pm

Hvala
Jozefv
 
Prispevkov: 14
Pridružen: Ne mar 28, 2010 12:36 pm


Vrni se na VBA

Kdo je prisoten

Po forumu brska: 0 registriranih uporabnikov in 1 gost

cron