Dank. Na het weekend eens naar kijken.quote:Op zaterdag 30 april 2016 14:50 schreef qu63 het volgende:
[..]
iig wel VBA: https://support.microsoft.com/en-us/kb/2815384
Of met filters: http://trumpexcel.com/201(...)ound-color-in-excel/
Of met XL4 Macro's die geenmacro's zijn*? http://stackoverflow.com/(...)el/20491479#20491479
*Die zijn voor mij ook nieuw.. Meer info hierover is hier te vinden.
Windows kent wel verschillende newlines he, \n en \r (newline en carriage return). in VBA dus chr(10) en chr(13), misschien dat ie daar over struikeld?quote:Op vrijdag 29 april 2016 21:41 schreef Modus het volgende:
[..]
Hm lastig, nog nooit eerder zoiets gedaan. Ik denk dat ik 2 opties heb om uit te werken:
-de harde enters in de cellen laten staan en VBA die bij het uitlezen van de cellen laten herkennen en op 1 of andere wijze in de tekststring verwerken; geen idee of dat kan en zo ja hoe
-de harde enters in die cellen weghalen en in betreffende celtekst op de juiste plekken iets van chr(10) ertussen fietsen??
dus een celtekst a la adres1chr(10)plaats1 ??
-edit
na wat googelen denk ik dat ik wellicht het beste die cellen met line breaks in mijn basislijst kan vervangen door losse cellen met elk 1 regel
En in de code die ik nu heb die de tekststring samenstelt daar waar nodig een char(10) tussen plakken
-edit2
dat laatste heb ik net getest, dat krijg ik werkend
vandeweek verder
Zulke dingen zou ik eigenlijk gewoon aan collega teruggeven, onder motto "Onwerkbare troep, maak er eerst maar data van".quote:Op zaterdag 30 april 2016 13:56 schreef Janneke141 het volgende:
Een collega van mij is zo slim geweest om een heel schema te maken met gekleurde vakjes zonder waarde...
1 2 3 4 5 6 7 8 9 10 11 | Sub LoopRange() Dim rCell As Range Dim rRng As Range 'Aanpassen voor gekleurde range die je hebt Set rRng = ActiveSheet.Range("A1:B6") For Each rCell In rRng.Cells Debug.Print rCell.Address, rCell.Interior.Color 'herhaal originel cell waarde (zou leeg moeten zijn in collega geval) rCell.Value = rCell.Value & " [" & rCell.Interior.Color & "]" Next rCell End Sub |
Thanks! Al een heel stuk verder hiermeequote:Op vrijdag 29 april 2016 19:30 schreef Modus het volgende:
[..]
In E2 zou dan zoiets moeten komen
[ code verwijderd ]
en dan doortrekken, maar om mij nog onduidelijke reden kan ie dan de 08:03:00 en de 08:06:00 niet vinden die er wel degelijk in staan, dan geeft ie een #N/B, de 8:02 en 8:01 kan ie wel vinden. Echt GEEN IDEE hoe dit kan. Ms toch iets met dat tijdrekenen, dat is altijd gekut.
11:01:00 vindt ie logischerwijs ook niet, want die staat niet in kolom C.
Vervang C:D eens door $C$1:$D$999 (of hoe lang je rij ook is)quote:Op zaterdag 30 april 2016 20:46 schreef GotC het volgende:
[..]
Thanks! Al een heel stuk verder hiermee
Alleen idd 8:03, 8:06 en 8:10 blijven een #N/B geven.
edit: En opgelost, door de tijden nogmaals in te typen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | Sent time: 01/01/2010 12:26:01 PM To: email@adres.com Subject: subject Formulier Tekst Ritdatum: 01012000 Naam contact: Email contact: Woonplaats contact: Naam bedrijf: Soort: Van: Naar Start: Vanaf: Tijd 1: Tijd 2: Tijd 3: Tijd 4: Vervolg: Eindadres: Onkosten: Vertraging: Nee Bestanden: Timestamp: 12345678 |
Ik zou voor mijn eigen gemak denk ik een hulpkolommetje maken met een ALS-lus die enen genereert op de gewenste regels, en nullen op de rest.quote:Op woensdag 4 mei 2016 18:38 schreef RacerDKB het volgende:
Ik heb de inhoud van 330 mailtjes in Excel weten te krijgen in één bestand, onder elkaar.
De inhoud is als volgt, en dat dus 330 keer (duizenden regels dus):
[ code verwijderd ]
Ik wilde een filter maken voor een aantal van deze gegevens, namelijk "Ritdatum, Naam Bedrijf, Soort, Van, Naar, Bestanden". Alle overige informatie uit die mails wil ik verwijderen.
Ik geloof dat dit mogelijk is met advanced filter, maar ik kom er niet uit. Wie helpt?
Dat is op zich een goed idee, maar als ik bijvoorbeeld "Ritdatum" wil pakken, de waarde die daar achter staat is uiteraard telkens een andere waarde.quote:Op woensdag 4 mei 2016 19:02 schreef Janneke141 het volgende:
[..]
Ik zou voor mijn eigen gemak denk ik een hulpkolommetje maken met een ALS-lus die enen genereert op de gewenste regels, en nullen op de rest.
1 | =IF(A6="Ritdatum:",1,0) |
Gisteren en vandaag minder lang aan kunnen werken dan gehoopt. Ben nu zover dat ik een mooie csv kan wegschrijven, op het oog (Notepad) helemaal compleet. 1 regel met kopteksten, daaronder 4 regels met data. Alle eerste items van die 4 regels zijn gevuld.quote:Op zaterdag 30 april 2016 13:08 schreef The_vice het volgende:
In voorbeeld slechts met 2 cijfers achter de komma. Ik ga het je natuurlijk niet te makkelijk maken.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | Dim myArray() As Variant Dim myArray2() As Variant Dim text As String myArray = Range("A1:J1") Dim s Dim intColumns1 intColumns1 = UBound(myArray, 2) For s = 1 To intColumns1 text = text & myArray(1, s) & ";" Next s text = Left(text, Len(text) - 1) text = text & vbCrLf myArray2 = Range("A2:N" & InpLRow) Dim j, k Dim intColumns2 Dim intRows intColumns2 = UBound(myArray2, 2) intRows = UBound(myArray2, 1) For j = 1 To intRows For k = 1 To intColumns2 If k = 2 Then text = text & """" & myArray2(j, k) & Chr(10) & myArray2(j, (k + 1)) & Chr(10) & myArray2(j, (k + 2)) & Chr(10) & myArray2(j, (k + 3)) & Chr(10) & myArray2(j, (k + 4)) & """" & ";" k = 6 Else text = text & myArray2(j, k) & ";" End If Next k text = Left(text, Len(text) - 1) text = text & vbCrLf Next j text = Left(text, Len(text) - 2) |
Gebruik de functie LINKS, die pakt het linkerdeel van een tekst.quote:Op woensdag 4 mei 2016 20:46 schreef RacerDKB het volgende:
[..]
Dat is op zich een goed idee, maar als ik bijvoorbeeld "Ritdatum" wil pakken, de waarde die daar achter staat is uiteraard telkens een andere waarde.
<troepregels>
Ritdatum: 01052016
<troepregels>
Ritdatum: 02052016
<troepregels>
Hoe pak ik die dan allemaal?
[ code verwijderd ]
Een sterretje * er achter zetten werkt niet
Maar ik wil dat die " 21-4-2016" er ook bij komtquote:Op woensdag 4 mei 2016 20:52 schreef Janneke141 het volgende:
[..]
Gebruik de functie LINKS, die pakt het linkerdeel van een tekst.
Als in A6 staat 'Ritdatum: 21-4-2016', dan levert de functie =LINKS(A6;8) de tekst "Ritdatum".
Ja, dat snap ik wel, maar je gebruikt het LINKS-gedeelte dan alleen om de regels te filteren. Je originele gegevens blijven toch gewoon staan?quote:Op woensdag 4 mei 2016 20:56 schreef RacerDKB het volgende:
[..]
Maar ik wil dat die " 21-4-2016" er ook bij komtIk leg het waarschijnlijk raar uit.
Ik heb nu heel veel data direct vanuit mailtjes, daar wil ik iets van 80% van weghalen, ik dacht door te filteren op te dingen die ik wel wil houden.
Helaas zit er per pagina verschil tussen, dit kan ik niet fixen. Anders had ik gewoon handmatig nulletjes en eentjes gezet bij "pagina 1", en dit geplakt bij alle overige pagina's.quote:Op woensdag 4 mei 2016 20:59 schreef Janneke141 het volgende:
Als het netjes geplakt is (dus zonder wisselende aantallen witregels en dergelijken) dan kun je trouwens ook nog vrij makkelijk modulorekenen.
Nou ja, het wordt iets van =ALS(OF(A6=iets;A6=iets anders;A6=nog iets anders;LINKS(A6;8)="Ritdatum");1;0)quote:Op woensdag 4 mei 2016 21:00 schreef RacerDKB het volgende:
[..]
Helaas zit er per pagina verschil tussen, dit kan ik niet fixen. Anders had ik gewoon handmatig nulletjes en eentjes gezet bij "pagina 1", en dit geplakt bij alle overige pagina's.
Maar bedankt voor je hulp, hier lukt het wel mee denk ik. Snap nog niet wat ik heb aan dat LINKS/LEFT gedoe maar ik ga weer verder kloten.
Is het gewoon 1 werkblad, 1 kolom met data? En is het een eenmalige actie om de overbodige zooi te deleten?quote:Op woensdag 4 mei 2016 20:56 schreef RacerDKB het volgende:
[..]
Maar ik wil dat die " 21-4-2016" er ook bij komtIk leg het waarschijnlijk raar uit.
Ik heb nu heel veel data direct vanuit mailtjes, daar wil ik iets van 80% van weghalen, ik dacht door te filteren op te dingen die ik wel wil houden.
Leuk hè programmeren. De frustaties zijn bekend.quote:Op woensdag 4 mei 2016 20:47 schreef Modus het volgende:
En wat gebeurt bij de laatste keer csv inlezen die ik heb kunnen doen: applicatie zegt dat het eerste item van de eerste dataregel leeg is.
Terwijl dat stuk code werkend was en ik ook niks veranderd heb. Om gek van te worden. Los je issue 1 op, heb je daardoor ineens issue 2. Los je die op, werkt 1 weer niet meer of ontstaat issue 3..
Precies, ben er ook geweest en doorheen gekomen. Zeker de laatste 10 jaar is het ook steeds beter op internet zoeken.quote:Op woensdag 4 mei 2016 22:34 schreef Modus het volgende:
Nou ja, frustrerend idd, maar ook wel leerzaam en uiteindelijk toch bevredigend als je iets hebt kunnen maken waar men wat aan heeft. Al dan niet hier en daar wat code lenend. Alvast bedankt voor de tips voor zover.
1 2 3 4 5 6 | koptekst1;koptekst2;koptekst3;koptekst4{CR}{LF} datarij1item1; "datarij1item2[lijn 1]{LF} datarij1item2[lijn 2]{LF} datarij1item2[lijn 3]{LF} datarij1item2[lijn 4]";datarij1item3;datarij1item4{CR}{LF} etc. |
Op deze manier heb ik de data nu netjes in één bestand onder elkaar.quote:Op woensdag 4 mei 2016 21:07 schreef Janneke141 het volgende:
Wat ook nog kan is alle regels nummeren, daarna alles alfabetisch sorteren, handmatig wegmikken wat je niet wil hebben en daarna weer terugsorteren op regelnummer.
Och, er zijn wel honderd opties om zoiets te doen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | A B C D E F A B C D E F A B C D E F |
1 2 3 | A B C D E F A B C D E F A B C D E F |
Iets met =INDEX(). Maar er is iets te veel wijn in de vrouw om dat nu verder voor je uit te werken.quote:Op woensdag 4 mei 2016 23:13 schreef RacerDKB het volgende:
[..]
Op deze manier heb ik de data nu netjes in één bestand onder elkaar.
Het is nu echter:
[ code verwijderd ]
en hier wil ik van maken
[ code verwijderd ]
Kan wel wat omslachtige maniertjes bedenken, maar wat is een simpele betrouwbare manier om dit te doen?
Betrouwbare manier is een key + transformatie vlookup combo. Zo vlieg ik dit soort dingen geregeld aan. Is achteraf makkelijk aanpasbaar en werkt met veldnamen.quote:Op woensdag 4 mei 2016 23:13 schreef RacerDKB het volgende:
Het is nu echter:
[ code verwijderd ]
en hier wil ik van maken
[ code verwijderd ]
Kan wel wat omslachtige maniertjes bedenken, maar wat is een simpele betrouwbare manier om dit te doen?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Kolom A Kolom B Kolom C Kolom D 1 2 =B2&C2 =IF(C2="Veld 1";B1+1;B1) Veld 1 Waarde 1.1 3 =B3&C3 =IF(C3="Veld 1";B2+1;B2) Veld 2 Waarde 1.2 4 =B4&C4 =IF(C4="Veld 1";B3+1;B3) Veld 3 Waarde 1.3 5 =B5&C5 =IF(C5="Veld 1";B4+1;B4) Veld 4 Waarde 1.4 6 =B6&C6 =IF(C6="Veld 1";B5+1;B5) Veld 5 Waarde 1.5 7 =B7&C7 =IF(C7="Veld 1";B6+1;B6) 8 =B8&C8 =IF(C8="Veld 1";B7+1;B7) Veld 1 Waarde 2.1 9 =B9&C9 =IF(C9="Veld 1";B8+1;B8) Veld 2 Waarde 2.2 10 =B10&C10 =IF(C10="Veld 1";B9+1;B9) Veld 3 Waarde 2.3 11 =B11&C11 =IF(C11="Veld 1";B10+1;B10) Veld 4 Waarde 2.4 12 =B12&C12 =IF(C12="Veld 1";B11+1;B11) Veld 5 Waarde 2.5 13 =B13&C13 =IF(C13="Veld 1";B12+1;B12) 14 =B14&C14 =IF(C14="Veld 1";B13+1;B13) Veld 1 Waarde 3.1 15 =B15&C15 =IF(C15="Veld 1";B14+1;B14) Veld 2 Waarde 3.2 16 =B16&C16 =IF(C16="Veld 1";B15+1;B15) Veld 3 Waarde 3.3 17 =B17&C17 =IF(C17="Veld 1";B16+1;B16) Veld 4 Waarde 3.4 18 =B18&C18 =IF(C18="Veld 1";B17+1;B17) Veld 5 Waarde 3.5 |
1 2 3 4 | Veld 1 Veld 2 1 =VLOOKUP($G2&H$1;$A$2:$D$18;4;FALSE) =VLOOKUP($G2&I$1;$A$2:$D$18;4;FALSE) 2 =VLOOKUP($G3&H$1;$A$2:$D$18;4;FALSE) =VLOOKUP($G3&I$1;$A$2:$D$18;4;FALSE) 3 =VLOOKUP($G4&H$1;$A$2:$D$18;4;FALSE) =VLOOKUP($G4&I$1;$A$2:$D$18;4;FALSE) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | nr&veld 0 Veld Waarde 1Veld 1 1 Veld 1 Waarde 1.1 1Veld 2 1 Veld 2 Waarde 1.2 1Veld 3 1 Veld 3 Waarde 1.3 1Veld 4 1 Veld 4 Waarde 1.4 1Veld 5 1 Veld 5 Waarde 1.5 1 1 2Veld 1 2 Veld 1 Waarde 2.1 2Veld 2 2 Veld 2 Waarde 2.2 2Veld 3 2 Veld 3 Waarde 2.3 2Veld 4 2 Veld 4 Waarde 2.4 2Veld 5 2 Veld 5 Waarde 2.5 2 2 3Veld 1 3 Veld 1 Waarde 3.1 3Veld 2 3 Veld 2 Waarde 3.2 3Veld 3 3 Veld 3 Waarde 3.3 3Veld 4 3 Veld 4 Waarde 3.4 3Veld 5 3 Veld 5 Waarde 3.5 |
1 2 3 4 | nr Veld 1 Veld 2 1 Waarde 1.1 Waarde 1.2 2 Waarde 2.1 Waarde 2.2 3 Waarde 3.1 Waarde 3.2 |
http://blog.codinghorror.com/the-great-newline-schism/, wellicht dat ie met auto er juist mee aan de haal gaat...quote:Op woensdag 4 mei 2016 23:01 schreef Modus het volgende:
-linebreak: kan ik kiezen tussen automatisch, DOS of UNIX. In de helpfiles staat bij voorkeur Auto gebruiken, en tot nu toe doe ik dat eik ook.
Altijd goed om zoiets te doen, als dat geslaagde input voor je App is, dan weet je in ieder geval waar je naartoe moet werken.quote:Op donderdag 5 mei 2016 16:00 schreef Modus het volgende:
Mijn eerste opzet (gewoon Excel de csv laten genereren door op te slaan) werd goed ingelezen door de app, op de laatste linefeed na. Als ik dat nou nog eens doe en de csv dan bekijk in Notepad++, zie ik wellicht hoe en wat.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |