Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Excel] VBA Kopiranje

[es] :: Office :: Excel :: [Excel] VBA Kopiranje

[ Pregleda: 3192 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

chuPavi
Marko Lucic
Sys admin
Srbija

Član broj: 12811
Poruke: 76
*.ptt.yu.



Profil

icon [Excel] VBA Kopiranje08.11.2007. u 12:33 - pre 200 meseci
Excel fajl sa 7 sheetova. Iz svakog sheeta trebam da iskopiram odredjeni red u drugi excelov fajl tako da redovi budu jedan ispod drugog.

Dali moram da koristim Copy/Paste u VBA ili moze direkto da se dodeli vrednost po principu: "red u red" kao sto moze "celija u celiju" ?
Dali sheet u koji hoci da pasteujem mora da bude aktivan ili mogu da mu pristupim preko objekta ?
Dali promenljivoj mogu da dodelim vrednost odredjenog reda i ako moze kog tipa bi bila ta promenljiva. Verujem da mogu da dodelim adresu tj putanju pa onda sa .value da uradim nesto ...


Jel moze ovo da se skrati, tako sto necu aktivirati sheet nego mu samo pristupiti ?

Rows(rFoundCell.Row).Select
Selection.Copy
Windows("Stimulacije.xls").Activate
Worksheets("pomocna").Range("A4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

a posle ovoga bi morao da aktiviram sledeci sheet iz izvornog fajla pa onda paste u Range("a5") i tako 7 puta, kolko ima sheetova

 
Odgovor na temu

tomislavbo
Tomislav Bocevski
Skopje

Član broj: 73821
Poruke: 42
62.162.135.*

Sajt: majorgenks.page.tl


Profil

icon Re: [Excel] VBA Kopiranje08.11.2007. u 12:40 - pre 200 meseci
Jedno malo Makro moze da resi ovo. !!

Macro1
=ACTIVATE("BOOK1.XLS")
=WORKBOOK.SELECT("1";"1")
=SELECT("R1")
=COPY()
=ACTIVATE("BOOK2.XLS")
=SELECT("R2")
=PASTE()
=ACTIVATE("BOOK1.XLS")
=WORKBOOK.SELECT("2";"2")
=SELECT("R2")
=COPY()
=ACTIVATE("BOOK2.XLS")
=SELECT("R3")
=PASTE()
........
.....
...
itd





=RETURN()



[Ovu poruku je menjao tomislavbo dana 08.11.2007. u 13:51 GMT+1]

[Ovu poruku je menjao tomislavbo dana 08.11.2007. u 13:57 GMT+1]
 
Odgovor na temu

chuPavi
Marko Lucic
Sys admin
Srbija

Član broj: 12811
Poruke: 76
*.ptt.yu.



Profil

icon Re: [Excel] VBA Kopiranje08.11.2007. u 14:22 - pre 200 meseci
Tako sam ga i ja napravio, hteo bih malo da ga optimizujem.
Najpre bih da izbacim to "aktiviranje" sheetova.
 
Odgovor na temu

chuPavi
Marko Lucic
Sys admin
Srbija

Član broj: 12811
Poruke: 76
*.ptt.yu.



Profil

icon Re: [Excel] VBA Kopiranje09.11.2007. u 08:38 - pre 200 meseci
Ovo sam danas, iz cuga, iskopao na googletu.

Rows(X).Copy Destination:=TargetSheet.Rows(X)

Mislim da ce mi odraditi posao.
 
Odgovor na temu

chuPavi
Marko Lucic
Sys admin
Srbija

Član broj: 12811
Poruke: 76
*.ptt.yu.



Profil

icon Re: [Excel] VBA Kopiranje09.11.2007. u 13:11 - pre 200 meseci
I opet se sam dopunjujem.

Igrao sam se sa:
Rows(X).Copy Destination:=TargetSheet.Rows(X)
i shvatio da ne umem da ga nateram da kopira samo value; paste special/value

Pa sam pribegao drugoj taktici posto mi, ko za inat, bas treba paste values :

Workbooks("Book6").Sheets("Sheet1").Rows(1).Value = Rows(rFoundCell.Row).Value

 
Odgovor na temu

chuPavi
Marko Lucic
Sys admin
Srbija

Član broj: 12811
Poruke: 76
*.ptt.yu.



Profil

icon Re: [Excel] VBA Kopiranje09.11.2007. u 15:12 - pre 200 meseci
I na kraju to ovako izgleda:

Code:
Sub stimulacije()
Dim lCount As Long
Dim rFoundCell As Range
Dim TrazenaVrednost As String
Dim WkSht As Worksheet
Dim j As Integer

TrazenaVrednost = InputBox("Unesite sifru")
j = 4 '
   
   For Each WkSht In Worksheets
        WkSht.Activate
            Set rFoundCell = Range("b1")
             If WorksheetFunction.CountIf(Columns(2), TrazenaVrednost) > 1 Then MsgBox ("Dve vrednosti u jednom sheetu, neko ima pogresnu sifru")
                    Set rFoundCell = Columns(2).Find(What:=TrazenaVrednost, After:=rFoundCell, _
                       LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, _
                       SearchDirection:=xlNext, MatchCase:=False)
             'Rows(rFoundCell.Row).copy Destination:=Workbooks("Stimulacije.xls").Sheets("Pomocna").Rows(j)
             Workbooks("Stimulacije.xls").Sheets("Pomocna").Rows(j).Value = Rows(rFoundCell.Row).Value
j = j + 1
    Next
End Sub

Jos mi je samo ostalo da resim stampanje. Dokument Stimulacije je pripremljen za stampu.
Ova funkcija radi "nesto" cak i ako predhodno ne otvorim dokument Stimulacije, ali ne znam dal stvarno iskopira redove.
Dakle , poslednji korak, kako da stampam zatvoreni dokument ?
Dal predhodno moram da ga otvorim ?
 
Odgovor na temu

[es] :: Office :: Excel :: [Excel] VBA Kopiranje

[ Pregleda: 3192 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.