• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Laatste regel volgende data_file inlezen als eerste regel

Status
Niet open voor verdere reacties.

jansm

Gebruiker
Lid geworden
2 apr 2014
Berichten
421
Heren, ik heb een hele serie gelogde datafiles. Gedurende de dag zijn er data verzameld en als dag-data-file opgeslagen. Ik wil graag per dag-data-file de eerste regel van de volgende data-file als laatste regel toegevoegd hebben.

Dus in dit geval rij 2 van [P1_2014-04-12_60s] als laatste regel van [P1_2014-04-11_60s], rij 2 van [P1_2014-04-13_60s] als laatste regel van [P1_2014-04-12_60s] enz. Ben ik duidelijk genoeg en wilt iemand dit voor mij in vba noteren?

mvg, jansmBekijk bijlage ForumTest.rar
 
Dat gaat niet lukken met VBA want dat kan je niet kwijt in .csv bestanden. Je zou dan een soort van hoofd .xlsm document moet hebben die dat in de .csv bestanden aanpast. Is dat een optie?
 
Dat is een optie edmoor. Als betreffende csv-datafiles die bewerkt moeten worden in een aparte map staan. Ze hebben de naam [P1_2014-04-xx_60s.csv]. Ben benieuwd naar jouw product.
 
Ok. Kijk dan eens naar deze. Vul de datum van het oudste bestand volgens de bestandsnaam in. In het geval van de voorbeeld bestanden is dat het bestand P1_2014-04-11_60s.csv en de datum dus 11-04-2014. Vul dan het pad in waar deze bestanden staan. Druk daarna op de Activeer knop.

Het gaat heel snel en je krijgt een messagebox als hij klaar is.
In het geval van de voorbeeld bestanden zal dat binnen een seconde blijven.

Bekijk bijlage csvHandler.xlsm

Er is nog geen echte error trapping toegepast maar dat merk je wel als bijvoorbeeld het ingevulde pad fout is of je er geen rechten hebt.
 
Laatst bewerkt:
krijg een Rum time error 70 bij pijl

Sub AddLine(fstFile As String, nxtFile As String)
Dim DataLine As String
Dim FileNum As Integer

FileNum = FreeFile()
Open nxtFile For Input As #FileNum

While Not EOF(FileNum)
Line Input #FileNum, DataLine
Wend
Close #FileNum

========> Open fstFile For Append As #FileNum
Print #FileNum, DataLine
Close #FileNum
End Sub
 
Niks mis met Rum Time hoor! :p
Maar heb je dat eerst getest in een folder waar alleen de bestanden staan die je als voorbeeld gaf en waar je alle rechten hebt?

Runtime error 70 is een typische VBA Error die je krijgt als je een bestand voor schrijven wilt openen waar je niet bij mag of dat deze al door een ander programma geopend is. De coderegel waar de pijl naar wijst opent een bestand voor het toevoegen van gegevens (Schrijven).
 
Laatst bewerkt:
... permission denied.
Krijg dus geen toegang. Er staan al allen de files in die ook in de zip staan
 
Dan zal je de toegang (beveiliging) zo moeten zetten dat je die bestanden mag lezen en schrijven.
 
edmoor, ik heb jouw bestand nu gesaved in de betreffende map en nu doet hij het zonder foutmelding.
Echter, hij plaatst de verkeerde regel. De 2e regel van 4 april moet de laatste regel van 3 april worden. Enz enz.
 
... aanvulling. De regel moet niet verplaatst worden maar gekopieerd worden
 
Bij mij worden de regels niet verplaatst maar gekopiëerd. Die van de 12e naar de 11e, van de 13e naar de 12e en van de 14e naar de 13e. Met de 14e gebeurd vervolgens miets, die is alleen maar gelezen. Ik dacht dat dat de bedoeling was.

Je wilt dan dus de eerste regel van de 12e als laatse van de 11e hebben enz. Klopt dat? Dan had ik dat niet goed begrepen. Ik ga het aanpassen. Maar niet nu om 01:20 als je het niet erg vind ;)
 
Laatst bewerkt:
edmoor, je bent goed bezig hoor. Zo worden in jouw bestand ook gekopieerd, het is dus een loze aanvulling geweest van mij.

Maar wel de verkeerde regel wordt geplaatst. Je kopieert dus de laatste regel maar dat moet de 2e regel zijn. Hij moet wel als laatste regel geplaatst worden.
 
Dat zal ik morgen corrigeren.
 
heb #11 niet goed gelezen. Ik bedoel precies wat jij daar schrijft!!!!!!!!!!!!!!!!!!!!!!!!
Ga lekker slapen en tot morgen. Alvast reuze bedankt. Snap niet waar jij de kennis van Excel vandaan haalt.
 
edmoor, bedankt voor jou werk hieraan. Alleen begrijp ik heel weinig van de code en toch probeer ik hiervan te leren. Kun je bij de code een paar opmerkingen plaatsen zodat ik kan zien wat welke regel doet. Als het teveel gevraagd is dan even goede vrienden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan