Problem koji si ti naveo javlja se kao posledica aktiviranja jednog pa drugog lista. Da bi ponovo aktivirao prvi list na kraju koda napiši:
Code:
Sheets("nalog").Select
Iako kod radi u njemu ima puno nedostataka koje ti navodim.Da se ne bi stalno ponavljali pogledaj
http://www.elitesecurity.org/t287256-0#1734021 tačku 2 i 3. U kodu nemaš komentara, pa je teško da se protumači šta si hteo da uradiš. Takođe i dalje koristiš referncu G13:M13 umesto samo G13 - pa i to otežava praćenje koda. Elem kod koji si napisao
Code:
Range("b5").Select
Do
If IsEmpty(ActiveCell) = False Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
Pozicionira se na prvu praznu ćeliju u koloni B. Umesto petlje mnogo je efikasnije koristiti pozicioniranje "od kraja" tabele - formula koja je više puta navedena na ovom formum (npr.
http://www.elitesecurity.org/t246081-0):
Code:
Range("B65536").End(xlUp).Offset(1,0).Select
Inače za prepisivanje sadržaja neke ćelije uopšte nije potrebno da je selektuješ i Copy/Paste nego je samo pridružiš vrednosti jedne ćelije i vrednost druge ćelije (objašnjeno u istoj temi)
Dakle umesto:
Code:
Sheets("nalog").Select
Range("G13:M13").Copy
Sheets("spisak").Select
ActiveCell.Offset(0, 0).PasteSpecial (xlPasteValues)
može jednostavnije npr.
Code:
Sheets("spisak").ActiveCell.Offset(0,0).Value = Sheets("nalog").Range("G13").Value
i slično za ostale ćelije.
2/ Makro podrazumeva da na listu spisak u koloni A imaš unete redne brojeve. Pošto nemaš onda se javlja greška. Nije mi jasno ni zašto se broj naloga upisuje u H8 - zar ne treba u P8
3/ Komanda za snimanje aktivne radne sveske pod istim imenom
Code:
ActiveWorkbook.Save
Nije to loše Rembrante, samo što ne bi dodao još malo boje?