nieuwe Excel. Met de hand alle ovrrbodigeo kolommen verwijderen en daarna met de hand kolom invoegen werkt ook nietquote:Op dinsdag 6 november 2012 08:44 schreef Basp1 het volgende:
[..]
Oude excel, of gesaved als xls ipv xlsx?
Tot 2003 had je maar 65535 rijen, daarna zo goed als onbeperkt.
Ook zou je anders in je macro gewoon eerst de laatste rij laten verwijderen als er toch niets staat.
1 | = SMALL(IF(Rooster!D$4:D$58=1;ROW(Rooster!D$4:D$58));ROW(1:1)) |
1 | =SMALL(IF(Rooster!$D4:$AI4=1;COLUMN(Rooster!$D4:$AI4));??) |
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.En ja, Transpose nemen van de huidige tabel op een extra worksheet zou ook een oplossing zijn.
NVM. Hij deed het gewoon, had alleen niet door dat de eerste waarde een #NUM error zou gaan geven.
[ Bericht 2% gewijzigd door Ofresca op 15-11-2012 23:34:33 ]
Er van uitgaande datquote:Op dinsdag 20 november 2012 14:37 schreef hello_moto1992 het volgende:
Ik heb een overzicht van lengte en hoogte resp. een andere hoogte
Dus
lengte - hoogte1
1 - 43
2 - 34
3 - 94
4 - 6
5 - 92
En
lengte - hoogte2
2 - 34
3 - 20
5 - 60
6 - 45
7 - 50
Nu wil ik dat dit wordt:
1 - 43 - (leeg)
2 - 34 - 34
3 - 94 - 20
4 - 6 - (leeg)
5 - 92
6 - (leeg)
7 - (leeg) - 60
Weet iemand hoe ik dit het beste kan aanpakken?
Op een nieuw tabblad alle dagen van t jaar in kolom A zetten. In kolom B dvm vert/horiz.zoeken (ligt aan de opbouw van je tabel) bij iedere dag kijken of er meterstanden beschikbaar zijn. Zelfde voor kolom C, maar dan voor gas.quote:Op woensdag 21 november 2012 16:44 schreef davidvp01 het volgende:
Ik heb een excelfile, waarin ik mijn energie en gasstanden bijhoud.
Hier wil ik een grafiek/staafdiagram van maken, van verbruik van bijvoorbeeld om de 7 dagen.
ik houd niet precies iedere 7 dagen bij (soms iedere dag, soms weer 2 weken niet), dus grafiek mag een gemiddelde berekenen, wat hij die betreffende dag weer geeft.
Kom er niet uit hoe ik dit het beste kan doen, blijf steeds haken op de gemeten standen en dagen. En kan dus niet de interval instellen, met de "geschatte" standen.
Wie kan me helpen?
Het bestand.
Excel 2007, regional settings: dutch.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | A B C D noord q2 groente ¤ 1.000,00 noord q4 fruit ¤ 2.000,00 zuid q1 vlees ¤ 4.000,00 oost q4 vlees ¤ 1.000,00 west q4 groente ¤ 2.000,00 west q3 groente ¤ 1.000,00 oost q3 fruit ¤ 5.000,00 oost q2 fruit ¤ 7.000,00 zuid q3 groente ¤ 6.000,00 oost q1 vlees ¤ 3.000,00 noord q2 fruit ¤ 2.000,00 noord q2 groente ¤ 1.000,00 |
Geen idee of t werkt (en te brak om het in te voeren), maar probeer eens C14 (groente) te vervangen door OF("groente";"fruit")?quote:Op woensdag 21 november 2012 22:55 schreef Holenbeer het volgende:
Ik ben een beetje met excel aan het kloten om mijn skills wat te updaten. Dit omdat ik momenteel aan het solliciteren ben en wel eens de vraag krijg hoe goed ik met excel ben. Dit ben ik voor mijzelf even wat aan het opfrissen. Ik werk overigens met de 2010 versie
hierbij een vraag over de functie SOMMEN.ALS en de criteria
op internet bij de uitleg kwam ik de volgende data tegen (die ik zelf wat uitgebreid heb)
[ code verwijderd ]
nu is het voor mij wel duidelijk hoe ik met de SOMMEN.ALS functie een totaal bedrag van 1 type eten in 1 kwartaal uit 1 regio krijg, maar krijg ik het niet voor elkaar om een totaal bedrag te krijgen van bijvoorbeeld groente en fruit in een bepaalde periode.
De criteria in rij 14 zijn bij mij een dropdown menu's en de formule achter D14 is bij mij =SOMMEN.ALS(D2:D12;C2:C12;C14;B2:B12;B14;A2:A12;A14)
iemand die mij de goede richting in kan sturen?
Als ik bij de criteria niet naar een andere cell verwijs maar met "groente" werk, is er dan een manier om meerdere etenswaren te pakken?
Om de groente fruit optie toe te voegen aan je sumifs moet je een trucje met arrays uitvoeren.quote:Op donderdag 22 november 2012 00:16 schreef Holenbeer het volgende:
thanks voor de suggestie, maar het is niet de oplossing.
Ik verwacht ook eerder dat het iets is met de term "AND"
ik heb in de formule C14 al eens vervangen voor verschillende combinaties met de strekking groente and fruit, maar nog niet de oplossing gevonden.
ook als criterium meerdere cellen selecteren (bijvoorbeeld c14 en c15 en dan in 1 "groente" zetten en in de ander "fruit" is niet de oplossing.
Iets met vert zoeken alhoewel dat soms problematisch is bij niet gesorteerde kolomen, rij 5 is trouwens alternatief 4 moet dat er niet uit komen.quote:Op maandag 26 november 2012 15:01 schreef draadstalig het volgende:
En min. werkt wel, maar dan krijg ik alleen het getal te zien en niet de naam die daarbij hoort.
Uitgangspunt:quote:Op maandag 26 november 2012 15:11 schreef Janneke141 het volgende:
De kolommen van plaats verwisselen en dan VERT.ZOEKEN(MIN(verw);verw;2;ONWAAR) ?
Ik ben even uitgegaan van dat de bedragen in cellen A3 tm E3 staan en de tekst in cel A2:E2quote:Op maandag 26 november 2012 15:18 schreef draadstalig het volgende:
De kolommen staan als volgt en kan ik niet wisselen:
Huidig Leverancier 1 Leverancier 2 Leverancier 3 etc.
10¤ 20¤ 15¤ 8¤
Indien 8 de goedkoopste is moet er dus Alternatief 3 uitkomen.
welke?quote:
1 2 3 | Public Function RN() As Long value = ActiveWorkbook.BuiltinDocumentProperties(8) End Function |
Nope..quote:
1 2 3 | Public Function RN(ByVal prop As Integer) RN = ActiveWorkbook.BuiltinDocumentProperties(prop) End Function |
1 2 3 4 5 6 7 8 9 10 11 12 13 | Sub tst() On Error Resume Next rw = 1 Worksheets(1).Activate For Each p In ActiveWorkbook.BuiltinDocumentProperties Cells(rw, 1).Value = p.Name Cells(rw, 2).Value = p.Value rw = rw + 1 Next End Sub |
Waar doe ik dat dan? Het is niet hetzelfde als 'wijzigingen bijhouden' iig..quote:Op maandag 26 november 2012 16:45 schreef Deetch het volgende:
optie 8 is je revision number, maar dan moet je dat wel aanzetten voor dit bestand.
hmmz nope, wel van ozgrid, misschien staat ie ook daar?quote:Op maandag 26 november 2012 16:44 schreef qu63 het volgende:
Hmm, met deze code
[ code verwijderd ]
en =RN(1) in Excel krijg ik wel netjes de titel van m'n document te zien.
Blijkbaar werkt de 8e optie (volgens http://msdn.microsoft.com(...)8v=office.12%29.aspx ) dus niet
Iemand al lid van Excelforum.com? Daar schijnt wel een werkende functie te staan.. http://www.excelforum.com(...)erties-on-sheet.html
De property is er blijkbaar nog wel maar hij wordt niet automatisch bijgehouden voor exdcel bestanden. http://support.microsoft.com/kb/214393quote:Op maandag 26 november 2012 16:50 schreef qu63 het volgende:
[..]
Waar doe ik dat dan? Het is niet hetzelfde als 'wijzigingen bijhouden' iig..
Er staan wel werkende voorbeelden, althans volgens de reacties, maar hij blijft bij mij "0" als output geven..quote:Op maandag 26 november 2012 16:52 schreef Deetch het volgende:
[..]
hmmz nope, wel van ozgrid, misschien staat ie ook daar?
Heb de code uit dat document gecopy-pasted, maar helaas zonder resultaat..quote:Op maandag 26 november 2012 16:56 schreef Deetch het volgende:
[..]
De property is er blijkbaar nog wel maar hij wordt niet automatisch bijgehouden voor exdcel bestanden. http://support.microsoft.com/kb/214393
Aan dit document heb je misschien ook iets aan?
http://www.google.nl/url?(...)deWb1L9a1o-xr3CNcEnQ
Volgens mij moet je bij het opslaan het revisie nummer zelf updaten via vba en dan kun je hem uitlezen.
1 2 3 | Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Range("A8") = Range("A8") + 1 End Sub |
Custom format aanmaken "ddd dd mmm"quote:Op dinsdag 27 november 2012 12:17 schreef Chandler het volgende:
Weet iemand hoe ik een datum kan laten zien op de volgende manier
Za 6 juli
?
bij mij doet ie dat automatisch (engelse versie)quote:Op dinsdag 27 november 2012 12:41 schreef Chandler het volgende:
Top! dat werkt inderdaad goed, is er ook nog een mogelijkheid om de v van vrijdag als hoofdletter te krijgen?
Onderstaande codes werken in excel 2010 ook (getest een Deetch approved ;-) ). In principe doet jouw workaround hetzelfde alleen hou je het getal bij in de verborgen gegevens van je spreadsheet in plaats van op cel A8.quote:Op maandag 26 november 2012 22:16 schreef qu63 het volgende:
Workaround gevonden:
[ code verwijderd ]
A8 heb ik nu aangepast opgemaakt met "Versie: "#, nu doet t precies wat ik wilde
1 2 3 4 5 6 7 8 9 10 11 | Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 'voor het opslaan de revision number met 1 ophogen ActiveWorkbook.BuiltinDocumentProperties(8).Value = ActiveWorkbook.BuiltinDocumentProperties(8).Value + 1 End Sub Private Sub Workbook_Open() 'zet revisie nummer op moment van openen in cel A1 ActiveSheet.Range("A1").Value = "Huidige versie: " & ActiveWorkbook.BuiltinDocumentProperties(8).Value End Sub |
Dan zal hij dat bij een donderdag ook wel niet doen. Niets aan te doen tenzij je zelf een ingewikkelde functie wilt gaan schrijven in vba?quote:
Je kan het ook zonder VBA doen hoor, zelf een matrixje maken met dagnummers in kolom A en dagnamen in kolom Bquote:Op dinsdag 27 november 2012 13:01 schreef Deetch het volgende:
[..]
Dan zal hij dat bij een donderdag ook wel niet doen. Niets aan te doen tenzij je zelf een ingewikkelde functie wilt gaan schrijven in vba?
Hmm, grote kans dat het inderdaad niet werkte omdat ie geen versienummers bij aan het houden was. Jouw variatie doet dat idd wel.quote:Op dinsdag 27 november 2012 13:00 schreef Deetch het volgende:
[..]
Onderstaande codes werken in excel 2010 ook (getest een Deetch approved ;-) ). In principe doet jouw workaround hetzelfde alleen hou je het getal bij in de verborgen gegevens van je spreadsheet in plaats van op cel A8.
Als iemand cel A8 verwijderd en dan opslaat wordt het revisienummer gereset naar 1.
[ code verwijderd ]
Als ik het goed begrijp wil je het volgende:quote:Op woensdag 28 november 2012 15:53 schreef Stickers het volgende:
Hier naartoe verwezen door Deetch... Dus kleine copy paste van mijn topic, zodat het oude gesloten kan worden.
De voorwaardelijke opmaak van Excel is voor mij nog een beetje een raadsel... Daarom probeer ik het hier dus ook.
http://img59.imageshack.us/img59/121/voorbeeldn.jpg (copy/paste deze link) (copy/paste deze link)
Iemand ideeën?
als je tabel er zo uitziet:quote:Op woensdag 28 november 2012 15:59 schreef draadstalig het volgende:
Ik heb weer een mooie..
Ik heb een aantal getallen op rij staan als volgt:
Huidige getal: getal x getal y getal z
Bij de getallen horen personen (bv 1, 2 en 3) Ik wil nu een formule uitzetten waarbij hij het huidige getal vergelijkt met de nieuwe getallen. De kleinste daarvan neemt en daarvan aangeeft of het huidig, persoon 1, 2 of 3 is. De formule werkt, behalve dat wanneer persoon 1, 2 EN 3 geen aanbieding hebben (getal hebben) er alsnog persoon 1 uitkomt.
=ALS(L8<MAX($F8);INDEX($H$6:$K$6;VERGELIJKEN(L8;H8:K8;0));"Current") Dit is hem op het moment en ik ga dus ergens de fout in.
1 2 3 4 | A B C D 1 Current Pers1 Pers2 Pers3 2 5 4 6 8 3 9 13 4 6 |
1 | =INDEX($A$1:$D$1;1;VERGELIJKEN(MIN(A2:D2);A2:D2;0)) |
quote:Op woensdag 28 november 2012 16:20 schreef ralfie het volgende:
[..]
als je tabel er zo uitziet:
[ code verwijderd ]
Kun je de volgende formule gebruiken:
[ code verwijderd ]
Waar A2:D2 het bereik van je rij is.
1 2 3 | Huidige A B C D New price Persoon ¤ 20,00 ¤ 15 ¤ 10 ¤ 5 ¤ 8 ¤ 5 C ¤ 10,00 0 0 0 0 0 A |
Ok nu ben ik al een heel eind. Ik wil echter dat het 'van toepassing op'-bereik zich aanpast aan de hand van de huidige maand. De vorige maanden(gerealiseerde cijfers dus) moeten dus niet opgemaakt worden. alleen vanaf de huidige maand en verderquote:Op woensdag 28 november 2012 16:04 schreef ralfie het volgende:
[..]
Als ik het goed begrijp wil je het volgende:
alle maanden kolommen muv eerste selecteren
Daarna, voorwaardelijke opmaak, 'celwaarde niet gelijk aan' en dan vul je als waarde in de verwijzing naar de eerste cel van de eerste maand.
c'est tout.
Dit gaat het makkelijkste als je twee voorwaardelijke opmaak regels gebruikt.quote:Op woensdag 28 november 2012 17:01 schreef Stickers het volgende:
[..]
Ok nu ben ik al een heel eind. Ik wil echter dat het 'van toepassing op'-bereik zich aanpast aan de hand van de huidige maand. De vorige maanden(gerealiseerde cijfers dus) moeten dus niet opgemaakt worden. alleen vanaf de huidige maand en verder
Of vraag ik nu te veel?
Zelf heb ik al geprobeerd te kloten met adres en index, maar dat wordt een beetje erg complex.
=ADRES(6;VERGELIJKEN(INDEX($A$13:$B$24;VERGELIJKEN($J$1;$B$13:$B$24;0);1);D5:H5;0)+3)
Resultaat = $G$6
Hier heb ik november gebruikt als huidige maand
Waarom moet er B uitkomen? Omdat A3=C2? Ik volg je logica niet.quote:Op woensdag 28 november 2012 16:35 schreef draadstalig het volgende:
[..]
[ code verwijderd ]
`
Korte toelichting. Bij 10 euro huidig en A t.m D hebben geen prijs geeft hij alsnog A aan, en niet B. Formule is momenteel zo opgesteld: =ALS(L8<MAX($F8);INDEX($H$6:$K$6;VERGELIJKEN(L8;H8:L8;0));"Current")
=A1*indirect("Z"&A1)quote:Op vrijdag 30 november 2012 10:37 schreef xyntarsus het volgende:
Goeiemorgen allemaal,
ik heb een (denk ik) vrij simpele vraag, maar ik kom er even niet uit.
ik heb een variabele (7 mogelijkheden) en per mogelijkheid moet de variabele met de waarde uit een cel vermenigvuldigd worden.
Ik kan dit wel in een "als" functie stoppen, maar dat wordt zo onoverzichtelijk.
(als(A1="1";A1*Z1;(als(A1="2";A1*Z2;(als.....)
Kunnen jullie me op weg helpen met een macro'tje hiervoor?
Alvast bedankt
je omshcrijving is niet helemaal duidelijk maar kan het zijn dat de waarde die niet gevonden wordt misschien net iets anders geschreven wordt in de regel waar je hem zou willen vinden?quote:Op donderdag 29 november 2012 10:28 schreef marcb1974 het volgende:
Ik moet een grote zoekactie houden in excel. Omdat dit met 2 voorwaarden moet viel verticaal zoeken af en gebruik ik nu index met vergelijken. Hiermee gaat het zoeken goed.
Echter stopt hij op een bepaald moment en vindt dan niets meer. De waarde die een regel eerder nog gevonden werd is dan ineens niet meer te vinden, aan het eind van het bestand ziet hij ze dan wel weer. Iemand enig idee hoe dat kan? Het is nu een bestand van ruim 16.000 regels, maar dat gaan er meer worden.
Ik werk in excel 2007.
AHA! Dan heb je vert.zoeken nodigquote:Op vrijdag 30 november 2012 11:30 schreef xyntarsus het volgende:
die begrijp ik niet helemaal, wellicht ook dat ik mijn voorbeeld achteraf gezien verkeerd geformuleerd heb.
de waardes die ik in een cel invul (niet persé A1 dus) zijn vooraf vastgestelde lengtes
(600-900-1250-1600-1800-2400-3000) en hier moet uit een andere cel een prijs aangehangen worden.
(die weer uit een extern bestand komt)
das wat ik eigenlijk probeer te maken is iets dat kijkt welke lengte er ingevoerd is, vervolgens in een lijstje kijkt welke prijs erbij hoort en tot slot vermenigvuldigd met een in een andere cel vaststaand (niet variabel) aantal
ja hoor een pulldown menu is ook maar gewoon een getalquote:Op vrijdag 30 november 2012 11:46 schreef xyntarsus het volgende:
thx dit lijkt het idd te zijn.
werkt dit overigens ook met een pulldown menu?
(dan kan ik voorkomen dat mensen de verkeerde waarde invullen)
1 | [ss].000 |
De waarden zijn allemaal gelijk, komen uit 1 bestand. Er staan geen spaties voor of achter, geen afrondingen, het zijn verrichtingscodes.quote:Op vrijdag 30 november 2012 11:32 schreef Deetch het volgende:
[..]
je omshcrijving is niet helemaal duidelijk maar kan het zijn dat de waarde die niet gevonden wordt misschien net iets anders geschreven wordt in de regel waar je hem zou willen vinden?
Misschien staat er stiekem een spatie voor of achter?
Is het getal afgerond?
Kun je een voorbeeld geven van je functie en waarop het dan mis gaat?
Kan het zijn dat het mis gaat in de ALS functie?quote:Op maandag 3 december 2012 09:23 schreef marcb1974 het volgende:
[..]
De waarden zijn allemaal gelijk, komen uit 1 bestand. Er staan geen spaties voor of achter, geen afrondingen, het zijn verrichtingscodes.
De functie is: {=INDEX('DBC Services'!C:C;VERGELIJKEN(Factuur!B6994;ALS('DBC Services'!B:B=Factuur!C6994;'DBC Services'!A:A);0))}
Dan zou het atlijd fout moeten gaan. En nu gaat het maar voor een deel fout. Dat is het deel waar ik dus tegenaan blijf lopen.quote:Op maandag 3 december 2012 09:42 schreef Deetch het volgende:
[..]
Kan het zijn dat het mis gaat in de ALS functie?
Als namelijk de voorwaarde niet klopt dan heb je geen array om de waarde van vergelijken in te zoeken waardoor je geen rijnummer hebt voor je INDEX functie.
Het gaat alleen fout als Factuur!C6994 niet in 'DBC Services'!B:B zou staan of als Factuur!B6994 niet in 'DBC Services'!A:A staatquote:Op maandag 3 december 2012 09:43 schreef marcb1974 het volgende:
[..]
Dan zou het atlijd fout moeten gaan. En nu gaat het maar voor een deel fout. Dat is het deel waar ik dus tegenaan blijf lopen.
Het is een bestand dat bestaat uit veel zich herhalende waarden. Zowel in A:A als B:B. De kans dat een waarde niet voorkomt in 'DBC Services' is hierdoor klein. Van de waarden die inderdaad niet voorkomen weten we welke dat zijn en verwachten we ook een #N/B.quote:Op maandag 3 december 2012 09:49 schreef Deetch het volgende:
[..]
Het gaat alleen fout als Factuur!C6994 niet in 'DBC Services'!B:B zou staan of als Factuur!B6994 niet in 'DBC Services'!A:A staat
Soms helpt het om de functie uit te splitsen om te zien welk deel verkeerd lopt. Dus eerst een kolom met de ALS-functie, dan de VERGELIJKEN en dan de INDEX.
Wat gebeurt er als je de spreadsheet opnieuw opbouwt vanuit een lege spreadsheet?quote:Op maandag 3 december 2012 10:11 schreef marcb1974 het volgende:
[..]
Het is een bestand dat bestaat uit veel zich herhalende waarden. Zowel in A:A als B:B. De kans dat een waarde niet voorkomt in 'DBC Services' is hierdoor klein. Van de waarden die inderdaad niet voorkomen weten we welke dat zijn en verwachten we ook een #N/B.
Het probleem zit hem echt erin dat hij een deel (van rij 6980 tm 14664) altijd als #N/B geeft. Een heel aantal van de waarden uit die range is handmatig opgezocht en staat er netjes in. Zonder spaties, afronden, etc.
Ik zoek echt naar het rare, in de formule opzich zit, voor zover wij hier weten, niets fout.
1 2 3 4 5 6 7 | Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Range("IN1") = Range("IN1") + 0.1 End Sub Private Sub Save_File() ActiveWorkbook.SaveAs "C:\Users\Sven\School\Hoofdfase\Afstuderen\Planning\Planning Afstuderen - " & Format(Date, "dd-mm-yyyy") & ".xlsm" End Sub |
Ik ga het eens proberenquote:Op maandag 3 december 2012 12:06 schreef Deetch het volgende:
[..]
Wat gebeurt er als je de spreadsheet opnieuw opbouwt vanuit een lege spreadsheet?
Dus alle "kale" data (alles wat puur getal of tekst zou moeten zijn en geen resultaat van formules) kopieren en dan plakken speciaal als waarden en vervolgens de kolommen met formules opnieuw maken?
syntax:quote:Op maandag 3 december 2012 12:31 schreef qu63 het volgende:
Wat is er niet goed aan deze VBA-code?
[ code verwijderd ]
Ik wil dat iedere keer dat ik bestand opsla cel IN1 met 0,1 verhoogd wordt (het versienummer) en dat het bestand daarna (ook) opgeslagen wordt in "C:\Users\Sven\School\Hoofdfase\Afstuderen\Planning\" als "Planning Afstuderen - 03-12-2012.xlsm" in dit geval.
1 | Range("IN1").value = Range("IN1").value + 0.1 |
Dat stuk code werkt juist probleemloos op de manier zoals het in mijn post staat, het tweede deel doet t nietquote:Op maandag 3 december 2012 16:29 schreef Deetch het volgende:
[..]
syntax:
range("IN1") betekent een cel adres
range("IN1").value betekent de waarde van de cel met adres IN1
je code moet dus worden:
[ code verwijderd ]
Waar roep je de sub aan dan?quote:Op maandag 3 december 2012 17:49 schreef qu63 het volgende:
[..]
Dat stuk code werkt juist probleemloos op de manier zoals het in mijn post staat, het tweede deel doet t niet
Die staat in ThisWorkbook, niet onder modules.quote:
Nee, je moet in je beforesafe zoiets doenquote:Op maandag 3 december 2012 18:56 schreef qu63 het volgende:
[..]
Die staat in ThisWorkbook, niet onder modules.
Verder geen verwijzing naar die sub, dacht dat ie op dezelde manier zou werken als Workbook_BeforeSafe()
1 2 3 4 5 6 | sub Workbook_BeforeSafe( blah blah) application.enableevents = false cancel=true workbook.saveas naamvanjewerkboek.xls application.enableevents = true end sub |
Nee natuurlijk niet, het is nu gewoon een macro. Die moet je wel aanroepen.quote:Op maandag 3 december 2012 18:56 schreef qu63 het volgende:
[..]
Die staat in ThisWorkbook, niet onder modules.
Verder geen verwijzing naar die sub, dacht dat ie op dezelde manier zou werken als Workbook_BeforeSafe()
Top, die werktquote:Op maandag 3 december 2012 19:24 schreef ralfie het volgende:
[..]
Nee, je moet in je beforesafe zoiets doen
[ code verwijderd ]
Waarom werkte Private Sub Workbook_BeforeSave() dan welquote:Op maandag 3 december 2012 19:24 schreef DaFan het volgende:
[..]
Nee natuurlijk niet, het is nu gewoon een macro. Die moet je wel aanroepen.
bepaalde events in vba worden automatisch aangeroepen. Workbook_open wordt aangeroepen wanneer het object Workbook het 'open' event triggered. Je kunt niet zomaar subs toevoegen en verwachten dat excel/vba zomaar weet wanneer die het moet runnen.quote:Op maandag 3 december 2012 19:47 schreef qu63 het volgende:
[..]
Waarom werkte Private Sub Workbook_BeforeSave() dan welDeze werd nergens aanders aangeroepen..
Ik vond die safe_file() code ergens en ging er van uit dat die op dezelfde manier werkte als Workbook_BeforeSafe()quote:Op maandag 3 december 2012 19:51 schreef ralfie het volgende:
[..]
bepaalde events in vba worden automatisch aangeroepen. Workbook_open wordt aangeroepen wanneer het object Workbook het 'open' event triggered. Je kunt niet zomaar subs toevoegen en verwachten dat excel/vba zomaar weet wanneer die het moet runnen.
bovenaan de code editor staan van die leuke dropdown menuutjes die je altijd per ongeluk indrukt, maar die eigenlijk WEL handig zijn als je een event nodig hebt.quote:Op maandag 3 december 2012 19:58 schreef qu63 het volgende:
[..]
Ik vond die safe_file() code ergens en ging er van uit dat die op dezelfde manier werkte als Workbook_BeforeSafe()
My bad
Sven tochquote:Op maandag 3 december 2012 19:58 schreef qu63 het volgende:
[..]
Ik vond die safe_file() code ergens en ging er van uit dat die op dezelfde manier werkte als Workbook_BeforeSafe()
My bad
Sorry... Lui hequote:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Public Function FileFolderExists(strFullPath As String) As Boolean On Error GoTo EarlyExit If Not Dir(strFullPath, vbDirectory) = vbNullString Then FileFolderExists = True EarlyExit: On Error GoTo 0 End Function Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Range("IN1") = Range("IN1") + 0.1 Application.EnableEvents = False Cancel = True If FileFolderExists("C:\Users\Sven\School\Hoofdfase\Afstuderen") Then ActiveWorkbook.SaveAs "C:\Users\Sven\School\Hoofdfase\Afstuderen\Planning\Planning Afstuderen - " & Format(Date, "dd-mm-yyyy") & " - " & Format(TimeSerial(Hour(Now()), Minute(Now()), Second(Now())), "hh-mm-ss") & ".xlsm" Application.DisplayAlerts = False ActiveWorkbook.SaveAs "C:\Users\Sven\School\Hoofdfase\Afstuderen\Planning Afstuderen.xlsm" Application.DisplayAlerts = True Application.EnableEvents = True Else Application.Dialogs(xlDialogSaveAs).Show Application.EnableEvents = True End If End Sub |
quote:Op woensdag 5 december 2012 14:22 schreef marcb1974 het volgende:
Ik wil de functie =lengte() gebruiken in een =als(). Dit lukt niet omdat excel dat blijkbaar niet kan. Weet iemand waarom dit is? Is dit een bekend probleem?
1 | =ALS(LENGTE(A1)>4;"meer dan vier tekens";"vier tekens of minder") |
In C1 de volgende formule: =ALS(B1<>0;1;"") en dan doortrekken naar beneden.quote:Op donderdag 6 december 2012 10:49 schreef draadstalig het volgende:
ik heb de volgende gegevens:
1: 2:
5¤ 7¤
10¤ 0¤
8¤ 3¤
Nu wil ik indien in 2 een getal voorkomt (dus niet 0) 1 meenemen en in totaal optellen. Ik heb het al geprobeerd via sommen.als( maar dit is nog niet gelukt.
Iemand?
1 = A1:A20quote:Op donderdag 6 december 2012 10:49 schreef draadstalig het volgende:
ik heb de volgende gegevens:
1: 2:
5¤ 7¤
10¤ 0¤
8¤ 3¤
Nu wil ik indien in 2 een getal voorkomt (dus niet 0) 1 meenemen en in totaal optellen. Ik heb het al geprobeerd via sommen.als( maar dit is nog niet gelukt.
Iemand?
Werkt! Thnxquote:Op donderdag 6 december 2012 15:52 schreef Deetch het volgende:
[..]
1 = A1:A20
2 = B1:B20
=SOMPRODUCT(--(B1:B20<>0);A1:A20)
De functie kijkt of de waarde in B1 tm B20 niet 0 is en maakt er dan een 1 van als die voorwaarde klopt en een 0 als de voorwaarde niet klopt (lege cel of waarde = 0). Deze enen en nullen worden vermenigvuildigd met hert bijbehorende getal in kolom A en dan opgeteld.
Nee dat is niet juist. Hij moet dus 2 en 3 vergelijken met 1 en indien één van deze lager is kwa aantal (in euro's) dan moet hij deze pakken. Echter rekent hij ook de 0 als getal en eigenlijk moet hij 0 dus overslaan. Ik had hem zo:quote:Op donderdag 6 december 2012 18:43 schreef ralfie het volgende:
als A1:C1 je cellen zijn
[ code verwijderd ]
enteren met ctr+shift+enter
Nvm.quote:Op donderdag 6 december 2012 19:16 schreef draadstalig het volgende:
[..]
Nee dat is niet juist. Hij moet dus 2 en 3 vergelijken met 1 en indien één van deze lager is kwa aantal (in euro's) dan moet hij deze pakken. Echter rekent hij ook de 0 als getal en eigenlijk moet hij 0 dus overslaan. Ik had hem zo:
=ALS(I4+S4=0;F4;MIN(I4;S4))
I4 = 2
S4 = 3
F4 = 1
Dus 2+3 = 0 geef me dan 1 (huidig), zo niet geef me dan minimale van 2 of 3
Bij die laatste moet hij 0 dus overslaan.
Sorry ik lees het net terug en ben het veels te moeilijk aan het maken.quote:Op donderdag 6 december 2012 19:21 schreef DaFan het volgende:
[..]
Nvm.
Wat moet je output zijn dan in je eerste voorbeeld want je praat wel een beetje vaag.
Ralfie zijn oplossing had ik ook gezegd.
Kolom 1 is leeftijden (horizontale as), de andere 2 zijn absolute en relatieve aantallen?quote:Op donderdag 6 december 2012 23:34 schreef einzeinz het volgende:
Ik heb nu nog steeds problemen met het volgende
<25 17 7%
25-30 45 17%
30-35 49 19%
35-40 34 13%
40-45 35 14%
45-50 30 12%
>50 48 19%
Ik wil dat de gegevens in een staafgrafiek worden weergegeven startend bij de -25-jarigen.
Dat lukt me dus niet!
Ik moet de taak maandag indienen.
Kolom 1 zijn inderdaad leeftijden, kolom 2 zijn het aantal deelnemers en kolom 3 is het percentage.quote:Op vrijdag 7 december 2012 00:13 schreef qu63 het volgende:
[..]
Kolom 1 is leeftijden (horizontale as), de andere 2 zijn absolute en relatieve aantallen?
Even snel in elkaar gezet: klikquote:Op vrijdag 7 december 2012 00:24 schreef einzeinz het volgende:
[..]
Kolom 1 zijn inderdaad leeftijden, kolom 2 zijn het aantal deelnemers en kolom 3 is het percentage.
Nu wil ik uiteraard ook de gegevens logisch ordenen en daar loopt het mis.
Je wil de kleur van de staafdiagram af laten hangen van het percentage?quote:Op vrijdag 7 december 2012 00:55 schreef einzeinz het volgende:
Ik zat persoonlijk meer te denken aan zoiets.
[ afbeelding ]
In een staafdiagram dus
Nee klopt niet. De cellen staan niet achter elkaar maar er zit er steeds één tussen dus : gebruiken kan niet. De volgende cellen moeten dus vergeleken worden, waarbij 0 wordt uitgesloten:quote:Op donderdag 6 december 2012 19:57 schreef DaFan het volgende:
De formule van Ralfie klopt dan wel gewoon hoor, denk eraan dat je bevestigt met Ctrl-Shift-Enter.
Dat lijkt niet te kunnen, ook niet als je van de cellen een named range maakt.quote:Op vrijdag 7 december 2012 10:03 schreef draadstalig het volgende:
[..]
Nee klopt niet. De cellen staan niet achter elkaar maar er zit er steeds één tussen dus : gebruiken kan niet. De volgende cellen moeten dus vergeleken worden, waarbij 0 wordt uitgesloten:
F4 I4 en S4
Hoe werkt dit dan?
Oke, eens kijken. Kan ik die raadplegen via de functie module?quote:Op dinsdag 11 december 2012 19:39 schreef DaFan het volgende:
Dat is niet voorwaardelijke opmaak.
Kijk naar de ALS() functie.
Jawel. En via de help. En anders hier maar kan krijg je het voorgekauwd en leer je niksquote:Op dinsdag 11 december 2012 21:00 schreef Landgeld het volgende:
[..]
Oke, eens kijken. Kan ik die raadplegen via de functie module?
Je zou een import-macro kunnen maken. Nieuw Excel-document openen, macro starten en dan importeren. Na afloop macro stoppen en aanpassen zodat ie de cellen invoegt na de laatste rij.quote:Op woensdag 12 december 2012 12:25 schreef DarkSavior het volgende:
Ik download wel eens CSV files vanuit mijn bank. Deze gegevens zijn dan gescheiden met een komma, punt of puntkomma teken. Hoe kan ik deze gegevens geautomatiseerd in een tabel stoppen per kolom?
Opslaan als?quote:Op woensdag 12 december 2012 13:02 schreef DarkSavior het volgende:
Nu probeer ik kolommen weer om te zetten naar tekst met een komma als scheidingsteken en dan op te slaan als .csv file, maar ik kan de functie niet vinden. Iemand een idee?
Ja, .csv's kunnen niet omgaan met functies, die hebben alleen data.quote:Op woensdag 12 december 2012 13:11 schreef DarkSavior het volgende:
Het bestand zelf is een .xlsx bestand, als ik dan vervolgens opslaan als... .csv dan krijg ik een waarschuwing. De file bevat mogelijk functies die niet compatibel zijn.
Als het een echte csv is dan zijn de gegevens met een , gescheiden. Als je in je windows als lijstscheidingsteken ook een , hebt dan kun je het bestand direct openen met excel.quote:Op woensdag 12 december 2012 12:25 schreef DarkSavior het volgende:
Ik download wel eens CSV files vanuit mijn bank. Deze gegevens zijn dan gescheiden met een komma, punt of puntkomma teken. Hoe kan ik deze gegevens geautomatiseerd in een tabel stoppen per kolom?
en ook maar 1 tabbladquote:Op woensdag 12 december 2012 13:19 schreef qu63 het volgende:
[..]
Ja, .csv's kunnen niet omgaan met functies, die hebben alleen data.
Je syntax klopt niet helemaal: de door jou genoemde formule hoort er te staan alsquote:Op donderdag 13 december 2012 21:17 schreef Landgeld het volgende:
Ik kom er niet uit met de IF (ALS) functie..
Dit wil ik bereiken in 1 cel (Dus met 1 formule):
getal tussen 0-10 -> automatisch (in andere cel) het cijfer 1 tevoorschijn
getal tussen 10-20 -> automatisch (in andere cel) het cijfer 2 tevoorschijn
getal tussen 20-30 -> automatisch (in andere cel) het cijfer 3 tevoorschijn.
Heb net allerlei tuturials gelezen en 1 formule lukt, namelijk: =IF(A1 <10, 1)
Het combineren van de bovengenoemde voorbeelden lukt echter niet en weigert Excel 2010 (foutmelding).
Iemand enig idee hoe ik deze IF formulie werkend kan krijgen in mijn bovengenoemde voorbeeld? Ik werk met IF (Engels) en in Excel 2010.
Ik heb een oplossing die niet heel super is maar wel werkt. In de kolom C heb ik nu gezet als formule:quote:Op vrijdag 14 december 2012 01:21 schreef jakees het volgende:
Ik heb een lijst met veel waarden in 2 kolommen. In kolom A een id en in kolom B de waarde. Een voorbeeld:
ID Naam
1 Jan
1 Piet
1 Klaas
1 Henk
2 Wim
2 Leo
3 Sjors
4 Dirk
Wat ik wil is naast de ID's de waarden in 1 cel zetten dus
C D
1 Jan, Piet, Klaas, Henk
2 Wim, Leo
3 Sjors
4 Dirk
Transponeren zeg maar dan met heel veel unieke waarden in kolom A en B. Verticaal zoeken is niet te doen omdat bij de ene ID wel 20 waarden zijn dan krijg je een if met 20 then / else. Draaitabellen is volgens mij ook geen optie. Heeft iemand een idee? Thx alvast!
Die puntcomma en komma is geheel afhankelijk van je windows instellingen en wat je daar als lijstscheidingsteken (list-seperator) gebruikt. Over het algemeen is het zo dat een Nederlands ingestelde computer ALS gebruik icm ; en een Engels/Amerikaans ingestelde computer IF icm met , . Combinaties komen ook voor maar dat is imho verwarrend.quote:Op donderdag 13 december 2012 21:22 schreef Janneke141 het volgende:
[..]
Je syntax klopt niet helemaal: de door jou genoemde formule hoort er te staan als
=IF(A1<10;1) dus zonder spaties en met een ; in plaats van , tussen de argumenten.
Om een als-clausule te maken waarbij de waarde tussen twee getallen moet zitten gebruik je AND:
=IF(AND(A1>10;A1<20);2)
Bedenk je zelf even wat er moet gebeuren als A1=10?
Je kunt een eigen functie maken. Kopieer en plak onder staande code in een visual basic module van je spreadsheet.quote:Op vrijdag 14 december 2012 01:46 schreef jakees het volgende:
[..]
Ik heb een oplossing die niet heel super is maar wel werkt. In de kolom C heb ik nu gezet als formule:
=ALS(B2<>B1;A2;TEKST.SAMENVOEGEN(B1;A2)) ==> hiermee bouw ik dan het samenvoegen op net zo lang tot een nieuwe sleutel komt.
Daarnaast heb ik de volgende formule aangemaakt:
=ALS(B2<>B3;"ja";"nee")
Met die formule selecteer ik dan de laatste samenvoeging en dit geheel heb ik gekopieerd naar een ander blad en voila. Niet erg onderhoudsvriendelijk dus als jullie iets beters weten graag!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Public Function ConcatIf(varCriteria, rngConcat As Range, iOffset As Integer) As String 'concatenates strings from rngConcat if varCriteria is met in column iOffset to the range (negative values for left) Dim r As Range For Each r In rngConcat If r.Offset(0, iOffset) = varCriteria Then If ConcatIf = "" Then ConcatIf = r Else ConcatIf = ConcatIf & "," & r End If End If Next r End Function |
calculatie was ik vergeten ja..quote:Op zaterdag 15 december 2012 01:42 schreef snabbi het volgende:
1) zorg dat de calculatie uit staat wanneer je je cellen muteert
2) gebruik een reguliere expressie om je replace uit te voeren
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Sub RemoveLeadingSpaces() Dim R As Range Application.EnableEvents = False On Error GoTo ErrH: If TypeOf Selection Is Excel.Range Then For Each R In Selection.Cells If R.HasFormula = False Then R.Value = Trim(R.Value) R.Value = Application.WorksheetFunction.Clean(R.Value) End If Next R End If ErrH: Application.EnableEvents = True End Sub |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Sub RemoveLeadingSpaces() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.EnableEvents = False Dim R As Range On Error GoTo ErrH: If TypeOf Selection Is Excel.Range Then For Each R In Selection.Cells If R.HasFormula = False Then R.Value = Trim(R.Value) R.Value = Application.WorksheetFunction.Clean(R.Value) End If Next R End If ErrH: Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.EnableEvents = True End Sub |
Die van snabbi is alleen handiger, scheelt weer een if-loopquote:Op maandag 17 december 2012 08:50 schreef Deetch het volgende:
Handig zeg die HasFormula, gaat in het "lijstje"
1 | =KLEINSTE(ALS('[Lijst obv SBI 2008 493 + 79 opgeschoond.xlsx]Lijst'!$B$2:$B$31357=$C2;RIJ('[Lijst obv SBI 2008 493 + 79 opgeschoond.xlsx]Lijst'!$B$2:$B$31357));RIJ($1:$1)) |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |