» »

Makroji v excelu

Makroji v excelu

Volk| ::

Upam da mi bo kdo lahko pomagal...
Posnel sem makro, ki mi iz notepada uvozi podatke in razvrsti. Vse lepo in prav. Toda ko pa hocem ponovno uvozit podatke(vsak dan bodo novi podatki), pa mi jih napise v isto vrstic,tam kjer sem ze imel podatke. Moral bi nekako spremeniti kodo da bi mi vnašalo podatke spodaj,za starimi podatki.
Recimo da mi v polje A1 do A100 vnese prve podatke. Ko bi zagnal drugic makro bi mi moral vnest podatke v polje od A101 do A200.
Zal se ne razumem toliko v kodo da bi znal to popravit. Help!

Se Koda:
Sub Vnos()

With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\Data.txt", Destination _
:=Range("A2"))
.Name = "Data"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 852
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(9, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ActiveWindow.SmallScroll Down:=72
Range("A107").Select
End Sub

smetko ::

1. Če hočeš da se program zapolni kje je končal pač moraš uporabiti neko celico na listu, kjer shranjuješ do kje je že napisano. v mojem primeru je to na listu "List3" celica A1(lahko je katerikoli list oziroma katerakoli celica) . V makroju tudi uporabim spremenljivko Zac_vrstica v katero vpišem vrednost iz prej izbrane celice.

Zac_vrstica = Worksheets("List3").Cells(1, "A")
Cells(Zac_vrstica, "A").Select ' ta vrstica ni obvezna

na začetku (2. vrstiva) namesto
:=Range("A2"))
vpišeš
:=Cells(Zac_vrstica, "A"))

in na koncu dodaš
Worksheets("List3").Cells(1, "A") = Zac_vrstica + 100
Selection.End(xlDown).Select ' ta vrstica ni obvezna

zadnje dve vrstice
ActiveWindow.SmallScroll Down:=72
Range("A107").Select
lahko tudi izbrišeš ali zakomentiraš.


Če shranjuješ podatek do kje je prišel na aktivnem listu potem zamenjaj izraz
Worksheets("List3").Cells(1, "A")
z
Cells(1, "A")
No comment

Volk| ::

Hvala ti. Bom probal ce bo slo

Volk| ::

Sem spremenil. debuger mi javi napako. Zal pa ne znam programirat tega. Je mogoče kje kaka sintaktična napaka?

smetko ::

Da javi napako je lahko sledeči razlog:
Celica, katero uporabimo za shranjevanje lokacije (v našem primeru A1 na listu "List3" mora vsebovati neko začetno vrednost, to je vrstica v kateri začne pisati). za tačetek v to celico vpiši 2.
No comment

Zgodovina sprememb…

  • spremenilo: smetko ()

Volk| ::

Zal ne gre. Se vedno pise enako.

smetko ::

posredujem ti še celotno kodo:
Da ta koda deluje brez napak moraš v celico A1 na trenutnem listu vnesi vrednost na primer 2(obvezno celo pozitivno štrvilo manjše od 65000).
Na disku mora biti datoteka D:\Data.txt.

koda:

Sub Vnos()
Zac_vrstica = Cells(1, "A").Value
Cells(Zac_vrstica, "A").Select
With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\Data.txt", Destination _
:=Cells(Zac_vrstica, "A"))
.Name = "Data"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 852
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(9, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Cells(1, "A").Value = Zac_vrstica + 100
Selection.End(xlDown).Select
End Sub
No comment


Vredno ogleda ...

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

Bash skripta

Oddelek: Programiranje
243009 (2321) poweroff
»

c# datagridview in combox

Oddelek: Programiranje
131136 (1024) OmegaM
»

null reference exception na čudnem mestu C#

Oddelek: Programiranje
51213 (1150) krho
»

[Excel]Vrednost celice = ime dokumenta

Oddelek: Programska oprema
314543 (3965) veteran
»

[Excel] problem z makrojem, visual basic (strani: 1 2 )

Oddelek: Programiranje
585410 (4873) steev

Več podobnih tem