csv Log vraagje
Moderator: Moderators
- Swets
- Berichten: 2662
- Lid geworden op: 09 feb 2007 21:49
- Locatie: krimpen aan den IJssel
- Contacteer:
Re: csv Log vraagje
Tis weer maandag... :-) moet er altijd weer ff in komen....
Vond het wel leuk in jouw verzamelblad, dat de bovenste regel "vast" staat.... dacht dat ga ik bij mij ook ff doen...
maar wil nog niet helemaal lukken....
ja ik ben gek op boeken....
alleen ik ben eigenlijk altijd met teveel tegelijk bezig....
CNC,Electronica, programmeren... en dan vind ik solidworks leuk... En Blender... en PowerMill... en en en... en tis allemaal van die zooi wat niet vanzelf gaat... :-)
er zit te weinig tijd in een dag....
Vond het wel leuk in jouw verzamelblad, dat de bovenste regel "vast" staat.... dacht dat ga ik bij mij ook ff doen...
maar wil nog niet helemaal lukken....
ja ik ben gek op boeken....
alleen ik ben eigenlijk altijd met teveel tegelijk bezig....
CNC,Electronica, programmeren... en dan vind ik solidworks leuk... En Blender... en PowerMill... en en en... en tis allemaal van die zooi wat niet vanzelf gaat... :-)
er zit te weinig tijd in een dag....
http://www.arjan-swets.com (met cnc filmpjes)
Re: csv Log vraagje
Het gaat om flink veel rijen met gegevens in jouw geval. Als je de zaak gaat manipuleren op een werkblad (knippen/plakken/rijen verwijderen/rijen toevoegen, enzovoort) dan zal dat misschien veel tijd kosten.HIer na wil ik nog 1 slag er in maken, dat hij op het verzameleblad nog een keer alle regels af gaan... en als er een dubble datum/tijd in de lijst staat, hij er 1 regel van maakt....
Ik heb de indruk dat VBA een stuk trager is dan de ingebouwde functionaliteit van Excel zèlf. Daarom probeer ik daar zo veel mogelijk gebruik van te maken.
Ik geloof dat ik in jouw geval zou proberen om gegevens te groeperen in een array-variabele en dan dat hele array in 1-keer in een werkblad plaatsen.
Deze tips kunnen helpen:
Code: Selecteer alles
Option Explicit
Sub GegevensVerplaatsenMetArray()
'gegevens uit een range van cellen in een array plaatsen en daarna in een andere range van cellen plaatsen.
Dim gegevens() As Variant 'arrayvariabele
'handig weetje: als je met heel grote getallen moet werken, kies dan Long in plaats van Integer
ReDim Preserve gegevens(5, 2)
'met redim preserve kan je het formaat van de arrayvariabele aanpassen met behoud van de al aanwezige gegevens.
'In plaats van cijfers kan je ook variabelen gebruiken:
'Dim x as long
'Dim y as long
'Redim preserve gegevens(x,y) ofzo.
gegevens = Range("A1:B5").Value 'plaatst de informatie van een range aan cellen in de array variabele
Range("D1:E5").Value = gegevens 'plaatst de informatie van een array variable in een range aan cellen
gegevens(1, 1) = "informatie" 'plaatst een stukje tekststring op positie 1,1 in het array
End Sub
Sub ArrayMetTags()
'Een record verwijderen uit een array is omslachtig in VBA.
'Het is makkelijker om een record te "taggen" als je er wat mee gedaan hebt.
Dim informatie(1, 3) As Variant
Dim i As Integer
'array laden met informatie
informatie(0, 1) = vbNullString 'deze record is nog niet gebruikt
informatie(1, 1) = "Jantje" 'de data zelf
informatie(0, 2) = "x" 'deze record is al gebruikt
informatie(1, 2) = "Pietje" 'de data zelf
informatie(0, 3) = vbNullString 'deze record is nog niet gebruikt
informatie(1, 3) = "Klaasje" 'de data zelf
For i = 1 To UBound(informatie, 2)
'doorloop alle records van het array
If informatie(0, i) = vbNullString Then
'plaats de informatie alleen als die niet al eerder gebruikt was
ActiveCell.Value = informatie(1, i) 'plaats de informatie uit het record
informatie(0, i) = "x" 'markeer het record als gebruikt
ActiveCell.Offset(1, 0).Activate 'ga een cel naar beneden in het werkblad
End If
Next i
End Sub
Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something. - Robert Heinlein
- Swets
- Berichten: 2662
- Lid geworden op: 09 feb 2007 21:49
- Locatie: krimpen aan den IJssel
- Contacteer:
Re: csv Log vraagje
ehhh... jij kopieer eerst alles naar het verzamel blad, en dan sorteer je ze op datum/tijd.. toch?
tja.... tijd.... ik weet niet wat lang is? maar als ze een paar minuten moeten wachten vind ik het best....
maar ik heb geen idee bij excel wat lang is?
tja.... tijd.... ik weet niet wat lang is? maar als ze een paar minuten moeten wachten vind ik het best....
maar ik heb geen idee bij excel wat lang is?
Laatst gewijzigd door Swets op 14 sep 2020 10:12, 1 keer totaal gewijzigd.
http://www.arjan-swets.com (met cnc filmpjes)
Re: csv Log vraagje
Titelblokkering op een werkblad uitzetten (doe ik meestal eerst omdat Excel soms raar reageert en de titelbokkering ergens midden in het gegevensgebied plaatst):
ActiveWindow.FreezePanes = False
Titelblokkering aanzetten:
Eerst een geschikte cel selecteren, dan de titelblokkering inschakelen:
Range("B2").select
ActiveWindow.FreezePanes = True
ActiveWindow.FreezePanes = False
Titelblokkering aanzetten:
Eerst een geschikte cel selecteren, dan de titelblokkering inschakelen:
Range("B2").select
ActiveWindow.FreezePanes = True
Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something. - Robert Heinlein
Re: csv Log vraagje
Yep. Daar maak ik gebruik van de functionaliteit van Excelehhh... jij kopieer eerst alles naar het verzamel blad, en dan sorteer je ze op datum/tijd.. toch?
Sorteren van gegevens gaat veeeeeeeel sneller dan alles op volgorde in een werkblad plaatsen.
Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something. - Robert Heinlein
- Swets
- Berichten: 2662
- Lid geworden op: 09 feb 2007 21:49
- Locatie: krimpen aan den IJssel
- Contacteer:
Re: csv Log vraagje
ook gelukt... snap alleen die B2 niet... ? ik heb al een keer wat andere dingen in gevuld... maar toen stonden de eerste 20 lijnen vast... :-)Rocnc schreef: ↑14 sep 2020 10:09 Titelblokkering op een werkblad uitzetten (doe ik meestal eerst omdat Excel soms raar reageert en de titelbokkering ergens midden in het gegevensgebied plaatst):
ActiveWindow.FreezePanes = False
Titelblokkering aanzetten:
Eerst een geschikte cel selecteren, dan de titelblokkering inschakelen:
Range("B2").select
ActiveWindow.FreezePanes = True
vaak is het in nederlands zo simpel.... kijk of de regel er onder de zelfde datum/tijd heeft, Ja, dan de onderste regel, data naar de bovenste kopieren, onderst regel wissen.... :-)... maar het nu ff maken....
http://www.arjan-swets.com (met cnc filmpjes)
Re: csv Log vraagje
B2 is een willekeurige cel. Je kan er alles voor invullen.ook gelukt... snap alleen die B2 niet... ? ik heb al een keer wat andere dingen in gevuld... maar toen stonden de eerste 20 lijnen vast... :-)
Met de hand: om een titel te blokkeren moet je eerst een cel selecteren en dan in het menu op Titel blokkeren drukken. De titelblokkering op het werkblad start dan vanaf de linker bovenhoek van de geselecteerde cel.
Dat werkt dus horizontaal en verticaal. Afhankelijk van de geselecteerde cel worden alle rijen erboven en links ervan vastgezet met titelblokkering.
Om alleen de bovenste rij vast te zetten selecteer je dus eerst cel A2, en dan klik je op Titel blokkeren in het menu.
Het VBA alternatief voor handwerk is:
Code: Selecteer alles
Range("A2").select
ActiveWindow.FreezePanes = True
Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something. - Robert Heinlein
- Swets
- Berichten: 2662
- Lid geworden op: 09 feb 2007 21:49
- Locatie: krimpen aan den IJssel
- Contacteer:
Re: csv Log vraagje
word steeds leuker.... :-)
alleen die dubbele er uit filter lukt nog niet erg.... :-)...
alleen die dubbele er uit filter lukt nog niet erg.... :-)...
http://www.arjan-swets.com (met cnc filmpjes)
Re: csv Log vraagje
Hier kan je last krijgen van de traagheid van VBA, als je dit kunstje met 50.000+ rijen moet gaan doen. Daar lijkt het op neer te komen in jouw geval. Zeker rijen wissen kan veel tijd kosten op onverwachte momenten. Ik vermoed dat hier ergens een bug in Excel zit. Er wordt wel eens over geklaagd op Internet en ik heb het zelf ook wel ervaren.vaak is het in nederlands zo simpel.... kijk of de regel er onder de zelfde datum/tijd heeft, Ja, dan de onderste regel, data naar de bovenste kopieren, onderst regel wissen.... :-)... maar het nu ff maken....
Ik zou het m.b.v. een array variabele proberen.
Dus: kijk of de rij eronder dezelfde datum en tijd heeft. Beter gezegd: kijk of de huidige rij de zelde datum/tijd heeft als de vorige.
Zo ja, voeg de data dan toe aan het record in de array variabele. Zo nee, dan is er een nieuwe datum en tijd gevonden. Voeg die dan toe aan een nieuw record in de array, samen met de bijbehorende data.
Aan het eind klap je de array in een keer op een werkblad (dat gaat echt heel snel, zelfs als het array heel groot is).
Een alternatieve strategie is om toch celwaarden in het werkblad te verplaatsen. Dat is wat gemakkelijker te begrijpen omdat je letterlijk kan zien wat er gebeurt.
De datum van de rij waar je de informatie uit gehaald hebt verander je dan naar iets in de verre, verre toekomst. Aan het eind sorteer je dan alles nog een keer. Alle overbodige rijen komen dan onderaan de lijst te staan. Die kan je dan verder negeren bij het maken van grafieken.
Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something. - Robert Heinlein
Re: csv Log vraagje
Het is mij vaker dan eens gelukt om een proces dat 15min+ duurde terug te brengen tot enkele seconden. Gewoon door het op een andere manier toe te passen. Dat geeft best een kicktja.... tijd.... ik weet niet wat lang is? maar als ze een paar minuten moeten wachten vind ik het best....
maar ik heb geen idee bij excel wat lang is?
Een van de grote "openbaringen" voor mij bij het leren programmeren is dat er altijd meerdere manieren zijn om het zelfde doel te bereiken. Het lijkt meer op het schrijven van een verhaaltje dan op iets dat maar één "1+1=2 achtige" waarheid heeft. Ik had dat gewoon niet verwacht van een gestructureerd ding als een computer.
Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something. - Robert Heinlein
- Swets
- Berichten: 2662
- Lid geworden op: 09 feb 2007 21:49
- Locatie: krimpen aan den IJssel
- Contacteer:
Re: csv Log vraagje
pff.... ik had opeens weer eens echt werk... :-)
hopen dat ik morgen weer tijd heb....
wil het toch voor elkaar zien te krijgen.... ben zo ver nu.... alleen die dubbele regels er tussen uit zien te krijgen....
hopen dat ik morgen weer tijd heb....
wil het toch voor elkaar zien te krijgen.... ben zo ver nu.... alleen die dubbele regels er tussen uit zien te krijgen....
http://www.arjan-swets.com (met cnc filmpjes)
Re: csv Log vraagje
Succes en plezier ermee.
Ik check zo af en toe wel of je vragen hebt.
Ik check zo af en toe wel of je vragen hebt.
Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something. - Robert Heinlein
Re: csv Log vraagje
En? Is het nog gelukt?
Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something. - Robert Heinlein
- Swets
- Berichten: 2662
- Lid geworden op: 09 feb 2007 21:49
- Locatie: krimpen aan den IJssel
- Contacteer:
Re: csv Log vraagje
:-) wilde net vragen of je nog een keer kan helpen....
Ik heb het weer ff heel druk gehad.... en eigenlijk geen tijd gehad....
maar het speelt nog wel...
ik vroeg me af, of je misschien kan helpen om even een van de simpelste manieren (maakt me even niet uit of het snel of langzaam is)
om die dubbele tijden er uit te filteren...
ik dacht de datum,tijd met een regel er onder vergelijken,,,, het zelfde, dan alle data naar 1 kopieren, en eentje wissen.... zo iets...
maar ik heb ff geen idee hoe te beginnen........
heb nog ff alles te download gezet... met data... https://www.dropbox.com/s/eogytvab67n8n ... g.zip?dl=0
Ik heb het weer ff heel druk gehad.... en eigenlijk geen tijd gehad....
maar het speelt nog wel...
ik vroeg me af, of je misschien kan helpen om even een van de simpelste manieren (maakt me even niet uit of het snel of langzaam is)
om die dubbele tijden er uit te filteren...
ik dacht de datum,tijd met een regel er onder vergelijken,,,, het zelfde, dan alle data naar 1 kopieren, en eentje wissen.... zo iets...
maar ik heb ff geen idee hoe te beginnen........
heb nog ff alles te download gezet... met data... https://www.dropbox.com/s/eogytvab67n8n ... g.zip?dl=0
http://www.arjan-swets.com (met cnc filmpjes)