Pozdravljeni
Ja malo dlje je trajalo, saj veste 1. maj, pa prosti dnevi...
rick napisal/-a:
P.S.ni mi jasno,kako ste posneli ta makro..
Naj odgovorim. makro sem prvo posnel, zbrisal nepotrebno in dodal, napisal vrstice kode, ki se mi zdijo potrebne. Naj najprej povem, da je moja koda čisto amaterska, saj to tudi sem, saj se tega lotevam povsem ljubiteljsko in bi se verjetno kakšen profi programer, zgrozil nad kodo. Zavedam se, da je napisana brez vseh spremenljivk, ki bi jih profi vedel kam in kako postaviti v kodo. Je žal tako, da sem malo starejši in takrat, ko sem hodil v šolo, o računalništvu, programiranju ni bilo niti govora...

No, glavno da dela
Poizkusil vam bom razložiti kodo:
makro kopira kar ste označili na poljubnem listu, nato odpre in uvozi txt file , v vašem primeru "Podatki", v Excel na poseben list, poišče zadnjo polno vrstico v koloni "A", se pomakne za eno vrstico navzdol in prilepi kar ste kopirali. Zapre txt file in makro je končan!
podrobneje:
Koda: Izberi vse
Application.ScreenUpdating = False
' dodano, da se prepreči osveževanje ekrana, da ne miglja in ne kaže kaj sploh makro dela. Tudi izvajanje je zaradi tega hitrejše
Application.DisplayAlerts = False
' dodano, to je zato, da Excel pri zapiranju txt fila ne teži z oknom o potrjevanju sprememb v txt filu, pa tudi makro bi se ustavil, dokler ne potrdite ali prekličete okna o spremembah
Selection.Copy
' posneto, kopiranje izbranega
ChDir "C:"
Workbooks.OpenText Filename:="C:\Podatki.txt", Origin:=932, StartRow:=1, _
DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter:=False _
, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:= _
False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), _
TrailingMinusNumbers:=True
'posneta klobasa, kjer excel sprašuje, kako, na kakšen način naj se podatki txt fila, prenesejo na začasni list. Verjetno veliko stvari nepotrebnih, oz bi jih lahko spustili, če točno veš kaj potrebuješ
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
'dodano, iskanje zadnje polne vrstice v koloni A in pomik za eno vrstico navzdol
ActiveSheet.Paste
ActiveWorkbook.Save
ActiveWindow.Close
Application.CutCopyMode = False
'posneto, verjetno vam je jasno, kaj pomenijo
Application.DisplayAlerts = True
Application.ScreenUpdating = True
'dodano, osveževanje ekrana spet vključimo, ravno tako tudi vsa pojavna okna, opozorila in konec
Upam, da vam je sedaj bolj jasno in da sem vam razumljivo razložil kako in kaj
Žilica mi ni dala miru in na netu sem našel, kako se stvari lotevajo profiji. Kodo bom prilepil popoldne, ker jo nimam na tem PC na katerem pišem. In lahko boste primerjali...

Jao, koliko sem se razpisal, upam da ne bom kregan od admina...
lp,
cedra