Processbar en versnellen upload

Status
Niet open voor verdere reacties.

jan excel

Gebruiker
Lid geworden
4 mrt 2007
Berichten
437
Hallo Experts,

Wie wil mij helpen om een processbar te maken in een bestand.
In onderstaande link staan twee bestanden, deze waren te groot om op dit forum te posten.

De processbar is als userform1 toegevoegd en dient uiteindelijk op 100% uit te komen zodra procedure van script Sub "datatest" is afgerond.

Tevens vind ik dat procedure van deze script wel erg lang duurt, als dit versneld kan worden zou ik dit fijn vinden.

Om e.e.a te testen dient het bestand met extensie csv wel in juiste pad gezet worden zoals in bovenstaande genoemde script staat vermeld.

in onderstaande link kunnen jullie het bestand downloaden.

http://we.tl/IDrbUqqyxT

Voor opnieuw posten gebruikt onderstaande link en plaats evt nieuwe link zodat ik het aangepaste bestand kan downloaden.

https://www.wetransfer.com/we

PS. In het werkblad "rapport" laatste kolom zet de gebruiker info wanneer nieuwe meting heeft plaats gevonden en deze dient na een nieuwe upload in dezelfde meting te blijven staan. Vandaar de switch bij het sorteren in het script sub "datatest".
Het bestand met extensie csv wordt dagelijks groter (dus meer rijnen) in verband met nieuwe metingen. Er komen ongeveer 300 regels per dag erbij.



Alvast bedankt, schroom niet om het script aan te passen, verbeteringen zijn welkom !

Jan E
 
Laatst bewerkt:
Als je de code wil vertragen moet je een progressbar aan de code toevoegen.

Zou het niet verstandiger zijn na het laden van de gegevens uit het csv bestand het csv bestand te verwijderen, zodat daarin alleen de meeste recente gegevens komen ?

Waarom verwijder je in het werkblad eerst rij 1, om hem daarna weer toe te voegen ?

Vermijd iedere 'Select' en 'Activate' in VBA.

Mij lijkt het werkblad 'rappport' 100% overbodig. De datumaanpassing (hoewel m.i. niet nodig) in kolom D kan met

Code:
sheets("Data").columns(4).replace ".","-"
 
Laatst bewerkt:
Hoi SNB,

Bedankt voor je reactie, dus processbar is niet aan te bevelen begrijp ik uit jou reactie.
Heb je nog wel suggesties voor het versnellen van het proces.

Groet,
Jsn
 
Hoi SNB,

Antwoorden op je suggesties;

CSV bestand verwijderen heeft geen nut, alle metingen worden per regel weggeschreven door het meetapparatuur op de C;schijf.
Deze losse regels zijn door excel niet te lezen, alleen nadat ik alles heb samengevoegd met een dos.bat bestandje met onderstaand commando.
C:
cd C:\CSV
copy *.csv data_barsttest.csv

Vervolgens kan ik het met Excel in lezen naar werkblad data met de script sub "datatest"
Dus alle gegevens ook de oude worden elke keer weer mee genomen.

Kolom D datum omzetten getest volgens jou script echter dit gaat niet goed, data klopt niet meer en seconden dienen ook zichtbaar te blijven i.v.m. juiste sorteervolgorde.


Kolom rapport is voor gebruiker, het is namelijk belangrijk dat bij een afwijking in desbetreffende regel in laatste kolom j wordt vermeld welke tijdstip nieuwe meting is gedaan.
Deze dient ook na een langere tijd nog inzichtelijk te zijn.


Waardoor moet ik Select en activate vervangen ?
Het kan zijn dat ik even niet meer reageer ga nu naar het werk.
vanavond en anders morgen vroeg kan ik weer reageren.


groet,
Jan.
 
Kan ook in VBA, (maar dan beter)

Code:
Sub M_snb()
   shell "cmd /c copy C:\csv\*.csv C:\data_barsttest.csv",0
   kill "C:\CSV\*.csv"
End sub
 
Beste SNB,

Script VBA ipv dos commando maakt geen bestand data_barsttest.csv.
wel verwijderd het alle *.csv bestanden.klopt de script niet helemaal of doe ik wat fout ?


groet,
Jan
 
Heb je al op de goede plaats gekeken ?: C:\ data_barsttest.csv
Bij mij verwijdert het script altijd in de 3e persoon enkelvoud met een t.
 
Laatst bewerkt:
Goede morgen SNB,

