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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | Private Sub Worksheet_Change(ByVal Target As Range) If Not (Application.Intersect(Worksheets(4).Range("D4:F86"), Target) Is Nothing) Then DoSort End If End Sub Private Sub DoSort() Worksheets(1).Range("A2:I6").Sort Key1:=Worksheets(1).Range("J2"), Order1:=xlDescending, _ Key2:=Worksheets(1).Range("I2"), Order2:=xlDescending, Header:=xlYes Worksheets(1).Range("A10:I14").Sort Key1:=Worksheets(1).Range("J10"), Order1:=xlDescending, _ Key2:=Worksheets(1).Range("I10"), Order2:=xlDescending, Header:=xlYes Worksheets(1).Range("A18:I22").Sort Key1:=Worksheets(1).Range("J18"), Order1:=xlDescending, _ Key2:=Worksheets(1).Range("I18"), Order2:=xlDescending, Header:=xlYes Worksheets(1).Range("A26:I30").Sort Key1:=Worksheets(1).Range("J26"), Order1:=xlDescending, _ Key2:=Worksheets(1).Range("I26"), Order2:=xlDescending, Header:=xlYes Worksheets(1).Range("A34:I38").Sort Key1:=Worksheets(1).Range("J34"), Order1:=xlDescending, _ Key2:=Worksheets(1).Range("I34"), Order2:=xlDescending, Header:=xlYes Worksheets(1).Range("A42:I46").Sort Key1:=Worksheets(1).Range("J42"), Order1:=xlDescending, _ Key2:=Worksheets(1).Range("I42"), Order2:=xlDescending, Header:=xlYes Worksheets(1).Range("A50:I54").Sort Key1:=Worksheets(1).Range("J50"), Order1:=xlDescending, _ Key2:=Worksheets(1).Range("I50"), Order2:=xlDescending, Header:=xlYes Worksheets(1).Range("A58:I62").Sort Key1:=Worksheets(1).Range("J58"), Order1:=xlDescending, _ Key2:=Worksheets(1).Range("I58"), Order2:=xlDescending, Header:=xlYes End Sub ------------------------------------------------------------------------------------------------------------------------------------------- Private Sub Worksheet_Change2(ByVal Target As Range) If Not (Application.Intersect(Worksheets(4).Range("J4:L86"), Target) Is Nothing) Then DoSort2 End If End Sub Private Sub DoSort2() Worksheets(5).Range("A2:I6").Sort Key1:=Worksheets(5).Range("J2"), Order1:=xlDescending, _ Key2:=Worksheets(5).Range("I2"), Order2:=xlDescending, Header:=xlYes Worksheets(5).Range("A10:I14").Sort Key1:=Worksheets(5).Range("J10"), Order1:=xlDescending, _ Key2:=Worksheets(5).Range("I10"), Order2:=xlDescending, Header:=xlYes Worksheets(5).Range("A18:I22").Sort Key1:=Worksheets(5).Range("J18"), Order1:=xlDescending, _ Key2:=Worksheets(5).Range("I18"), Order2:=xlDescending, Header:=xlYes Worksheets(5).Range("A26:I30").Sort Key1:=Worksheets(5).Range("J26"), Order1:=xlDescending, _ Key2:=Worksheets(5).Range("I26"), Order2:=xlDescending, Header:=xlYes Worksheets(5).Range("A34:I38").Sort Key1:=Worksheets(5).Range("J34"), Order1:=xlDescending, _ Key2:=Worksheets(5).Range("I34"), Order2:=xlDescending, Header:=xlYes Worksheets(5).Range("A42:I46").Sort Key1:=Worksheets(5).Range("J42"), Order1:=xlDescending, _ Key2:=Worksheets(5).Range("I42"), Order2:=xlDescending, Header:=xlYes Worksheets(5).Range("A50:I54").Sort Key1:=Worksheets(5).Range("J50"), Order1:=xlDescending, _ Key2:=Worksheets(5).Range("I50"), Order2:=xlDescending, Header:=xlYes Worksheets(5).Range("A58:I62").Sort Key1:=Worksheets(5).Range("J58"), Order1:=xlDescending, _ Key2:=Worksheets(5).Range("I58"), Order2:=xlDescending, Header:=xlYes End Sub |
1 2 3 4 5 6 7 8 9 | Private Sub Worksheet_Change(ByVal Target As Range) If Not (Application.Intersect(Worksheets(4).Range("D4:F86"), Target) Is Nothing) Then DoSort End If If Not (Application.Intersect(Worksheets(4).Range("J4:L86"), Target) Is Nothing) Then DoSort2 End If End Sub |
1 | =((100/(SOM(C93;C97;C106;C110;C119;C123;C132;C136;C143;C147;C156;C160)))*((ALS(C94="herhaalklacht";C93;0))+(ALS(C98="herhaalklacht";C97;0))+(ALS(C107="herhaalklacht";C106;0))+(ALS(C111="herhaalklacht";C110;0))+(ALS(C120="herhaalklacht";C119;0))+(ALS(C124="herhaalklacht";C123;0))+(ALS(C133 = "herhaalklacht";C132;0))+(ALS(C137 = "herhaalklacht";C136;0))+(ALS(C144 = "herhaalklacht";C143;0))+(ALS(C148 = "herhaalklacht";C147;0))+(ALS(C157 = "herhaalklacht";C156;0))+(ALS(C161 = "herhaalklacht";C160;0)))/100) |
1 | =((100/(SOM(C180;C184;C193;C197;C206;C210;C219;C223;C230;C234;C243;C247)))*((ALS(C181="herhaalklacht";C180;0))+(ALS(C185="herhaalklacht";C184;0))+(ALS(C194="herhaalklacht";C193;0))+(ALS(C198="herhaalklacht";C197;0))+(ALS(C207="herhaalklacht";C206;0))+(ALS(C211="herhaalklacht";C210;0))+(ALS(C220 = "herhaalklacht";C219;0))+(ALS(C224 = "herhaalklacht";C223;0))+(ALS(C231 = "herhaalklacht";C230;0))+(ALS(C235 = "herhaalklacht";C234;0))+(ALS(C244 = "herhaalklacht";C243;0))+(ALS(C248 = "herhaalklacht";C247;0)))/100) |
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Opinion is the medium between knowledge and ignorance (Plato)
quote:Op donderdag 15 mei 2014 20:00 schreef Janneke141 het volgende:
Dat kan wel, maar voor zover ik het kan overzien word je daar niet vrolijk van. Ik word sowieso al niet vrolijk van je formules, maar als je ze ook nog gaat decoreren met INDIRECT-lussen om je sprongen van 87 te maken is het helemaal niet meer te volgen.
Als ik een beetje mag gokken wat je aan het doen bent, wil je het aantal nieuwe klachten per kalenderweek tellen (of er een percentage van maken, weet ik veel). Kun je dit niet oplossen met SOM.ALS of iets in die streek?Ja ik ben niet superhandig met Excel, niet vaak gebruikt tot een tijdje terug Het gaat om niet gefactureerde uren met vier mogelijke redenen, waarbij ik een percentage uitreken. Bijvoorbeeld twee uur niet gefactureerd door service en drie uur niet gefactureerd door garantie, dan rekent hij met die formule uit 60% niet gefactureerd door garantie en 40% door service. Klinkt misschien wat ingewikkeld en ik was dan ook al bijzonder trots op mezelf dat ik het werkend heb gekregenSPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Wat houdt dat SOM.ALS precies in?
Je zorgt dat je indeling bijvoorbeeld als volgt is:quote:
Nou ik weet niet of dat kan, want het zit zo:quote:Op donderdag 15 mei 2014 21:56 schreef Speculant. het volgende:
[..]
Je zorgt dat je indeling bijvoorbeeld als volgt is:
c181= "herhaalklacht" d181=waarde
c185= "herhaalklacht" d185=waarde
etc.
Dan doe je som.als( c181:c248; "herhaalwaarde"; d181:d185). Per rij wordt gekeken of de waarde in c_x voldoet aan "herhaalwaarde"->indien dat zo is neemt hij de waarde uit d_x apart. Je krijgt als resultaat de som van alle waarden die apart zijn genomen.
Precies wat jij doet, alleen wat simpeler.
=SOMMEN.ALS(C3:C19;A3:A19;"Reden niet gefactureerd";B3:B19;"herhaalklacht")quote:Op donderdag 15 mei 2014 22:11 schreef Heeinz het volgende:
[..]
Nou ik weet niet of dat kan, want het zit zo: [ afbeelding ]
Ik moet dus alleen die niet gefactureerde uren tellen, niet de gefactureerde of de aangenomen. Of is het misschien handiger als ik dat bestand even ergens upload?
Lastig om uit te leggen, ik zal eens kijken wat ik met de tips kan en anders kom ik er binnenkort wel op terug. Bedankt iigquote:Op donderdag 15 mei 2014 22:26 schreef Speculant. het volgende:
[..]
=SOMMEN.ALS(C3:C19;A3:A19;"Reden niet gefactureerd";B3:B19;"herhaalklacht")
zo?
Als deze formule niet helemaal duidelijk kun je die sheet wel oploaden als je dat makkelijker lijkt. Je wilt getallen uit een kolom optellen die aan 2 condities voldoen?
Het makkelijkst is het om gebruik te maken van de datum voor je leeftijdscategorie:quote:Op zondag 18 mei 2014 10:02 schreef IBMWV het volgende:
Hoi, vraagje. Ik heb een bestand met daarin allerlei gegevens van personen. In een van deze tabellen staan hun geboortedata, bijvoorbeeld:
1-1-1980
2-2-1985
3-3-1955
10-4-1960
Alleen in plaats van 4 cellen heb ik er ongeveer 2000. Nu zou ik graag de gemiddeldes willen weten. Dus hoeveel mensen zitten in de leeftijdscategorie 18-35, 35-50, 50 - 65, 65+. Ik wil hiermee iets meer inzicht krijgen in de doelgroep.
Iemand enig idee hoe ik dit het best kan doen in Excel? Het zal ongetwijfeld makkelijk zijn, maar ik kom er even niet uit. Dank alvast
1 2 | VAN(=C1) TOT(=D1) AANTAL(=E1) 1-1-1996 1-1-1979 =aantallen.als($A$1:$A$2000;$A$1:$A$2000;">"&C2;$A$1:$A$2000;"<"&D2) |
Ben net eens gaan klooien in Excel met de formule, maar ik ben bang dat ik er nog weinig van snap. Is er een soort van stappenplan om dit vanaf 'scratch' te doen? Dus enkel met een kolom met daarin een aantal geboortedata, en in plaats van 2000 zet ik hem even op 4. Dat vergroot de duidelijkheid voor mij al wat .quote:Op zondag 18 mei 2014 10:30 schreef snabbi het volgende:
[..]
Het makkelijkst is het om gebruik te maken van de datum voor je leeftijdscategorie:
Als je al die geboortedatums in 1 kolom hebt, bijvoorbeeld A1 tot A2000. De onderstaande Tabel zet je er naast in bijvoorbeeld C1 en verder:
[ code verwijderd ]
De formule aantallen.als (of countifs in het engels), zal uit de eerste kolom tellen, wanneer het voldoet aan een aantal voorwaarden. De voorwaarde zie je daar achter namelijk wanneer de geboortedatum in groter is dan C2 en kleiner dan D2.
Eventueel kan je de datum van vandaag er in verwerken. Dat doe je dan door in C2 geen 1-1-1996 te zetten maar bijvoorbeeld: =DATUM(1996;MAAND(VANDAAG());DAG(VANDAAG()))
Dat klinkt makkelijk, alleen hoe bereken ik de leeftijd voor elke persoon? Stel ik wil de leeftijd berekenen op basis van de volgende geboortedatum:quote:Op zondag 18 mei 2014 10:32 schreef sylvesterrr het volgende:
Of je berekent voor iedere persoon de leeftijd en maakt daarna een histogram met je leeftijdsklassen.
=DATEDIF(A2;TODAY();"y") waarbij A2 de geboortedatum is levert de leeftijd in jaren op.quote:Op zondag 18 mei 2014 10:43 schreef IBMWV het volgende:
Dat klinkt makkelijk, alleen hoe bereken ik de leeftijd voor elke persoon? Stel ik wil de leeftijd berekenen op basis van de volgende geboortedatum:
07-03-1988
Het diagram kom ik vervolgens volgens mij wel uit. Kwestie van alle cellen selecteren en op 'diagram maken' klikken.
Volgens mij heb ik hem door en kan ik hier mee aan de slag! Net hem even zelf uitgevoerd met het voorbeeldbestand en dat lukt. Nu alleen Data Analysis Toolpak installeren en dan zou het moeten lukken. Erg bedankt!quote:Op zondag 18 mei 2014 10:53 schreef sylvesterrr het volgende:
[..]
=DATEDIF(A2;TODAY();"y") waarbij A2 de geboortedatum is levert de leeftijd in jaren op.
Zie http://www.mijnbestand.nl/Bestand-ESSQ77HHILR8.xlsx voor een voorbeeld.
Data Analysis Toolpak heb je in principe niet nodig. In kolom D-E heb je ook een histogram, maar met formules.quote:Op zondag 18 mei 2014 11:07 schreef IBMWV het volgende:
[..]
Volgens mij heb ik hem door en kan ik hier mee aan de slag! Net hem even zelf uitgevoerd met het voorbeeldbestand en dat lukt. Nu alleen Data Analysis Toolpak installeren en dan zou het moeten lukken. Erg bedankt!
Ik kan je hulp toch nog even gebruiken merk ik. Ik ging er zelf eens mee spelen en dat ging minder makkelijk dan ik dacht.quote:Op zondag 18 mei 2014 11:36 schreef sylvesterrr het volgende:
[..]
Data Analysis Toolpak heb je in principe niet nodig. In kolom D-E heb je ook een histogram, maar met formules.
Ik had je bericht vanmiddag gelezen maar kon er niet op reageren ivm werk. Je hebt het al opgelost zie ik, top!quote:Op maandag 19 mei 2014 15:37 schreef IBMWV het volgende:
[..]
Ik kan je hulp toch nog even gebruiken merk ik. Ik ging er zelf eens mee spelen en dat ging minder makkelijk dan ik dacht.
Ik heb mijn eigen Excel-bestand even geüpload met daarin alle data (3 kolommen: Geboortedatum, geslacht en leeftijd). Verder heb ik een aantal leeftijdsgroepen:
18 - 35
35 - 50
50 - 65
65 - 80
80 +
Ik zou graag een grafiek of cirkeldiagram willen maken waarin alle leeftijden getoond worden per leeftijdsgroep. Dus er zijn bijvoorbeeld 100 mensen in de groep 18 - 35 enzovoort.
Moet volgens mij te doen zijn met enkele muisklikken, maar bij mij lijkt het kwartje niet te vallen. Al wat Youtube-instructiefilmpjes gekeken maar helaas. Het is ook gelijk het eerste en het laatste wat ik in Excel moet doen.
Zou jij kunnen helpen? Mijn bestand staat hier:
Edit: lijkt te lukken al. Gelukt.
Zonder macro zou ik denk ik kiezen voor het werkblad op te slaan als een CSV bestand. Vervolgens dit bestand te openen via Word. Vervolgens de komma of puntkomma via CTRL H zoeken en vervangen door ^p. Dan je Word bestand kopieren naar je Excel blad.quote:Op maandag 19 mei 2014 20:11 schreef Niesl het volgende:
Ik maak gebruik van Excel 2010.
Ik heb een sheet met 300 rijen met elk 50 kolommen. In elk van de velden zijn waarden opgenomen. Nu wil ik alle rijen en kolommen selecteren, de inhoud kopiëren en dit plaatsen in één enkele kolom, zodat je dus alle 15000 waarden onder elkaar hebt staan.
Is er een makkelijke manier om dit te doen?
quote:Op maandag 19 mei 2014 20:11 schreef Niesl het volgende:
Ik maak gebruik van Excel 2010.
Ik heb een sheet met 300 rijen met elk 50 kolommen. In elk van de velden zijn waarden opgenomen. Nu wil ik alle rijen en kolommen selecteren, de inhoud kopiëren en dit plaatsen in één enkele kolom, zodat je dus alle 15000 waarden onder elkaar hebt staan.
Is er een makkelijke manier om dit te doen?
1 2 3 4 5 | Sub blaat() For i = 2 To ActiveSheet.UsedRange.Columns.Count Step 1 Range(Cells(1, i), Cells(1, i).End(xlDown)).Copy Cells(1, 1).End(xlDown).Offset(1, 0) Next i End Sub |
Met INDEX kan ie ook wel.quote:Op maandag 19 mei 2014 20:11 schreef Niesl het volgende:
Ik maak gebruik van Excel 2010.
Ik heb een sheet met 300 rijen met elk 50 kolommen. In elk van de velden zijn waarden opgenomen. Nu wil ik alle rijen en kolommen selecteren, de inhoud kopiëren en dit plaatsen in één enkele kolom, zodat je dus alle 15000 waarden onder elkaar hebt staan.
Is er een makkelijke manier om dit te doen?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | For i = 1 To 52 Sheets("Forecasting").Select Solverreset SolverOk SetCell:=Range("DN5").Offset(0, 5 * i).Address, MaxMinVal:=3, ValueOf:=0, ByChange:=Range("DN2:DN4,DL2").Offset(0, 5 * i).Address, _ Engine:=1, EngineDesc:="GRG Nonlinear" SolverAdd CellRef:=Range("DN2:DN4,DL2").Offset(0, 5 * i).Address, Relation:=1, FormulaText:="1" SolverAdd CellRef:=Range("DN2:DN4,DL2").Offset(0, 5 * i).Address, Relation:=3, FormulaText:="0" Results = SolverSolve(True, "SolverIteration") SolverFinish KeepFinal:=1 Sheets("Optimization").Select Range("A1").Offset(i, 0).Select ActiveCell.Value = i Range("B1").Offset(i, 0).Select ActiveCell.Value = Results Next i |
De iteratie is bedoeld omdat de forecast steeds een week opgeschoven moet worden. Voor i=1 wordt week 1-52 gebruikt om de parameters te bepalen, voor i=2 worden week 2-53 gebruikt, etc.. Het probleem zit 'm vooral in dat Excel waardes aan de variabelen gaat toekennen die buiten de constraints liggen, terwijl ze als enige constraint hebben dat ze tussen 0 en 1 moeten zijn.quote:Op zondag 25 mei 2014 14:24 schreef snabbi het volgende:
Het is lastig je ding te volgen vanuit de code alleen. Ik begrijp sowieso niet waarom je de solver met een eigen iteratie doorloopt. Probeer je wijzigende parameters eens te verkleinen. Een leuk filmpje hierover is:
Snelkoppeling toevoegen aan de start-up folder: http://office.microsoft.c(...)cel-HA010158030.aspxquote:Op maandag 26 mei 2014 12:52 schreef Basp1 het volgende:
Hallo,
Op mijn werk wil men graag wat data van een website bijhouden. 1* per dag moet dat gedownload worden. Nu kan dat mooi met excel die gegevens eruit trekken. De verbinding maken is een fluitje van een cent dat is me al gelukt. Nu mijn probleem, het liefst zou ik gewoon een excel file in de morgen als de gebruiker (die dit wil bijhouden) zijn pc opstart automagisch laten opstarten is dit mogelijk?
Waarom zou dat niet kunnen? Als je de koppelingen hebt (ja, die heb je: ActiveWorkbook.LinkSources(xlExcelLinks) is een array met de Excel-links), dan kan je deze bestanden openen, bewerken, opslaan en sluiten.quote:Op woensdag 28 mei 2014 18:10 schreef Piger het volgende:
Weet iemand of het mogelijk is om via vba alle koppelingen te openen, data bij te werken, en weer af te sluiten?
Ik heb na lang rommelen al een oplossing: Ik gebruik de functie SUBSTITUEREN om te bepalen hoeveel A, C, G of T in de tekst aanwezig is. Dat worden dus 4 kolommen. Vervolgens bepaal ik m.b.v. de lengte van de eerste tekst gecombineerd met de 'substitutie' tekst hoeveel van elke letter aanwezig is.quote:Op vrijdag 30 mei 2014 09:55 schreef Janneke141 het volgende:
Hoe lang is de langste code (ongeveer)?
Ik gebruik een Gantt-chart die werkt met voorwaardelijke opmaak -> http://www.vertex42.com/ExcelTemplates/excel-gantt-chart.htmlquote:Op maandag 9 juni 2014 14:42 schreef zarGon het volgende:
Is het mogelijk om deze pagina in Excel te bouwen?
Dat tabelletje met data en een pie chart is geen enkel probleem natuurlijk. Ik loop vast bij de timeline chart...
Ik heb een paar tutorials gevonden, maar het lukt me niet om het werkend te krijgen.
- http://www.smartsheet.com/blog/gantt-chart-excel
- http://www.excel-easy.com/examples/gantt-chart.html
Twee voorbeelden met waar ik genoeg aan zou hebben, maar ik krijg niet wat ik wil zien.
Iemand die me kan helpen?
Wat ik nu heb:
[ afbeelding ]
Ik heb de links gelezen en uitgeprobeerd, maar het wil me niet helemaal lukken. Je eerste link is bijvoorbeeld kant-en-klaar, maar het is niet flexibel; de indeling blijft staan (2012). Ik heb juist flexibele datums (soms 3 maanden, soms jaren).quote:Op maandag 9 juni 2014 14:51 schreef qu63 het volgende:
[..]
Ik gebruik een Gantt-chart die werkt met voorwaardelijke opmaak -> http://www.vertex42.com/ExcelTemplates/excel-gantt-chart.html
Of probeer het op deze manier: http://office.microsoft.c(...)px#BMfloatingcolumns of http://www.techrepublic.c(...)lumn-chart-in-excel/ (maar kies dan voor horizontaal ipv verticaal)
Hulpkolom (F) aanmaken met daarin: MIN(C2:C20)-C2, daarnaast in G: MAX(D2:D20)-D2quote:Op dinsdag 10 juni 2014 23:27 schreef zarGon het volgende:
[..]
Ik heb de links gelezen en uitgeprobeerd, maar het wil me niet helemaal lukken. Je eerste link is bijvoorbeeld kant-en-klaar, maar het is niet flexibel; de indeling blijft staan (2012). Ik heb juist flexibele datums (soms 3 maanden, soms jaren).
Hmpf, het leek zo 'simpel'...
Zou ik te veel van je vragen als ik je vraag om een voorbeeld voor mij te maken?quote:Op woensdag 11 juni 2014 01:02 schreef qu63 het volgende:
[..]
Hulpkolom (F) aanmaken met daarin: MIN(C2:C20)-C2, daarnaast in G: MAX(D2:D20)-D2
Dan maak je een gestapelde grafiek met kolom F als eerste data, kolom E als tweede en kolom G als derde. De eerste en laatste kan je met de opmaak doorzichtig maken en zonder rand . En dan kolom B als label kiezen. Om het er nóg leuker uit te laten zien kan je ook je horizontale as nog voorzien van labels
Zoiets: http://www.mijnbestand.nl/Bestand-C6XWESWCDSY7.xlsxquote:Op woensdag 11 juni 2014 10:29 schreef zarGon het volgende:
[..]
Zou ik te veel van je vragen als ik je vraag om een voorbeeld voor mij te maken?
Allereerst: bedankt voor de moeite!quote:Op woensdag 11 juni 2014 13:45 schreef qu63 het volgende:
[..]
Zoiets: http://www.mijnbestand.nl/Bestand-C6XWESWCDSY7.xlsx
Alleen de tijdslijn aan de onderkant kreeg niet zo snel naar wens..
Enige wat ik nu zo snel kan bedenken is eigenlijk vals spelen. Verwijder de labels op de x-as en maak een tweede grafiek die precies net zo groot is. Verberg alle elementen behalve de x-as en zorg er voor dat daar de datums op staanquote:Op woensdag 11 juni 2014 13:52 schreef zarGon het volgende:
[..]
Allereerst: bedankt voor de moeite!
Boh, dit is bijna wat ik nodig heb. Alleen is die tijdslijn (datum op x-as) wel een belangrijke. Hoe zou ik dat eventueel kunnen fiksen?
Bedankt nogmaals, kan ik hier even mee verkloten.
1 2 3 4 5 6 | Dim maxrow As Integer maxrow = Cells(Rows.Count, "A").End(xlUp).Row With ActiveSheet .Rows(maxrow + 1 & ":" & .Rows.Count).Delete End With |
Super! Werkt perfect!quote:Op woensdag 18 juni 2014 15:57 schreef Stickers het volgende:
Hiermee moet het lukken:
Sub getLastRow()
Dim LastUsedRow As Long
LastUsedRow = [LOOKUP(2,1/(A1:A65000<>""),ROW(A1:A65000))]
End Sub
Gevonden op http://www.mrexcel.com/fo(...)up-ignore-blank.html
Formule:
=ZOEKEN(2;1/(A1:A18<>"");RIJ(A1:A18))
Dan kun je spelen zonder elke keer een macro te hoeven runnen.
Alleen even de directory aanpassen:quote:Op donderdag 19 juni 2014 11:42 schreef 314 het volgende:
hi, ik zoek naar een macro me een *.csv bestand laat openen uit een vooraf bepaalde folder (documenten of downloads ofzo), dan de inhoud van die csv kopieert naar een tabje "temp" in mijn huidige workbook om er later mee verder te werken
er zijn meerdere versies van het adressenbestand (*.csv) en eigenlijk wil ik dat ie alleen de inhoud van de laatste versie naar mijn temp tabje kopieert
adressen_01-2014.csv
adressen_02-2014.csv
adressen_03-2014.csv --> deze dus, maar zodra er over een poosje een _06-2014 in die folder staat moet ie die pakken
edit: ik kan hem ook handmatig aanklikken, maar dan wil ik wel in de Open pop-up meteen de juiste folder zien en al gefilterd op alleen *.csv . Het lastige is even dat ik niet precies weet hoe ik in VB kan schakelen tussen (1) mijn workbook waarvan ik de naam weet natuurlijk en (2) het *.csv bestand waarvan de naam niet vaststaat totdat ik hem geopend heb.. iemand?
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Het was even knutselen, namelijk nog nooit met QueryTables gewerkt.
Hmz, Oke, die rijen werken prima.quote:Op woensdag 18 juni 2014 15:57 schreef Stickers het volgende:
Hiermee moet het lukken:
Sub getLastRow()
Dim LastUsedRow As Long
LastUsedRow = [LOOKUP(2,1/(A1:A65000<>""),ROW(A1:A65000))]
End Sub
Gevonden op http://www.mrexcel.com/fo(...)up-ignore-blank.html
Formule:
=ZOEKEN(2;1/(A1:A18<>"");RIJ(A1:A18))
Dan kun je spelen zonder elke keer een macro te hoeven runnen.
1 2 | Dim maxcol As Long maxcol = [LOOKUP(2,1/(D12:EM12<>"x"),Column(D12:EM12))] |
Nu zoek je juist naar de laatste cel die niet gelijk is aan "x"quote:Op vrijdag 20 juni 2014 09:22 schreef kipptje het volgende:
[..]
Hmz, Oke, die rijen werken prima.
Nu wil ik alleen hetzelfde met kolommen, dus ik dacht heel simpel:
maxcol = [LOOKUP(2,1/(D12:EM12<>"x"),Column(D12:EM12))]
Hier zoekt ie dus naar waarde "x", maar zo simpel de formule aanpassen werkt het kennelijk niet. ideeen? (ben geen held in vectoren en matrices, dat gedeelte nooit gesnapt)
Ja, dat is ook juist de bedoeling. Schreef het een beetje ongelukkigquote:Op vrijdag 20 juni 2014 13:08 schreef Stickers het volgende:
[..]
Nu zoek je juist naar de laatste cel die niet gelijk is aan "x"
1 2 3 4 5 6 7 8 9 10 11 | {| ! style="text-align:left;" colspan="2"| Item ! Required items |- |colspan="2"|A2 |C2 |- |colspan="2"|A3 |C4 |- |} |
Ik heb geen idee wat je nu eigenlijk wil. Je wilt A2 en B2 samenvoegen?quote:Op zondag 22 juni 2014 18:46 schreef einschtein het volgende:
Ik weet niet of het mogelijk is met Excel, maar wie weet.
Mijn doel is om van A2 t/m A45 (of t/m er iets in A staat) en van C2 t/m C45 (of t/m er iets in C staat) een code creeren.
Een code die als volgt moet zijn:
[ code verwijderd ]
Waar A2/C2/A3/C3 de tekst uit de tabel zou moeten zijn. Is dit mogelijk?
Vergeef me mijn domheid, maar hoe nuttig is het om hetgeen buiten de gebruikte range te verwijderen?quote:Op vrijdag 20 juni 2014 21:02 schreef kipptje het volgende:
[..]
Ja, dat is ook juist de bedoeling. Schreef het een beetje ongelukkig
Hoe dan ook, de formule die ik heb opgeschreven werkt dus niet en ik weet niet hoe ik het moet aanpassen
Hm, misschien leg ik het wat onduidelijk uit.quote:Op zondag 22 juni 2014 19:32 schreef snabbi het volgende:
[..]
Ik heb geen idee wat je nu eigenlijk wil. Je wilt A2 en B2 samenvoegen?
Kan je een voorbeeld geven (desnoods met html) wat je echt zoekt?
1 2 3 4 5 6 | |colspan="2"|A1 |B1 |- |colspan="2"|A2 |B2 |- |
Volgens mij zoek je de inhoud van A1 en B1 samen te voegen in bijvoorbeeld cel C1. Dat zou zijnquote:Op zondag 22 juni 2014 20:22 schreef einschtein het volgende:
[..]
Hm, misschien leg ik het wat onduidelijk uit.
A1 en B1 (enhebben beide een inhoud van text. Nu wil ik die samenvoegen in een code, maar Excel moet die code samenstellen met de gegevens uit de cellen.
Ja en nee. Het moet nog automatisch door Excel in de bovengenoemde code worden omgezet zodat ik kan control-c+v'en.quote:Op zondag 22 juni 2014 22:27 schreef snabbi het volgende:
Volgens m
[..]
Volgens mij zoek je de inhoud van A1 en B1 samen te voegen in bijvoorbeeld cel C1. Dat zou zijn
=A1&B1
Door alles buiten de gedrukte range te verwijderen (in mijn geval niet gebruikte kolommen) raakt alles op het blad een stuk overzichtelijker. je hebt dan geen onbruikbare informatie staan.quote:Op zondag 22 juni 2014 19:59 schreef snabbi het volgende:
[..]
Vergeef me mijn domheid, maar hoe nuttig is het om hetgeen buiten de gebruikte range te verwijderen?
Anyway je formule werkt wel, maar je vergeet waarschijnlijk dat het resultaat 4 te laag is omdat je pas in kolom D begint met zoeken.
Dan doe je in (bijv) C1 -> ='|colspan="2"|'&A1quote:Op maandag 23 juni 2014 05:33 schreef einschtein het volgende:
[..]
Ja en nee. Het moet nog automatisch door Excel in de bovengenoemde code worden omgezet zodat ik kan control-c+v'en.
Als ze als tekst opgemaakt zijn zou je dmv een hulpkolom ze kunnen converteren naar een datum.quote:Op dinsdag 24 juni 2014 10:12 schreef DIlic het volgende:
Beste Mensen,
Momenteel ben ik bezig met een project en daarbij ben ik tegen een probleempje aangelopen. De datumnotatie, van hetzelfde kolom, heb ik gewijzigd door celeigenschappen -> aangepast
jjjj-mm-dd.
De data 01/13/2012 11:49 AM en 01/13/2012 04:05 PM willen niet veranderen. Komt dit doordat ze text zijn i.p.v. date? Hoe kan ik deze converteren en/of simpelweg de data wijzigen in jjjj-mm-dd, maar ook automatisch de inhoud van elke cel. Dus zonder de AM and PM.
2012-12-01
2012-12-01
01/13/2012 11:49 AM
01/13/2012 04:05 PM
Op mijn werk heb ik een nederlandse excel 2003 en kan ik niet naar de landinstellingen (autoriteitsrechten).
Bij voorbaat dank.
Met vriendelijke groet,
D.Ilic
In B2 zet je dit: =DATUM(LINKS(RECHTS(A2;LENGTE(A2)-6);4);LINKS(RECHTS(A2;LENGTE(A2)-3);2);LINKS(A2;2))quote:Op dinsdag 24 juni 2014 11:35 schreef DIlic het volgende:
Beste qu63,
Ik heb hier een bestandje. Misschien wil je er naar kijken en begrijp je de situatie misschien beter.
https://www.dropbox.com/s(...)hJcl7QAhu-RyUyWQWY5a
Dat moet je dan doen in de opmaak. CTRL+1, tabblad getal, kies dan voor aangepast en vul daar jjjj-mm-dd inquote:Op dinsdag 24 juni 2014 11:57 schreef DIlic het volgende:
OMG! jij bent een held! bijna gelukt hij verandert het, alleen gaat hij nu naar dd-mm-jjjj notatie en hij moet jjjj-mm-dd notatie. Tevens verandert hij de datum helemaal bijv.: 01/13/2012 11:49 AM wordt 1-1-2013, maar moet 2012-1-13 worden
Ah, ik heb maand en dag omgedraaid zie ikquote:Op dinsdag 24 juni 2014 12:11 schreef DIlic het volgende:
Natuurlijk, je hebt gelijk dat werkt wat betreft de jjjj-mm-dd notatie, alleen zit ik dan nog met het laatste en dat is dat hij de datum compleet verandert. Misschien komt het door mijn computer, als hij dat niet bij jou vertoont zou je dan jouw bestandje in mijn dropbox kunnen plaatsen? Ik hoop dat ik niet teveel van je vraag. Iig heb je mij al erg veel geholpen! Thnx alvast.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Private Sub updateForm() Dim SourceWb As Workbook Dim DestinationWB As Workbook Set SourceWb = Workbooks("Testforms.xls") Set DestinationWB = Workbooks(rapp) 'verwijderen huidige formulieren DestinationWB.VBProject.VBComponents.Remove "Userform1.frm" DestinationWB.VBProject.VBComponents.Remove "Userform2.frm" 'opnieuw importeren SourceWb.VBProject.VBComponents("Userform1").Export "Userform1.frm" DestinationWB.VBProject.VBComponents.Import "Userform1.frm" SourceWb.VBProject.VBComponents("Userform2").Export "Userform2.frm" DestinationWB.VBProject.VBComponents.Import "Userform2.frm" End Sub |
Ik snap je even niet. Zou je dat kunnen uitleggen/verwerken in een Excel?quote:Op maandag 23 juni 2014 12:38 schreef qu63 het volgende:
[..]
Dan doe je in (bijv) C1 -> ='|colspan="2"|'&A1
C2 -> ='|'&B1
C3 -> ='|'
C4 -> ='|colspan="2"|'&A2
etc.
Zoiets?quote:Op dinsdag 24 juni 2014 20:41 schreef einschtein het volgende:
[..]
Ik snap je even niet. Zou je dat kunnen uitleggen/verwerken in een Excel?
Ja, eigenlijk exact dat. Heb het even getweaked, maar werkt nu zoals ik het wil. Ik wilde het eigenlijk per tabelregel, dat is wat het wordt (Een tabel), op een regel. Maar de software herkent de <br /> in de regel niet.quote:Op woensdag 25 juni 2014 01:32 schreef qu63 het volgende:
[..]
Zoiets?
http://www.mijnbestand.nl/Bestand-M6EMG6XDOOMB.xlsx
Ik vraag me alleen af hoe je HTML-editor omgaat met een copy-paste vanuit Excel. Grote kans dat de tabs meegenomen worden en dan kan je alles alsnog aan gaan passen..
Probeer INDEX.quote:Op woensdag 25 juni 2014 22:48 schreef einschtein het volgende:
Yoo, volgende vraag.
Momenteel heb ik 2 tabs. 1 met een lijst, kolom A. In de tweede tab heb ik in kolom informatie uit tab 1 nodig. Probleem is dat in tabblad 1 alles achter elkaar staat, A1, A2, A3 enzovoorts.
Die informatie heb ik in tabblad 2 nodig, alleen niet in achtereen volgende rijen. In A6 op tabblad 2 heb ik A1 van tabblad 1 nodig. En op A6 van tab2 pas info van A2 van tab1. En op A9 weer info uit A3 van tab1. Dus steeds 2 er tussen.
Het simpele doortrekken werkt niet zoals ik het wil. Is het uberhaupt mogelijk, datgene wat ik wil?
quote:Op woensdag 25 juni 2014 22:48 schreef einschtein het volgende:
Yoo, volgende vraag.
Momenteel heb ik 2 tabs. 1 met een lijst, kolom A. In de tweede tab heb ik in kolom informatie uit tab 1 nodig. Probleem is dat in tabblad 1 alles achter elkaar staat, A1, A2, A3 enzovoorts.
Die informatie heb ik in tabblad 2 nodig, alleen niet in achtereen volgende rijen. In A6 op tabblad 2 heb ik A1 van tabblad 1 nodig. En op A6 van tab2 pas info van A2 van tab1. En op A9 weer info uit A3 van tab1. Dus steeds 2 er tussen.
Het simpele doortrekken werkt niet zoals ik het wil. Is het uberhaupt mogelijk, datgene wat ik wil?
Dat, en combineren met RIJ() gedeeld door 3quote:
quote:Op dinsdag 24 juni 2014 16:23 schreef Stickers het volgende:
Ik heb ook eens een vraagje
Ik heb zo'n paar honderd bestanden met elk twee userforms. Hoe kan ik van deze userforms bijvoorbeeld een add-in maken die maar op één plek updates nodig heeft? De userforms zijn overigens afhankelijk van elkaar.
Een alternatief waar ik aan dacht kan zijn dat ik de huidige userforms verwijder en opnieuw importeer, alleen werkt de code niet die ik heb:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Private Sub updateForm() Dim SourceWb As Workbook Dim DestinationWB As Workbook Set SourceWb = Workbooks("Testforms.xls") Set DestinationWB = Workbooks(rapp) 'verwijderen huidige formulieren DestinationWB.VBProject.VBComponents.Remove "Userform1.frm" DestinationWB.VBProject.VBComponents.Remove "Userform2.frm" 'opnieuw importeren SourceWb.VBProject.VBComponents("Userform1").Export "Userform1.frm" DestinationWB.VBProject.VBComponents.Import "Userform1.frm" SourceWb.VBProject.VBComponents("Userform2").Export "Userform2.frm" DestinationWB.VBProject.VBComponents.Import "Userform2.frm" End Sub |
Een addin maken kan altijd en daar is legio uitleg over. De vraag is meer wat je met de addin doen wilt. Over dat afhankelijkheid van elkaar bv ik snap niet wat daarmee bedoeld wordtquote:
Ik ging er vanuit dat je per module of userform één add-in nodig hebt. Het ene userform opent de andere, vandaar. Dat is dus niet het geval. De add-in is inmiddels gemaakt.quote:Op donderdag 26 juni 2014 08:16 schreef Holy_Goat het volgende:
[..]
Een addin maken kan altijd en daar is legio uitleg over. De vraag is meer wat je met de addin doen wilt. Over dat afhankelijkheid van elkaar bv ik snap niet wat daarmee bedoeld wordt
1 2 3 4 5 | Userform.XLAM naar de map invoegtoepassingen voor stickers kopiëren? Ja/Nee/Annuleren Er bestaat in deze locatie al een bestand met de naam userform.xlam. Wilt u dit bestand vervangen? Ja/Nee |
Er stan nu 3 soorten notaties in kolom A (A2, A3-A9 en A10-A15). Zijn dat de enige opties?quote:Op donderdag 26 juni 2014 14:24 schreef DIlic het volgende:
Beste mensen,
Qu63 heeft mij al aardig op weg geholpen en ik ben al bijna klaar met wat ik wil bereiken. Er zijn nog een klein aantal dingen waar ik niet uit kom en hierbij post ik een excel bestandje met de vragen erin verwerkt. Hoop dat jullie mij kunnen redden uit de brand.
Hier is de link: https://www.dropbox.com/s/4pc45liw4tn1s30/Excelvraag2.xls
Bij voorbaat dank!
1 2 3 | dummy_extraW_ABCD dummy_extraS_ACD dummy_extraD_BE |
1 2 3 4 5 6 7 8 9 | dummy_extraW_A dummy_extraW_B dummy_extraW_C dummy_extraW_D dummy_extraS_A dummy_extraS_C dummy_extraS_D dummy_extraD_B dummy_extraD_E |
In een matrix stoppen (A1:D10 oid), dat weer naar 1 kolom maken en dan sorteren op alfabet?quote:Op donderdag 26 juni 2014 15:20 schreef Jesse_ het volgende:
Ik heb een data set die er ongeveer als volgt uit ziet:
[ code verwijderd ]
Dit wil ik eigenlijk veranderd hebben naar:
[ code verwijderd ]
Nu heb ik m.b.v. het splitsen van kolommen, LENGTE() en een VBA script al wel de regels verschoven en dus ook de benodigde witregels er in gekregen.
Ik kom alleen niet van ABCD naar A (enter) B (enter) C (enter) D en zo verder.
Het gaat om een vrij grote dataset en het is de bedoeling dat het meer dan eens gedaan moet gaan worden. Iemand enig idee hoe ik dit toch enigszins kan automatiseren?
Alvast bedankt!
Hoe kom ik dan van deze matrixquote:Op donderdag 26 juni 2014 15:29 schreef qu63 het volgende:
[..]
In een matrix stoppen (A1:D10 oid), dat weer naar 1 kolom maken en dan sorteren op alfabet?
-edit-
Dus dummy_extraW_ABCD splitsen in d_eW_A, _B, _C, _D in A1, B1, C1 en D1..
1 2 | A B C A B C |
1 2 3 4 5 6 | A B C A B C |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Public str1 As String, str2 As String, lastRow As Integer Sub split() lastRow = 1 For Each cell In Range("A:A") str1 = Left(cell.Value, 13) str2 = Replace(cell.Value, str1, "") Call divide Next cell End Sub Sub divide() For x = 1 To Len(str2) Range("b" & lastRow).Value = str1 & Mid(str2, x, 1) lastRow = lastRow + 1 Next x End Sub |
Zo? http://www.pcreview.co.uk(...)column-t1772559.htmlquote:Op donderdag 26 juni 2014 15:44 schreef Jesse_ het volgende:
[..]
Hoe kom ik dan van deze matrix
[ code verwijderd ]
naar :
[ code verwijderd ]
Daar kom ik niet uit... Info uit tab 1 naar tab 2, alleen in tab 2 staat ze dus steeds met 2 regels er tussen, met behulp van =INDEX en =ROWS? Hoe exact? De info die naar tab 2 moet staat in tabblad 1, kolom M vanaf rij 2.quote:Op donderdag 26 juni 2014 01:05 schreef qu63 het volgende:
[..]
[..]
Dat, en combineren met RIJ() gedeeld door 3
Met zulke diverse datumnotaties kun je beter gebruik maken van de functie CDate in VBA:quote:Op vrijdag 27 juni 2014 11:33 schreef DIlic het volgende:
Ik heb een foutje gemaakt Qu63. Er blijkt nog een soort datumnotatie te zijn. In de volgende bestandje (Excelvraag3) heb ik de vraag beter gesteld.
https://www.dropbox.com/s/vcmi17c72vzte7a/Excelvraag3.xlsx
1 2 3 4 5 | Function CDatum(x As Range) CDatum = Format(CDate(x), "yyyy-mm-dd") End Function |
Yoo, volgende vraag.quote:Op woensdag 25 juni 2014 01:32 schreef qu63 het volgende:
[..]
Zoiets?
http://www.mijnbestand.nl/Bestand-M6EMG6XDOOMB.xlsx
Ik vraag me alleen af hoe je HTML-editor omgaat met een copy-paste vanuit Excel. Grote kans dat de tabs meegenomen worden en dan kan je alles alsnog aan gaan passen..
quote:Op zaterdag 28 juni 2014 18:39 schreef Janneke141 het volgende:
In A6 tik je =INDEX(Tab1!A$1:A$3737;ROW()/3-1)
Selecteer nu de cellen A6 t/m A8 en sleep naar beneden.
U bent een luien donder, want met de tips in post 279 en 280 had je dit ook wel zelf gekundquote:Op zaterdag 28 juni 2014 19:27 schreef einschtein het volgende:
[..]
Weet je toevallig ook het tweede?
Dat Excel vanaf M2 een lijst laat zien, bestaande uit data vanaf A2 mits die in G2 een 'yes' hebben?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |