» »

Excel skripta - deluje ampak ne deluje

Excel skripta - deluje ampak ne deluje

mitkos ::

Imam skripto oziroma makro v Excelu, ki naj bi po kliku na gumb vnesel podatke iz txt datoteke v Excel. Zadeva deluje, razen v nekaj primerih ne deluje in ne ugotovim zakaj ne.

Skripta naj bi vnesla podatke iz txt datoteke. Podatki, ki še niso bili vnešeni v Excel so od podatkov, ki so bili že vnešeni v excel ločeni z prazno vrstico in delimiter je v primeru že vnešenih podatkov tabulator, v primeru nevnešenih podatkov pa ";". Torej ko so podatki vnešeni v Excel se delimiter spremeni v tabulator. Imam možnost avtomatskega prenosa ali pa ročnega (da pokaže podatke, ampak jih je potem potrebno ročno kopirati)

Skripta ne deluje v primeru, da podatkov še nikoli nisem prenesel v Excel in sicer so opazke sledeče:
V txt datoteki imam 1 vrstico podatkov: prikaže 1 vrstico podatkov (ročno), ampak avtomatski prenos ne deluje (ni novih podatkov). Tudi delimiter se ne spremeni v tabulator, torej txt datoteka ostane nespremenjena.
V txt datoteki imam 2 vrstici podatkov: prikaže 2 vrstici podatkov (ročno), ampak avtomatski prenos ne deluje (ni novih podatkov). Tudi delimiter se ne spremeni v tabulator, torej txt datoteka ostane nespremenjena.
V txt datoteki imam 3 vrstice podatkov: Prikaže 3 vrstice podatkov (ročno), avtomatsko prenese le prvo vrstico podatkov. Pravilno izpiše koliko vrstic podatkov se je vpisalo. TXT datoteka se spremeni, torej delimiter je za vse 3 vrstice podatkov sedaj tabulator (dejansko izgubim potem 2 in 3 vrstico podatkov)
V txt datoteki imam 4 ali več vrstic podatkov: Prikaže in prenese vse podatke pravilno toda vedno izpiše za število 2 manj vnešenih vrstic podatkov. Delimiter se v txt datoteki spremeni na tabulator.

Če po prvem vnosu v Excel ko se txt datoteka spremeni, ponovno pišem nove podatke v txt datoteko in želim kasneje nove podatke avtomatsko prenesti v Excel, pa deluje vse OK, ne glede na to ali imam 1,2,3 ali več novih vrstic podatkov. Tudi štetje je potem pravilno.

Ugotovil sem, da če v txt datoteko, preden prvič vnašam podatke v Excel v prve 3 vrstice dodan 0 (podatki morajo biti že vpisani) in nato prazno vrstico in potem podatke (simuliram kakor da sem že vnašal podatke v Excel) deluje vse OK.
Podatke pišem v txt datoteko z nekim drugim programom.
Txt datoteka in Ecxel ne smeta imeti istega imena datoteke!

Primer podatkov (txt datoteka), v tem primeru bo skripta vnesla le 1 vrstico s podatki)
prazna vrstica
1;5;2;1;1
1;5;2;1;2
1;5;2;1;3

Skripta, ki jo uporabljam (napiše mi da uporabljam nedovoljeno HTML oznako, če prilimam tekst skripte):


Rad bi da skripta vnese podatke v Excel in spremeni delimiter že vnešenih podatkov iz ";" v tabulator. Vsakič naslednjič pa vnese le tiste nove podatke, ki imajo za delimiter ";" lahko so od prejšnjih ločeni z vrstico, lahko pa tudi ne. Ostale funkcinalnosti (obvestila, štetje) naj bi ostalo kot je.

Če se komu da malo pogledati in mi pomagat. Hvala.

mitkos ::

 Skripta slika

Skripta slika

kljuka13 ::

Veliko lažje bo pomagati, če nam prilepiš kodo, da jo lahko skopiramo in testiramo pri sebi. Če ne gre direktno v forum, uporabi katerega izmed spletnih orodij za nalaganje besedila (npr. https://pastebin.com/ ali https://controlc.com/).

Sicer pa praviš, da naj bi "Skripta vnesla podatke iz txt datoteke." Si poskusil z izdelavo poizvedbe iz tekstovne datoteke? Zavihek Podatki > Dobi in pretvori podatke > Iz besedila/CSV. Če narediš poizvedbo, potem se v Excelu ustvari "povezava" do tekstovne datoteke in z enim klikom na "Osveži" se preberejo trenutni podatki v datoteki in se tabela posodobi.

mitkos ::

mitkos ::

Prilimana skripta v pastebin, link zgoraj, upam da deluje.

Ugotovil sem, da štetje vnešenih podatkov (vrstic) tudi ne deluje pravilno, če je v txt datoteki več praznih vrstic (že predelani podatki z delimiterjem tabulator, potem prazna vrstica in recimo 5 vrstic podatkov z delimiterjem ";", potem pa zopet prazna vrstica in zopet recimo tri vrstice podatkov).

kljuka13 ::

Da ugotoviš, kje pride do napake, moraš najprej zakomentirati vrstico
On Error GoTo 2
Nato lahko opaziš, da se napaka pripeti v vrstici
Range("A:A").SpecialCells(xlCellTypeBlanks).Select
in sicer javi "Run-Time Error '1004': Nič celic ni bilo najdenih". Kako le, če pa so vse vrstice prazne? Kot lahko prebereš v tem odgovoru, xlCellTypeBlanks išče prazne celice zgolj v "uporabljenem območju" (torej znotraj največjega obsega nepraznih celic). Ker pa je tvoj dokument prazen, torej nima nobenega uporabljenega območja, zato v njem tudi seveda ne najde nobenih praznih celic. Ne vem sicer točno, zakaj brišeš te vmesne prazne vrstice. Odstrani ta del kode ali pa ga ovij v nek ločen "On Error GoTo".

Zgodovina sprememb…

  • spremenil: kljuka13 ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

(Java) Iskanje manjkajoči podatkov v tabeli

Oddelek: Programiranje
151050 (815) noraguta
»

Uvoz txt datoteke v excel

Oddelek: Programska oprema
295007 (4644) sebavet
»

kopiranje dela teksta iz večih datotek

Oddelek: Programska oprema
10811 (652) kerrigh

python pomoč

Oddelek: Programiranje
393401 (2322) Mavrik
»

Excel pomoč

Oddelek: Programska oprema
142373 (1676) smetko

Več podobnih tem