Bedankt voor je reactie, de VBA script ter vervanging van het dos commando is interessant.
Als ik het script goed begrijp maak het een bestand aan in de c-root.
Ook met zoeken in windows verkenner vind ik het bestand data_barsttest.csv niet.

Is het nodig dat ik de csv bestanden plaats, zodat je kunt testen ?

groet,
Jan
 
gebruik:

Code:
Sub M_snb()
   Shell "cmd /c copy G:\csv\*.csv C:\data_barsttest.csv", 0
   MsgBox Dir("C:\data_barsttest.csv")
'   Kill "C:\CSV\*.csv"
End Sub

Het bestand kan een Excel-icoontje hebben.
 
Goede middag SNB,

Helaas zie ik het bestandje data_barsttest.csv nergens weg geschreven staan.
MsgBox verschijnt wel.


Snap niet wat ik fout doe !

De VBA script heb ik in een excel bestand (module1) gezet, vervolgens jou script gestart, zoals onderstaand.

Code:
Sub M_snb()
   Shell "cmd /E copy E:\csv\*.csv E:\data_barsttest.csv", 0
   MsgBox Dir("E:\data_barsttest.csv")
  Kill "E:\CSV\*.csv"
End Sub

Heb alleen de schijf veranderd naar E: omdat ik aan het testen ben op een USB stick.
Op C: schijf wel getest, maakt daarop ook geen bestandsnaam met data_barsttest.csv
Zie ook geen excel icoontje.
 
Goede morgen SNB,

Aangezien ik nog geen reacties op jou script heb gehoord ben ik zelf nog even aan het knutselen geweest.
Je heb mij wel op een idee gebracht om binnen excel het DOS .bat te runnen.
Omdat jou script niet bestandsnaam aan maakt heb ik als alternatief met een vba script het DOS .bat bestandje binnen excel geactiveerd.
In het .bat bestandje del *.csv toegevoegd, neem aan dat dit zelfde effect heeft als de VBA instructie KILL


Dim startBAT As String
startBAT = "E:\CSV\barsttest.bat"
Shell startBAT


Weet je de oorzaak waarom jou script geen bestand aanmaakt ?

groet,
Jan
 
Dat maakt het wel.
Wat staat er in de messagebox ?
Zijn bepaalde folders schrijfbeveiligd ?
Schrijf het dan weg naar een andere folder.
 
Hoi SNB,

De msgBox blijft blanco.

Wat moet dan de folder naam zijn, ik ga er van uit dat de bestandsnaam naar folder csv schrijft ??

Ga nu zo naar het werk, daar lees ik je reactie wel en als er tijd voor is reageer ik dan ook weer en anders vanavond of morgen vroeg.

Groet,
Jan
 
Beste SNB,


Heb je code wel gelezen natuurlijk en getest, echter vind nergens het bestand data_barsttest.csv
Zowel niet in de hoofdroot van de schijf als in een andere map.

Misschien interperteer ik jou script verkeerd, echter misschien helpt wat meer toelichting.

Zoals ik het lees wordt het bestand weg geschreven naar de C-root.

neem aan dat een deel van deze regel in de (script C:\data_barsttest.csv) bestandsnaam maakt gezien de extensie .csv

(omdat het de csv bestanden uit de folder csv haalt dacht ik misschien blijft het in die folder en schrijft het bestand daarin weg, daarom deze aanname).

groet,
Jan
 
hoi SNB,

Eindelijk jou script werkend gekregen.
Probleem was dat ik /c als schijf letter had geïnterpreteerd ipv een commando.
Daarom E schijf van gemaakt.

Gelukkig is het nu opgelost, nogmaals dank !

Ps. Zonder MessageBox werkt het niet, zou liever zien dat de procedure door loopt zonder msgbox.
Is dat mogelijk ?


groet,
Jan E
 
Laatst bewerkt:
Gebruik deze code.

Code:
Sub M_snb()
   shell "cmd /c copy C:\csv\*.csv C:\data_barsttest.csv",0
   kill "C:\CSV\*.csv"
End sub

Wat is het resultaat ?
 
Hoi Snb,

Met de code die je zojuist hebt gepost krijg ik fout melding geen toegang.
Direct daarop script gestart met MsgBox deze werkt wel na op de OK knop te hebben geklikt in de MsgBox.

Groet,
Jan.
 
En hiermee ?

Code:
Sub M_snb()
   createobject("wscript.shell").run  "cmd /c copy C:\csv\*.csv C:\data_barsttest.csv"
   kill "C:\CSV\*.csv"
End sub
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan