abonnement Unibet Coolblue
  donderdag 10 december 2015 @ 10:08:48 #1
62215 qu63
..de tijd drinkt..
pi_158145658


Welkom bij “Het grote Excel vragentopic” waar je terecht kan met vragen over Excel.

In dit topic is het de bedoeling dat we gericht vragen stellen en antwoorden geven op de gestelde vragen. Om alles zo goed mogelijk te laten verlopen zijn er een aantal regels.

Regels
1. Als je een vraag stelt, zet er dan bij welke versie van Excel je hebt en op welke taal hij ingesteld staat.
2. Zet macrocode tussen [ code ] tags
3. Als het “pseudo-code” is, vermeldt dit dan duidelijk
4. Er bestaan geen domme vragen, wel domme antwoorden. Als jouw antwoord niet gaat bijdragen, geef het antwoord dan niet.
5. Dit topic is geen “code-FEBO” waar je half opgewarmde code uit de muur trekt, het is de bedoeling dat je er zelf iets van leert.

Definities
Functie Een interne functie die bij Excel is geleverd.
UDF Een “user definded function”, een zelfgebouwde functie
Macro Een stuk code die opdrachten uitvoert, gebouwd in (meestal) de VBA editor
Add-In Een Excel workbook met VBA-code (of C#, C) die als .xla (of .xll) is opgeslagen, deze is als vaste plug-in in Excel te plaatsen.
Workbook Het excelbestand
Sheet of Worksheet Het tabblad
Form, Formulier, Userform Een Dialoogvenster in VBA gebouwd

Tips & Links
De help functie van excel of visual basic voor excel kan je een eind op weg helpen. (F1)

Het workbook met het FOK!-menu zoals in de banner weergegeven is hier te vinden. Dit menu is naar wens aan te passen. De icoontjes in het menu zijn hier allemaal weergegeven. In dit workbook zijn drie macro's aanwezig:
• Een printertool waarmee je uit meerdere workbooks sheets kan selecteren voor afdrukken
• Een power replace die termen kan wijzigen in meerdere workbooks tegelijk
• Een formule vertaler, de formule in de actieve cel wordt in het engels weergegeven. Je kan ook een engelse formule invoeren die dan in de actieve cel in de geldende taal wordt geplaatst.
De UDF is naar aanleiding van een vraag in topic #29. De functie kan worden aangeroepen door in een cel =FOK() te typen en dan op de Fx te klikken voor uitleg over de variabelen.

De VBA editor bereik je door ALT+F11 in te drukken. Vanaf Excel 2007 is de VBA editor lastiger te vinden. Op deze site wordt uitgelegd hoe je de editor kan activeren.

De interne functies zijn afhankelijk van welke taal jouw Excel draait. Op deze en deze site kun je de formules in verschillende talen vertalen.

Macro uitvoering optimaliseren
De meer uitgebreide macro's kunnen traag worden, ook kan het scherm flikkeren als gevolg van veel "select" acties. Deels kun je dit ondervangen door zo veel mogelijk select acties te vervangen door directe verwijzingen naar cells en deels door een macro-optimalisatie door te voeren. In de onderstaande code is een routine voor macro-optimalisatie en een routine om de optimalisatie weer uit te zetten weergegeven. In de voorbeeld sheet is een uitgebreide versie van MOA en MOU opgenomen.

SPOILER
Om 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.
Bij macro's die een bepaalde, merkbare, tijd nodig hebben om hun werk te doen is het van belang de gebruiker een idee te geven van wat er gebeurt, zeker met macro-optimalisatie aan kan het lijken alsof Excel is vastgelopen. Je kan bijvoorbeeld de statusbar een waarde geven, met eventueel een percentage van de reeds uitgevoerde code.

SPOILER
Om 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.
Password kwijt?
Soms heb je een worksheeet beveiligd met een password maar ben je die kwijt. Gelukkig is dat geen groot probleem want de interne beveiliging van Excel stelt niet heel veel voor.
Hier vind je meer info en een downloadbare macro die alle interne passwords verwijdert.

DISCLAIMER: Denk erom dat je met het breken van de beveiliging van een excelsheet mogelijk wet- of regelgeving overtreedt. Als de spreadsheet van jezelf is zou het geen probleem moeten zijn.
In andere gevallen: vraag toestemming aan de originele schrijver.
Bij twijfelgevallen: NIET DOEN



Mooi, grappig en cool
Een uitgebreide site met nuttige en minder nuttige excelsheetjes. Van kekke grafieken om je manager of leraar te betoveren via oscillogrammen en simulatoren tot pong voor als het weer een typische vrijdagmiddag is: Excelunusual

Verder
Alle vorige topics zijn hier terug te vinden.

Nieuw topic? Haal de OP uit de wiki
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
  donderdag 10 december 2015 @ 10:10:39 #2
62215 qu63
..de tijd drinkt..
pi_158145678
quote:
0s.gif Op woensdag 9 december 2015 16:00 schreef Twentsche_Ros het volgende:

[..]

Je kunt het beste een database maken en dan de correcte datumnotatie gebruiken. Dan kun je via "filter" en het uitrolmenu alles van december selecteren, en dat kun je dan eventueel copiëren naar een apart tabblad. Ik vraag me trouwens af of dat handig is. Want dan heb je dezelfde gegevens op 2 verschillende plekken. Moet je dit écht per maand uitwerken?
Je kan ook de opmaak zetten op 'mmm'.
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_158145792
quote:
0s.gif Op dinsdag 8 december 2015 16:15 schreef Twentsche_Ros het volgende:

[..]

Moeten de 2 oorspronkelijke tabbladen in stand blijven. Maw: zijn er nog dagelijks mutaties die de 2 oorspronkelijke tabbladen ondergaan en die dan elke keer real time in het 3e gecombineerde bestand terecht moeten komen.
Of zijn het 2 statische tabbladen die eenmalig in een groter bestand terecht moeten komen, waarna de 2 oorspronkelijke bestanden eigenlijk weg kunnen. Want dat scheelt nogal in aanpak.
Het ene tabblad (het hele lange en brede) worden 2 wekelijks aangevuld met data. Nu is het aan mij om (2 wekelijks) op een handige manier de gegevens van het andere tabblad hieraan toe te voegen. Dat andere tabblad is wel steeds nieuw, maar het grote tabblad wordt dus juist steeds aangevuld. En dan natuurlijk niet even kopieren, plakken. Maar zoals ik al zei, de data op de juiste regel terecht laten komen dmv de unieke data te koppelen.
pi_158147012
Ik zit met het volgende:

In tabblad 5 heb ik gegevens horizontaal staan.
In tabblad 1 wil ik deze gegevens verticaal krijgen.

Dit zonder knippen en transponeren, omdat de cijfers automatische in blad 1 geupdate moeten worden als ik in blad 5 iets verander.

Iemand een oplossing zonder cel voor cel te selecteren/verwijzen?
  donderdag 10 december 2015 @ 11:46:05 #5
62215 qu63
..de tijd drinkt..
pi_158147301
quote:
0s.gif Op donderdag 10 december 2015 11:30 schreef Blue_note het volgende:
Ik zit met het volgende:

In tabblad 5 heb ik gegevens horizontaal staan.
In tabblad 1 wil ik deze gegevens verticaal krijgen.

Dit zonder knippen en transponeren, omdat de cijfers automatische in blad 1 geupdate moeten worden als ik in blad 5 iets verander.

Iemand een oplossing zonder cel voor cel te selecteren/verwijzen?
Gelukkig is er ook de functie transponeren() ;) https://support.office.co(...)81-93e9-4b6dfac76027
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_158147566
quote:
0s.gif Op donderdag 10 december 2015 11:46 schreef qu63 het volgende:

[..]

Gelukkig is er ook de functie transponeren() ;) https://support.office.co(...)81-93e9-4b6dfac76027
Klopt, maar ik moet verwijzen naar het blad met horizontale gegevens die bestaan uit formules. Die transponeert íe niet. Alleen cijfers.

Opgelost :)

[ Bericht 7% gewijzigd door #ANONIEM op 10-12-2015 12:06:49 ]
pi_158148193
Ook nog een ander probleempje. Ik heb wat problemen met het filteren van wat gegevens. In kolom F staan waarden met een 'aantal' karakters. Ik heb degene met 6 karakters nodig. Deze zijn weer gekoppeld aan een aantal waarden in kolom J.

Ik wil dus de karakters uit kolom J die een koppeling hebben met de 6karakterige hebben. Met alle gegevens die ervoor en erna staan ook.

Ik probeerde =IF(F:F="??????",1,0), maar die geeft instant 0. Veel verder kom ik eigenlijk niet :?
  donderdag 10 december 2015 @ 12:51:33 #8
62215 qu63
..de tijd drinkt..
pi_158148392
quote:
0s.gif Op donderdag 10 december 2015 12:40 schreef BVAM het volgende:
Ook nog een ander probleempje. Ik heb wat problemen met het filteren van wat gegevens. In kolom F staan waarden met een 'aantal' karakters. Ik heb degene met 6 karakters nodig. Deze zijn weer gekoppeld aan een aantal waarden in kolom J.

Ik wil dus de karakters uit kolom J die een koppeling hebben met de 6karakterige hebben. Met alle gegevens die ervoor en erna staan ook.

Ik probeerde =IF(F:F="??????",1,0), maar die geeft instant 0. Veel verder kom ik eigenlijk niet :?
ALS(LENGTE(F1)=6;1;0) En dat dan doortrekken naar beneden/
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_158149372
quote:
0s.gif Op donderdag 10 december 2015 12:51 schreef qu63 het volgende:

[..]

ALS(LENGTE(F1)=6;1;0) En dat dan doortrekken naar beneden/
-EDIT- _EDIT2- werkt half :P Ik wil zeg maar de gegevens uit kolom J 'over een kam scheren'. Het vervelende is namelijk dat het 6karakter getal uit F maar 1x genoteerd staat, terwijl de gelijkwaardige waarden in kolom J over meer regels uitgeschreven staat

quote:
0s.gif Op donderdag 10 december 2015 12:51 schreef qu63 het volgende:

[..]

ALS(LENGTE(F1)=6;1;0) En dat dan doortrekken naar beneden/
Zie het zo:

SPOILER
Om 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.
Dus wil ik hierachter allemaal de 1tjes hebben, ook al is de F leeg, J heeft hier wel betrekking op de F.

[ Bericht 15% gewijzigd door BVAM op 10-12-2015 13:56:19 ]
pi_158149672
quote:
0s.gif Op donderdag 10 december 2015 10:10 schreef qu63 het volgende:

[..]

Je kan ook de opmaak zetten op 'mmm'.
Is dat zo? Het ziet er weliswaar hetzelfde uit, bv "apr", maar als je het uitrolmenu hanteert gaat ie toch weer op dagniveau, of als het moet op secondeniveau door. Bovendien lijkt het me ongewenst als de "aprillen" van verschillende jaren bij elkaar staan.
Je kunt beter één kaars opsteken dan duizend maal de duisternis vervloeken.
  donderdag 10 december 2015 @ 14:28:44 #11
62215 qu63
..de tijd drinkt..
pi_158150547
quote:
0s.gif Op donderdag 10 december 2015 13:36 schreef BVAM het volgende:

[..]

-EDIT- _EDIT2- werkt half :P Ik wil zeg maar de gegevens uit kolom J 'over een kam scheren'. Het vervelende is namelijk dat het 6karakter getal uit F maar 1x genoteerd staat, terwijl de gelijkwaardige waarden in kolom J over meer regels uitgeschreven staat

[..]

Zie het zo:

SPOILER
Om 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.
Dus wil ik hierachter allemaal de 1tjes hebben, ook al is de F leeg, J heeft hier wel betrekking op de F.
ALS(OF(LENGTE(F1)=6;LENGTE(J1)=6);1;0)
Zoiets dan? :P
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_158151018
quote:
0s.gif Op donderdag 10 december 2015 14:28 schreef qu63 het volgende:

[..]

ALS(OF(LENGTE(F1)=6;LENGTE(J1)=6);1;0)
Zoiets dan? :P
Komt steeds iets dichterbij :P

Maar nu telt ie of F of J, terwijl ze moeten matchen. Die ene in F moet matchen met die paar dezelfde uit J. Snappie :P :P ;)
pi_158151465
quote:
0s.gif Op donderdag 10 december 2015 14:52 schreef BVAM het volgende:

[..]

Komt steeds iets dichterbij :P

Maar nu telt ie of F of J, terwijl ze moeten matchen. Die ene in F moet matchen met die paar dezelfde uit J. Snappie :P :P ;)
Dan zou het EN ipv OF en moeten zijn.

Maar ik verwacht niet dat dit het is wat je wilt en dat je eerst iets aan je probleem omschrijving zult moeten doen voordat hier een goede oplossing gepost wordt. ;)
pi_158151501
quote:
0s.gif Op donderdag 10 december 2015 15:16 schreef Basp1 het volgende:

[..]

Dan zou het EN ipv OF en moeten zijn.

Maar ik verwacht niet dat dit het is wat je wilt en dat je eerst iets aan je probleem omschrijving zult moeten doen voordat hier een goede oplossing gepost wordt. ;)
Had ik al geprobeerd, maar is het ook niet. Ja klopt, Ik ga even een voorbeeldje in elkaar knutselen :P
pi_158153704
quote:
0s.gif Op donderdag 10 december 2015 13:36 schreef BVAM het volgende:

[..]

-EDIT- _EDIT2- werkt half :P Ik wil zeg maar de gegevens uit kolom J 'over een kam scheren'. Het vervelende is namelijk dat het 6karakter getal uit F maar 1x genoteerd staat, terwijl de gelijkwaardige waarden in kolom J over meer regels uitgeschreven staat

