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

[Excel] Automatizacija kopiranje tabele

[es] :: Office :: Excel :: [Excel] Automatizacija kopiranje tabele

[ Pregleda: 5921 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mirko1949
Miroslav Magdić
Kragujevac

Član broj: 87134
Poruke: 216
..ava-automobili.netpro.co.yu.



+2 Profil

icon [Excel] Automatizacija kopiranje tabele20.02.2007. u 08:45 - pre 208 meseci
Imam postojecu ogromnu tabelu sa podacima:
Kol A - Sifra, Kol B - Koicina, Kol C do F - vreme u zavisnosti od vrste rada
Hteo bih ove podatke iskopirati u novu tabelu tako da ima sledece podatke:
Kol A - Sifra, Kol B - Koicina, Kol D - vreme
Vrednosti iz kolone A i B se ponavljaju (4 puta) - toliko ima vrsta radova


Prikačeni fajlovi
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2268
212.200.27.*

Sajt: www.gowi.rs


+109 Profil

icon Re: [Excel] Automatizacija kopiranje tabele21.02.2007. u 07:52 - pre 208 meseci
Ako je ovo samo jednokratan postupak verovatno je lakše kopirati kombinujući formule i copy/paste bez obzira na veličinu broj redova, nego pisati i testirati program. Ipak, pošto mi se primer čini jednostavan i ilustrativan i za ostale koji žele da nauče rad sa makroima, evo kako bi to moglo da se uradi. (Zato i malo više objašnjenja)
Osnovni način pristupa ćeliji iz programa je koristeći Range objekat radnog lista npr. za ćeliji B7 na radnom listu 1 može se postaviti vrednost "Test"
Code:
Sheets(1).Range("B7").Value = "Test" 

Umesto konkretnog broja (ili naziva) lista može se koristiti ActiveSheet da se referencija na aktivni list. Slično koristi se ActiveWorkbook da se referencira na aktivnu radnu svesku ukoliko ima više otvorenih. Drugi način je koristeći Cells objekat radnog lista. Za isti primer:
Code:
Sheets(1).Cells(7,2).Value = "Test" 


Ovaj metod koristi broj reda i kolone ćelije pa je pogodniji kada se više ćelija popunjavaju jedna za drugom u nekoj programskoj petlji. Taj način korišćen je i u kopiranju koje si ti tražio. U ovom slučaju korišćeno je dve petlje - jedna koja ide po redovima izvorne tabele i druga koja za isti red izvorne tabele prepisuje vrednosti iz četiri kolona.
Code:

Sub Prepis()
' Primer prepisivanja sadrzaja
' sa jednog lista na drugi
'
' P.Jovanovic za elitesecurity.org
'
'
Dim shSource As Worksheet
Dim shDest   As Worksheet
Dim rw As Long            ' brojac redova izvorne tabele
Dim rwEnd As Long
Dim r As Long              ' brojac redova odredisne tabele
Dim i As Integer
' Inicijalizacije
Set shSource = ActiveWorkbook.Sheets(1) ' list sa izvornim podacima
Set shDest = ActiveWorkbook.Sheets(3)   ' list sa prepisanim podacima
' Odredjivanje poslednjeg reda u izvornoj tabeli
rwEnd = shSource.Range("A65535").End(xlUp).Row
r = 2 ' Pocetni red za upis u odredisni list
' Glavna petlja
For rw = 3 To rwEnd
    For i = 1 To 4
       shDest.Cells(r, 1).Value = shSource.Cells(rw, 1).Value
       shDest.Cells(r, 2).Value = shSource.Cells(rw, 2).Value
       shDest.Cells(r, 3).Value = shSource.Cells(2, i + 1).Value
       shDest.Cells(r, 4).Value = shSource.Cells(rw, i + 2).Value
       r = r + 1 ' Sledeci red za upis
    Next i
Next rw
End Sub

Interesantno je i određivanje poslednjeg reda izvorne tabele za prepis, za šta objašnjenje možeš potražiti na sajtu praktikuma http://www.praktikum.co.yu/office/excel/xl_041.htm


[Ovu poruku je menjao Jpeca dana 21.02.2007. u 14:44 GMT+1]
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

mirko1949
Miroslav Magdić
Kragujevac

Član broj: 87134
Poruke: 216
..ava-automobili.netpro.co.yu.



+2 Profil

icon Re: [Excel] Automatizacija kopiranje tabele21.02.2007. u 10:17 - pre 208 meseci
Hvala na odgovoru, ali nisam uspeo da do kraja resim problem.
Naime, potrebno je da kolona B - kolicina ostane i dalje kao kolona (kolicina se ponavlja isto toliko puta kao i sifra - kolona A). Potrebno je da u odredisnoj tabeli vrednosti prate nazive kolona iz izvorne tabele, koji su ovde redovi (kako je dato u prikacenom primeru - Sheet2.)
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2268
212.200.27.*

Sajt: www.gowi.rs


+109 Profil

icon Re: [Excel] Automatizacija kopiranje tabele21.02.2007. u 13:47 - pre 208 meseci
Izmenio sam kod greška je bila u redu
Code:
shDest.Cells(r, 2).Value = shSource.Cells(2, i + 1).Value 

koji je upisiuje sadržaj u kolonu 2, umesto u kolonu 3

Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

[es] :: Office :: Excel :: [Excel] Automatizacija kopiranje tabele

[ Pregleda: 5921 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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