Najdi forum

Splash Forum Arhiv Računalništvo, telefonija, internet in televizija excel shrani kot za cel kup datotek

excel shrani kot za cel kup datotek

Imam cel kup datotek, ki jih odpiram v excelu samo niso xls datoteke (so xyz oz. nekaj takega kot txt). So takšne datoteke, da je treba nastaviti kako naj stolpce odpre (saj veste tisti postopek, ko moraš par stvari potrditi in nato se odpre datoteka). Vse te datoteke moram potem shraniti v xls ali pa v dbf obliko. Sem poskusila s programom Rename in vsem spremenila končnico v dbf. Potem se sicer vse datoteke lepo odprejo, ampak naredi le en stolpec namesto treh. V vsaki vrstici so namreč tri številke in vsaka bi morala biti v svojem stolpcu pa ni.
Rada bi vse datoteke na čimbolj enostaven in hiter način odprla in potem s shrani kot spremenila v pravo obliko. Datotek imam pa cca. 200 v približno 8 mapah.
Sem nekaj ustvarjala z makri pa mi ne uspe.

kakšen pa je format teh datotek, oz. podatkov v datotekah.
Če odpreš datoteko z npr. beležnico – kako so noter napisane številke
in kakšna ločila so vmes, fino bi bilo da kakšno datoteko kar prekopiraš
semkaj – seveda če ni kaj spornega, drugače pa napiši dobeseden primer..

z samim preimenovanjem datotek pa nisi naredila nič, ker si preimenovala
samo končnico – ne pa tudi zgradbe dokumenta 🙂

(\__/) Copy and paste bunny (='.'=) to help him gain (")_(") world domination

Tole je del datoteke odprt v beležnici. Drugače je v vsaki datoteki cca. 45.000 vrstic. Želim pa imeti tabelo s tremi stolpci (v tem primeru je prva vrstica: 536000; 94000; 204,6). Poleg tega pa bi rada nad prvo vrstico številk vrnila še eno vrstico – naslovno vrstico z naslovi stolpcev (zdaj naslovne vrstice ni). Pa ugotovila sem, da imam teh datotek cca. 300.

536000.0 94000.0 204.60
536012.5 94000.0 198.43
536025.0 94000.0 189.94
536037.5 94000.0 189.47
536050.0 94000.0 192.08
536062.5 94000.0 195.28
536075.0 94000.0 198.00
536087.5 94000.0 199.64
536100.0 94000.0 199.32
536112.5 94000.0 197.15
536125.0 94000.0 194.13
536137.5 94000.0 190.59
536150.0 94000.0 186.32
536162.5 94000.0 183.93
536175.0 94000.0 182.45
536187.5 94000.0 183.77
536200.0 94000.0 185.76
536212.5 94000.0 187.06
536225.0 94000.0 187.21
536237.5 94000.0 187.56
536250.0 94000.0 189.54
536262.5 94000.0 195.23
536275.0 94000.0 203.05
536287.5 94000.0 210.93
536300.0 94000.0 220.38
536312.5 94000.0 228.99
536325.0 94000.0 235.08
536337.5 94000.0 236.33
536350.0 94000.0 235.04
536362.5 94000.0 234.17
536375.0 94000.0 235.00
536387.5 94000.0 237.47
536400.0 94000.0 239.72
536412.5 94000.0 241.37
536425.0 94000.0 243.09
536437.5 94000.0 244.51
536450.0 94000.0 243.98
536462.5 94000.0 244.14
536475.0 94000.0 243.91
536487.5 94000.0 243.39
536500.0 94000.0 241.69

ja ok – macro sem ti pripravil in deluje (nekaj ur spanja mi je šlo
v #/(“&/(#&/(“# :)))))

samo še to povej, kakšen naslov pa želiš imeti v prvi vrstici

(\__/) Copy and paste bunny (='.'=) to help him gain (")_(") world domination

Izvoli kodo, glave ni narejene (ta hip nimam časa, ali se pa sama
pozabavaj)

Odpri excel – odpri nov prazen dokument v excelu,
greš na macro – mu daš ime: konvertiraj (sicer pa spodaj spremeni ime)
prilepi spodnjo kodo v celoti..
Popravi pot do datotek, trenutno piše: d:\excel
Vse skupaj zapri, tako da se vrneš v prazen dokument, izberi si:
– orodja – Macro – konvertiraj in
ga z gumbom Zaženi – zaženeš.
Program do delal kar dolgo časa (odvisno od števila datotek).

Še nasvet – NE poizkušaj tega direktno na produkcijskih datotekah,
temveč si ustvari nekje kopijo, pa tam pretestiraj, namreč
Klemenxx NE odgovarja za nič – tudi če ti disk formatira, ali pa
se poliješ z vročo kavo/kakavom in podobne neumnosti, niti ne
odgovarjam, če bo danes 38 stopinj v Ljubljani :)))

Macro ti bo prekonvertiral datoteke samo v trenutni mapi, torej
za podmapo, boš morala popraviti pot (d:\excel piše sedaj).

pa lep dan 🙂

Option Explicit
Sub konvertiraj()

Dim myFiles() As String
Dim fCtr As Long
Dim myFile As String
Dim myPath As String
Dim tempWkbk As Workbook
Dim xlsFileName As String

‘Vpiši pravilno pot do .txt datotek, sedaj piše d:\excel
myPath = “d:\excel”
If Right(myPath, 1) “\” Then
myPath = myPath & “\”
End If

‘makro išče datoteke, ki imajo končnico .txt, sicer pa popravi
myFile = Dir(myPath & “*.txt”)
If myFile = “” Then
MsgBox “Ne najdem .txt datotek”
Exit Sub
End If

Application.ScreenUpdating = False

‘Spisek datotek za zamenjavo
fCtr = 0
Do While myFile “”
fCtr = fCtr + 1
ReDim Preserve myFiles(1 To fCtr)
myFiles(fCtr) = myFile
myFile = Dir()
Loop

If fCtr > 0 Then
For fCtr = LBound(myFiles) To UBound(myFiles)
Application.StatusBar = “Spreminjam v excel: ” & myFiles(fCtr)
Workbooks.OpenText Filename:=myPath & myFiles(fCtr), _
Origin:=437, StartRow:=1, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
Tab:=False, Semicolon:=False, Comma:=True, Space:=True, _
Other:=False, FieldInfo:=Array(1, 1)

Set tempWkbk = ActiveWorkbook

xlsFileName = myPath & myFiles(fCtr)
xlsFileName = Left(xlsFileName, Len(xlsFileName) – 4) & “.xls”

tempWkbk.SaveAs Filename:=xlsFileName, FileFormat:=xlWorkbookNormal
tempWkbk.Close savechanges:=False

Next fCtr
End If

With Application
.ScreenUpdating = True
.StatusBar = False
End With

End Sub

(\__/) Copy and paste bunny (='.'=) to help him gain (")_(") world domination

aja – pozabil napisati:

v kodi je tudi napisano:

Space:=True

namreč opazil, sem,da imaš podatke ločene z presledki

(\__/) Copy and paste bunny (='.'=) to help him gain (")_(") world domination

madonca sem pozabljiv,

še pomembno:

– preden startaš program OBVEZNO ZAPRI VSE ostale programe, ker
je spominsko kar požrešen – seveda ker so velike .txt datoteke
program tudi naredi velike .xls datoteke, zato pa rabi veliko spomina.

(\__/) Copy and paste bunny (='.'=) to help him gain (")_(") world domination

Super, deluje. Najlepša hvala. Veš koliko časa si mi prihranil? Tale makro si bom pa sigurno shranila. sem prepričana, da mi bo še prav prišla.
Naslovno vrstico pa bo že nekak šlo.
Pa še nekaj me zanima: če imam recimo odprtih 20 zvezkov, kako lahko vse naenkrat shranim? Ali pa recimo vsem naenkrat vrinem kako vrstico? Vem, da je neka kombinacija tipk, da lahko vse označiš pa ne vem katera.

Pa še nekaj me zanima: če imam recimo odprtih 20 zvezkov, kako lahko vse naenkrat shranim?

pojma nimam – običajno zaprem excel, pa mi vse skupaj shrani, oz. sprašuje
za ime datoteke..

Ali pa recimo vsem naenkrat vrinem kako vrstico?

to ti sicer znam napisati macro, ne vem pa za kombinacije tipk …
mogoče bo kdo drugi to vedel …

(\__/) Copy and paste bunny (='.'=) to help him gain (")_(") world domination

sem mislila, ‘shrani kot’ za vse. Sicer sem pa že uredila.
Klemenxx, 100x ti hvala.

Forum je zaprt za komentiranje.

New Report

Close