[..]

Zie het zo:

SPOILER
Om 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.
Dus wil ik hierachter allemaal de 1tjes hebben, ook al is de F leeg, J heeft hier wel betrekking op de F.
2 kolommen toevoegen
zet op n1: "n"
zet op o1: "o"
zet op n2: =ALS(+LENGTE(F2)=6;+J2;"naamdienooitvoorkomt")
copieer dit naar n3 t/m n heel diep….
Zet op O2:
=ALS(+AANTAL.ALS(N:N;J2)>0;1;0)
copieer dit naar o3 t/m o heel diep….


en dan filteren op kolom o: Alle eentjes geven jouw gewenste rijen
Je kunt beter één kaars opsteken dan duizend maal de duisternis vervloeken.
pi_158169286
quote:
0s.gif Op donderdag 10 december 2015 17:08 schreef Twentsche_Ros het volgende:

[..]

2 kolommen toevoegen
zet op n1: "n"
zet op o1: "o"
zet op n2: =ALS(+LENGTE(F2)=6;+J2;"naamdienooitvoorkomt")
copieer dit naar n3 t/m n heel diep….
Zet op O2:
=ALS(+AANTAL.ALS(N:N;J2)>0;1;0)
copieer dit naar o3 t/m o heel diep….

en dan filteren op kolom o: Alle eentjes geven jouw gewenste rijen
Misschien doe ik het fout, amar niet gelukt

Ik heb even een voorbeeldje gemaakt (Rijen B2, 3 en 4 horen trouwens dezelfde getallen te zijn, maar dat doet er niet echt toe)



Dus als ik wil filteren haalt ie regel 3,4 en 5 weg, terwijl ik alleen 5 weg wil.

[ Bericht 4% gewijzigd door BVAM op 11-12-2015 12:16:39 ]
pi_158220833
Ik heb een for loop die als volgt begint:

1
2
3
4
5
    j = 20
    firstRow = 1
    lastRow = Cells(Cells.Rows.Count, 1).End(xlUp).Row

    For i = firstRow To lastRow

Werkt prima, probleem is alleen dat hij gaat loopen over de actieve sheet terwijl hij over (bv) sheet3 moet lopen.

Zal erg simpel zijn maar hoe fix ik dat?
"AAAAAHH ZENNE MOAT, WOARST VLEISCH"
pi_158222070
Dan moet je die sheet 3 activeren in je macro.
Aldus.
pi_158222547
quote:
2s.gif Op zondag 13 december 2015 19:54 schreef Z het volgende:
Dan moet je die sheet 3 activeren in je macro.
Dat snap ik, maar is er net als bij het loopen over een range een mogelijk zonder de sheet te activeren?
"AAAAAHH ZENNE MOAT, WOARST VLEISCH"
pi_158222995
quote:
0s.gif Op zondag 13 december 2015 20:15 schreef znarch het volgende:

[..]

Dat snap ik, maar is er net als bij het loopen over een range een mogelijk zonder de sheet te activeren?
ja volgens mij met iets van activate.sheet in je macro erbij.
pi_158223105
Sheets("naamvanjesheet").Cells(.....

[ Bericht 7% gewijzigd door sylvesterrr op 14-12-2015 13:41:22 ]
pi_158235751
Beste Fokkers,

Voor ons bedrijf werken wij met Magento en wij werken onder andere met offertes. Wij willen de status van deze offertes goed kunnen overzien in een Excelbestand. Hiermee willen wij een overzicht maken met welke offerte wij in op welke dag moeten opvolgen. Het probleem is dat Magento niet naar wens mee werkt. Ik krijg van Magento een .csv bestand met de gegevens:

Reference nummer
Offerte verantwoordelijke
Datum van aanvragen
Contactnaam
Tel. Contact.
Productgroep
Volgend contactmoment
Offertebedrag
% kans op Order
Datumverwachting Order

Het probleem is niet dat al deze velden ook in het Excel bestand moeten maar dat ze in een ander format staan. Het excelbestand moet een paar functies hebben:

- 'Next Contact Date' die verstreken is Rood gekleurd zal worden.
- Wij maken een driemaandse forecast over de openstaande offertes. Het offertebedrag maal % kans op Order wordt dan in de maand van Datumverwachting Order. (Offerte van 25.000 die 20% kans heeft om binnen te komen, die komt naar verwachting 31-01-2016 en telt dus voor 20% mee in de forecast van januari dus 5.000)

Ik wil eigenlijk een eenmalige koppeling maken, zodat ik telkens het csv bestand kan downloaden en maximaal 5 minuten per week tijd hoef te besteden om de werkende offertelijst te krijgen.

Hoe kan zoiets? Kun je zoiets eenvoudig zelf doen of kan ik hier beter een expert dit tegen betaling laten doen?
- Met zuidelijke groet -
pi_158236315
Neem eens je handelingen eenmalig met de macro recorder op en dan ga ik er vanuit dat het meeste al klopt voor een volgende keer openen en verwerken.
pi_158409222
Is het mogelijk om in Excel iets te maken zodat als er niks in een reeks cellen ingevuld is dat er gewoon niks staat en zodra daar een getal ingevuld wordt dat er het getal komt te staan met het woordje "stuks" erachter?

Het lijkt me mogelijk, maar aangezien ik niet zo heel bekend ben met dit soort dingen binnen Excel hoop ik dat iemand mij kan helpen hoe ik zoiets voor elkaar ga krijgen.

Bedankt alvast :)
"The only sight worse than a sad dwarf is a very sad dwarf"
"Met dubbel s welteverstaan"
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')