Resio sam ovo iznad, cim sam postavio post, valjda kako sam stisnuo enter tako mi se ukazala jednostavnost resenja. Pokusah obrisati, a Vi ste mi odgovorili verovatno na poruku koja se ovde ne vidi a Vi vidite sve izmene poruke pa sada izgleda glupo. No da ne zjapi ovako prazna tema pitao bih nesto novo.
Code:
Sub Button3_Click()
Call KopirajIzDrugogExcelFajla("C:\Users\Mladen\Desktop\a.xls", "Sheet1", "Start")
Call KonvertujTekstUDatum("D")
Call KonvertujTekstUDatum("E")
End Sub
Private Sub KopirajIzDrugogExcelFajla(putanjaDoFajla As String, NazivSheetaKojiKOpiram As String, NazivSheetaUKojiKopiram As String)
'ovaj sub otvori neki drugi fajl, ocita odredjeni sheet i kopira u odredjeni sheet ovog fajla tj ovog Excela koji koristim
'primer KopirajIzDrugogExcelFajla("C:\Users\Mladen\Desktop\Automatizacija predloga za placanje.xlsm","Sheet1","Sheet1")
Dim wkb1 As Workbook 'Workbook Excela koji koristim
Dim sht1 As Worksheet 'Sheet Excel fajla koji koristim
Dim wkb2 As Workbook 'Workbook drugog Excel fajla
Dim sht2 As Worksheet 'Sheet drugog Excel fajla
Application.ScreenUpdating = False
Set wkb1 = ThisWorkbook
Set wkb2 = Workbooks.Open(putanjaDoFajla)
Set sht1 = wkb1.Sheets(NazivSheetaUKojiKopiram)
Set sht2 = wkb2.Sheets(NazivSheetaKojiKOpiram)
sht2.Cells.Copy
sht1.Range("A1").PasteSpecial xlPasteAll
Application.CutCopyMode = False
wkb2.Close True
Application.ScreenUpdating = True
'izvrsio sam kopiranje, zatim brisem poslednji red posto je tu zbir koji mi ne treba
PoslednjiRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
Rows(PoslednjiRow).Delete
End Sub
Private Sub KonvertujTekstUDatum(nazivKolone As String)
'ovaj sub konvertuje sve datume u odredjenoj koloni koji se nalaze u formatu TEXT u format DATUM
'nazivKolone - unosi se slovo kolone u kojoj se konverzija vrsi. npr. KonvertujTekstUDatum("C")
Sheets("Start").Select
Dim brRedova As Long, r As Range
N = Cells(Rows.Count, nazivKolone).End(xlUp).Row
For i = 2 To N
Set r = Cells(i, nazivKolone)
r.Value = CDate(r.Value)
Next i
End Sub
Program pocinje klikom na Button 3. Kopira podatke iz nekog drugog fajla iz Sheet1 i smesta ih u Sheet "Start" u ovom Workbook-u.
Zatim se pokrece sub KonvertujTekstUDatum koji datume koji pisu u D i E koloni kao string, prevodi u formu datuma.
E tu se desava nesto sto ne umem da objasnim zasto.
Button 3, klikom na koji sve pocinje nalazi se u nekom drugom sheet-u.
Program kopira u Sheet "Start" podatke i kada se startuje Sub KonvertujTekstUDatum, iako u prvoj liniji kazem Sheets("Start").Select, program ostane u sheet-u u kome se nalazi Button 3 i pokusava u njemu da promeni datume koji se tu ni ne nalaze.
Mogu problem da resim komandom Worksheets("Start").Activate ali mi nije jasno zasto mi je ona uopste potrebna, tj zasto ne radi code iznad?
Primera radi ako kazem sledeci code, program ce bez problema otici u Sheet1 i kopirati podatke a zatim ce otici u sheet2 i tu ce paste podatke. Zasto po toj logici ne radi i moj primer iz pitanja?
Code:
Sheets("Sheet1").Select
Range(i & ":" & i).Copy
Sheets("Sheet2").Select
Range(pasteKolona & ":" & pasteKolona).PasteSpecial xlPasteValues