pozdravljeni
v mapi imam veliko tekstovnih podatkov(računi1.txt,računi2.txt,...,..) z veliko podatki.te podatke sedaj kopiram v excel in preračunam.to seveda počnem ročno,kar je precej mučno.zanima me sledeče:ali lahko z makrom dosežem,da te datoteke,ki sem jih označil nekako odprem naenkrat in prekopiram eno za drugim v excel,se pravi na en list?vrstni red ni pomemben,vazno je le ,da se vse označene datoteke s podatki prekopirajo ena za drugo na en list v excel.
za rešitev se najlepše zahvaljujem.
prenos podatkov in štetje
Pozdravljeni,
Mogoče vam bo pomagal kar makro, ki ga je napisal Saša v starem forumu, dosegljivem na http://www.matjazev.net/pnew/index.php? ... ev_net.chm.
Makro vam bo odprl okno, kjer lahko izberete poljubno mnogo tekstovnih datotek, ki vam jih bo makro prepisal v trenutno izbrano datoteko kot nove liste. Za vsako izbrano datoteko bo toej dodal nov list.
Poglejte in povejte če je OK. Če je stvar pribljižno takšna kot ste si jo zamislili, pa vam bom v nadaljevanju tematike makro popravil tako, da podatkov ne bo tlačil v nove liste temveč vse na en sam list.
Mogoče vam bo pomagal kar makro, ki ga je napisal Saša v starem forumu, dosegljivem na http://www.matjazev.net/pnew/index.php? ... ev_net.chm.
Makro vam bo odprl okno, kjer lahko izberete poljubno mnogo tekstovnih datotek, ki vam jih bo makro prepisal v trenutno izbrano datoteko kot nove liste. Za vsako izbrano datoteko bo toej dodal nov list.
Poglejte in povejte če je OK. Če je stvar pribljižno takšna kot ste si jo zamislili, pa vam bom v nadaljevanju tematike makro popravil tako, da podatkov ne bo tlačil v nove liste temveč vse na en sam list.
Koda: Izberi vse
' saša na www.matjazev.net
' 12.03.2003
Sub odpri()
Application.ScreenUpdating = False
Dim PotDoDatotek As Variant
Dim ImeNoveDatoteke As String
Dim i As Byte
PotDoDatotek = Application.GetOpenFilename(MultiSelect:=True)
If IsArray(PotDoDatotek) = True Then
Workbooks.Add
ImeNoveDatoteke = ActiveWorkbook.Name
For i = LBound(PotDoDatotek) To UBound(PotDoDatotek)
Workbooks.OpenText Filename:=PotDoDatotek(i), _
Origin:=xlWindows, _
StartRow:=1, _
DataType:=xlDelimited, _
TextQualifier:= _
xlDoubleQuote, _
ConsecutiveDelimiter:=True, _
Tab:=True, _
Semicolon:=False, _
Comma:=False, _
Space:=True, _
Other:=False, _
FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1))
ActiveWorkbook.Sheets(1).Move Before:=Workbooks(ImeNoveDatoteke).Sheets(1)
Next i
End If
End Sub
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
pozdravljen Matjaž
najprej hvala.
vidim da ste razumeli moje vprašanje,zadevo sem tudi že preizkusil.
mislim,da sva na liniji.
težavo mi povzroča,ker se te datoteke odprejo v novem delovnem zvezku
in ne v aktivnem.bi se lahko to spremenilo?
in kot ste omenil,zelo rad bi podatke spravil na en list(zaradi štetja),sicer se bom "zgubil".drugače pa makro deluje ok.(odpiral bom tudi do 20 datotek naenkrat,ali celo več).
zelo vam bom hvaležen,če rešiva še ta dva problema.
za odgovor se zahvaljujem.
najprej hvala.
vidim da ste razumeli moje vprašanje,zadevo sem tudi že preizkusil.
mislim,da sva na liniji.
težavo mi povzroča,ker se te datoteke odprejo v novem delovnem zvezku
in ne v aktivnem.bi se lahko to spremenilo?
in kot ste omenil,zelo rad bi podatke spravil na en list(zaradi štetja),sicer se bom "zgubil".drugače pa makro deluje ok.(odpiral bom tudi do 20 datotek naenkrat,ali celo več).
zelo vam bom hvaležen,če rešiva še ta dva problema.
za odgovor se zahvaljujem.
lp miha1
Pozdravljeni,
Se oproščam za zares veliko zamudo, a strežnik pač ni bil dosegljiv , o čemer si lahko več preberete na spletišču.
Kar pa se tiče vaših vprašanj, pa je prvi problem preprosto rešljiv. Da se stvar ne bo odpirala v novem delovnem zvezku samo izbrišite vrstico:
To je to. Kar pa se tiče prepisa vseh podatkov na en list pa vam spodaj prilagam makro, ki vam bo v poljubnem delovnem zvezku dodal nov delovni list in nanj prepisal podatke iz vseh preostalih delovnih zvezkov.
Se oproščam za zares veliko zamudo, a strežnik pač ni bil dosegljiv , o čemer si lahko več preberete na spletišču.
Kar pa se tiče vaših vprašanj, pa je prvi problem preprosto rešljiv. Da se stvar ne bo odpirala v novem delovnem zvezku samo izbrišite vrstico:
Koda: Izberi vse
Workbooks.Add
Koda: Izberi vse
' www.matjazev.net
' 26.01.2006
Sub PrekopirajListe()
Dim NovList As Worksheet
Set NovList = Worksheets.Add
Dim list As Worksheet
For Each list In Worksheets
If (list.Name <> NovList.Name) Then
list.Select
list.UsedRange.Copy
NovList.Select
If (NovList.UsedRange Is Nothing) Then
NovList.Cells(1, 1).Select
Else
NovList.Cells(NovList.UsedRange.Rows.Count + 1, 1).Select
End If
ActiveSheet.Paste
End If
Next
NovList.Range("a1").Select
End Sub
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
pozdravljen Matjaž
me veseli da smo zopet v foromu in da stvar deluje po starem, resnično
mi je žal,da se je to pripetilo.pa vendar....
zahvaljujem se vam za kodo,želel bi še malo "korektur"
torej takole:izberem datoteke(txt),katere naj se odprejo in se nato ena za drugo prekopirajo na en list in potem se te iste datoteke ponovno zaprejo brez shranjevanja(saj jih ne rabim več v zvezku).
v vašem primeru se mi prekopirajo tudi tisti listi ki so že sicer v zvezku in mi ustvari pravo zbrko).torej ostane naj samo en list na
katerem so se prekopirali podatki in pa seveda že obstoječi,ostali se zaprejo.mislim,da me razumete.
zahvaljujem se vam za pomoč.
me veseli da smo zopet v foromu in da stvar deluje po starem, resnično
mi je žal,da se je to pripetilo.pa vendar....
zahvaljujem se vam za kodo,želel bi še malo "korektur"
torej takole:izberem datoteke(txt),katere naj se odprejo in se nato ena za drugo prekopirajo na en list in potem se te iste datoteke ponovno zaprejo brez shranjevanja(saj jih ne rabim več v zvezku).
v vašem primeru se mi prekopirajo tudi tisti listi ki so že sicer v zvezku in mi ustvari pravo zbrko).torej ostane naj samo en list na
katerem so se prekopirali podatki in pa seveda že obstoječi,ostali se zaprejo.mislim,da me razumete.
zahvaljujem se vam za pomoč.
lp miha1
Pozdravljeni,
Na žalost makrov po naročilu ne morem pisati. Preprosto se ne izide, ker bi potem lahko počel samo to. V tej tematiki sem vaš problem rešil povsem zadovoljivo, le malce se še morate potruditi. S prvim makrom lahko lepo v NOV delovni zvezek uvozite VSE datoteke ter nato izvedete drug makro, ki vam vse podatke prepiše na EN list in nato samo še ta list prekopirate v vaš DZ in to je to. Trije preprosti in hitri koraki.
Če prvi in drugi makro združite v enega pa vam ostaneta samo še dva koraka.
Na žalost makrov po naročilu ne morem pisati. Preprosto se ne izide, ker bi potem lahko počel samo to. V tej tematiki sem vaš problem rešil povsem zadovoljivo, le malce se še morate potruditi. S prvim makrom lahko lepo v NOV delovni zvezek uvozite VSE datoteke ter nato izvedete drug makro, ki vam vse podatke prepiše na EN list in nato samo še ta list prekopirate v vaš DZ in to je to. Trije preprosti in hitri koraki.
Če prvi in drugi makro združite v enega pa vam ostaneta samo še dva koraka.
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator