FOK!forum / Digital Corner / [Excel] Het grote Excel vragen topic #34
Deetchvrijdag 5 oktober 2012 @ 11:58
2co31ux.jpg

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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub MOA()
'Macro optimalisatie aan
'Roep deze routine aan bij aanvang van jouw code

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
End Sub

Sub MOU()
'macro optimalisatie uit
'Roep deze routine aan na afloop van jouw code
'zorg er ook voor dat eventuele foutvangers ook verwijzen naar deze routine
    
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    Application.StatusBar = ""
End Sub
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
1
2
3
4
5
6
***Pseudo-code***
for i = 1 to EndOfRoutine
Application.StatusBar = "Bezig met uitvoeren FOK! macro_1 " _
&  100 - cInt((EndOfRoutine - i)/ EndOfRoutine * 100) & " %"
'FOK!_macro_1 code
next
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

[ Bericht 5% gewijzigd door Deetch op 05-10-2012 12:05:14 ]
Deetchvrijdag 5 oktober 2012 @ 12:04
-test-
qu63vrijdag 5 oktober 2012 @ 12:50
quote:
3s.gif Op vrijdag 5 oktober 2012 11:38 schreef Deetch het volgende:

[..]

Zo te zien is het baggeruurtje begonnen? :D
Neuh, ik moest daar gewoon meteen aan denken toen ik je post las :P
Holy_Goatzaterdag 6 oktober 2012 @ 09:28
Iemand ervaring met Excel projectjes op licentie verkopen?

100% krijg je het niet dicht, maar qua security wil ik het wel een beetje de non Excel savvi gebruiker ontmoedigen kopien rond te sturen...
snabbizaterdag 6 oktober 2012 @ 10:08
Kopieen is nu juist wat niet tegen te houden is. Het enige dat je een beetje kunt beschermen is je broncode. Alleen wanneer je het je gebruiker moeilijker maakt om het zelf te kunnen gebruiken kun je wellicht iets voorkomen. Bijvoorbeeld dat de gebruiker zijn MAC adres aan jou geeft en dat jij je code zo schrijft dat het alleen werkt op dat MAC adres. Maakt het wel bewerkelijker voor jezelf.
qu63zaterdag 6 oktober 2012 @ 10:34
quote:
0s.gif Op zaterdag 6 oktober 2012 09:28 schreef Holy_Goat het volgende:
Iemand ervaring met Excel projectjes op licentie verkopen?

100% krijg je het niet dicht, maar qua security wil ik het wel een beetje de non Excel savvi gebruiker ontmoedigen kopien rond te sturen...
Geen ervaring mee.

Je zou ook je code heel 'fuzzy' kunnen maken door 'a = b' te doen ipv 'MyName = Input' oid. Op die manier kan je ook inbouwen dat als de code korter/kleiner wordt dan x regels/bytes er overal rode lijnen komen bijvoorbeeld :P

Zoiets had ik iig een keer met een PHP-script wat ik gevonden had.. Fucking irritant! :D
Maryn.zaterdag 6 oktober 2012 @ 14:56
Ik ben opzoek naar een oplossing in het volgende:
Ik heb een formule in een cel staan: B12/B2
Nu wil ik graag dat als je in een andere cel bijv. C1, 12 neer zet...
dat de formule automatisch B12/B2 (wordt in een andere cel dus).

Dus als je in C1 15 zet, dan wordt de formule in een andere cel B15/B2.

Weet iemand hoe ik dit kan doen?

thanks!
snabbizaterdag 6 oktober 2012 @ 15:23
Volgens mij zoek je de indirect functie:
Je formule is: =indirect("B"&C1)/B2

Wanneer C1 de waarde 15 heeft krijg je B15/B2
MrNilesmaandag 8 oktober 2012 @ 12:26
is er hier een excel-guru die me kan helpen met het maken van onderstaande grafiek

normalcurve0001.PNG

het heet iets van sigma curve / gausse curve / normal distribution curve
op internet vind ik wel wat, maar geen goede uitleg hoe ik m kan maken
VorteXxXmaandag 8 oktober 2012 @ 12:29
http://www.tushar-mehta.c(...)stribution/index.htm

Zoiets?
MrNilesmaandag 8 oktober 2012 @ 12:43
quote:
die lijkt er wel op..maar je ziet dat ik een staafdiagram en een curve door elkaar heb...en de curve volgt niet de staaf...wel het gemiddelde ervan, dat is de moeilijkheid
en volgens niet het geval in je voorbeeld
Holy_Goatmaandag 8 oktober 2012 @ 12:49
Ik word helemaal schijtesziek van het volgende.

Ik heb een projectje gemaakt in VBA; werkt helemaal top op mijn pc (office2010 32bit).
Ik vreesde er al voor maar het dreigt waarheid te worden.

De listview control die ik gebruik (mscomctl.ocx) werkt niet op alle andere pc's. Ik heb de mscomctl zelf geregistreerd voor office 2010, by the way. De andere pc werkt met office 2007, maar ook daar kan 'het object niet gevonden worden'.

Welk mooi alternatief heb ik voor de listview control? De ocx op allerlei andere pc's registreren is geen optie. Ohja: ander hulp is ook welkom.

Trouwens: bij pc vriendin werkte de file ook. Na saven nog steeds. Maar eenmaal terug op mijn PC niet meer. (object not found).
Holy_Goatmaandag 8 oktober 2012 @ 13:06
Betere vraag is wellicht:

ik zou graag iets hebben dat bijna hetzelfde kan als een listview control.
Ofwel: meerdere rijen+kolommen, liefst een scrollbar, en evt aanpassen opmaak per rij.
Ook klik/dubbelklik moet werken.
ralfiemaandag 8 oktober 2012 @ 15:36
quote:
0s.gif Op maandag 8 oktober 2012 13:06 schreef Holy_Goat het volgende:
Betere vraag is wellicht:

ik zou graag iets hebben dat bijna hetzelfde kan als een listview control.
Ofwel: meerdere rijen+kolommen, liefst een scrollbar, en evt aanpassen opmaak per rij.
Ook klik/dubbelklik moet werken.
Gebruik een listbox, maak zelf iets in vba (veel werk!) of voeg de control toe middels een xladdon vanuit DotNet (C# of VB#)

quote:
0s.gif Op maandag 8 oktober 2012 12:26 schreef MrNiles het volgende:
is er hier een excel-guru die me kan helpen met het maken van onderstaande grafiek

[ afbeelding ]

het heet iets van sigma curve / gausse curve / normal distribution curve
op internet vind ik wel wat, maar geen goede uitleg hoe ik m kan maken
Ik neem aan dat je wel een histogram kunt maken? Deze moet je normaliseren (ywaarde/som(totaal)) en dan heb je dat gedeelte.
De normaaldistributie maak je middels een gemiddelde (=gemiddelde(range)) en standaard deviatie (=stdev(range)).

Je hebt drie kolommen nodig: één kolom (de z-waarden) van -3 naar 3 (met een stapgrootte naar keuze), één kolom met X-waarden (=z-waarde*stdev+gemiddelde) en één kolom met de normaalwaarde (=norm.verd(x-waarde; gemiddelde;stdev;ONWAAR))

Je plot nu kolom twee met kolom drie en voila.

Het laatste wat je moet doen is de kolommen uitlijnen met de normaal distrubutie. Dit is het makkelijkst als je de histogram en de grafiek beide een eigen (horizontale) as meegeeft. Voor de histogram is de minimale aswaarde gemiddelde - 3*stdev en de maximale gemiddelde+3*stdev.

Een alternatief voor al deze onzin is SPSS, SAS, Stata, Mathlab of R. Ik neem aan dat een statistische excel module hetzelfde kan, maar die heb ik niet
Deetchmaandag 8 oktober 2012 @ 16:14
quote:
Of deze: http://www.vertex42.com/ExcelArticles/mc/Histogram.html

Het ligt er ook een beetje aan wat voor data je hebt.
Deetchmaandag 8 oktober 2012 @ 16:24
quote:
0s.gif Op maandag 8 oktober 2012 12:43 schreef MrNiles het volgende:

[..]

die lijkt er wel op..maar je ziet dat ik een staafdiagram en een curve door elkaar heb...en de curve volgt niet de staaf...wel het gemiddelde ervan, dat is de moeilijkheid
en volgens niet het geval in je voorbeeld
Is je data wel normaal verdeeld dan? heb je de juiste waarde voor gemiddelde en stdev gebruikt?
Holy_Goatmaandag 8 oktober 2012 @ 16:55
quote:
0s.gif Op maandag 8 oktober 2012 15:36 schreef ralfie het volgende:

[..]

Gebruik een listbox, maak zelf iets in vba (veel werk!) of voeg de control toe middels een xladdon vanuit DotNet (C# of VB#)

[..]

Dat laatste lijkt me niet zo handig, aangezien de gebruikers dan ook die addin moeten hebben, toch?
Dat eerste is een beetje naar> listbox heeft standaard een scrollbar als er te veel items komen, en dit wil ik niet. Tevens heeft een listbox scrollbar geen _scroll event in vba.

Maarrr ik ben daar wel een beetje mee aan het prutsen. Een listbox kun je prima in een frame verstoppen en de scrollbar er net buiten laten vallen, bijvoorbeeld. Je kunt dan wel niet meer scrollen, maar daar heb je natuurlijk en scrollbar control voor in dat geval ;) Allemaal standaard library.

Dus ik zou het (denk ik) wel kunnen maken (voor het simpele listview) met 4 of 5 listbox-in-frames (4-5 kolommen), maar voor het nette zou ik dan liever een custom listview object maken met (beperkte) functionaliteit; welke dan dus eigenlijk een aantal listbox-in-frames is met waarschijnlijk wat labels er boven als headers.

Alleen een beetje jammer, ik vind het belangrijk dat de listbox items individueel gekleurd kunnen worden. (text forecolor).

Dus ja, dan zit je weer, want in vba kan dat dus niet met een listbox.

Dusssss dan zou je al weer zelf je listview moeten gaan bouwen met een soort grid van labels, en dan bij scrollen items gaan schuiven. Dusss....
ralfiemaandag 8 oktober 2012 @ 18:27
quote:
0s.gif Op maandag 8 oktober 2012 16:55 schreef Holy_Goat het volgende:

[..]

Dat laatste lijkt me niet zo handig, aangezien de gebruikers dan ook die addin moeten hebben, toch?
Tsja, je schijnt er om heen te kunnen werken
http://www.cpearson.com/excel/installinganxla.aspx

Geen idee hoe zoiets werkt eigenlijk.

Laatste redmiddel: schrijf een korte applicatie die aangeroepen kan worden vanuit excel welke je form laat zien en de resultaten terugrapporteerd aan excel op de een of andere manier.
Holy_Goatdinsdag 9 oktober 2012 @ 11:40
Even een korte status update omtrent het listview probleem. Ik ben er bijna uit :D
6116232cdb6691c7ee8a7ad810ba1f62.png

Hij is wellicht nog niet zo mooi, maar wel lekker dynamisch al, en heeft al 'wat' functionaliteit.
Omdat ik geen tijd heb om er een hele supernette class van te maken (is een testcase, maar wil het ook in een project inbouwen waar ik heel heel snel wat voor wil laten zien), zit ie voor het grootste deel vooralsnog in een module plus een class voor de events af te vangen.

Als iemand tijd over heeft en zich geroepen voelt mee te denken voor het maken van een nette vervangende-class, be my guest.

Momenteel moet je alleen maar een frame maken genaamd framefield en deze kun je elke grootte geven die je wilt. Vervolgens kun je de kolommen defineren met
1Call createfield("Zaak nr", 7, "Zaak naam", 20, "Open taken", 24.8, "Omschrijving", 35, "(1e) Afronddatum", 13)
Waarin het getal het percentage is van de totale frame breedte. Het aantal rijen wordt automatisch bepaald aan de hand van de frame hoogte. Verversen kan makkelijk en is niet eens zichtbaar voor het oog zo snel gaat het

1
2
Call destroyfield()
Call createfield("iets anders", 50, "Nog iets anders",50)
Bij het klikken op een rij kleurt deze blauwig, de rest weer wit. Events af te vangen uit class, zoals doubleclick. Daadwerkelijk met echte data vullen zit er nog niet in (nu alleen test data bij genereren veld) en ook een scrollbar ontbreekt. Die laatste komt als een aparte control in de frame te staan.
Holy_Goatdinsdag 9 oktober 2012 @ 11:44
Heb trouwens al eens eerder iets geklust dat ik in best veel projectjes gebruik, aangezien de datepicker control uit mscomctl.ocx ook gekut geeft op andere office versies. Maar listview dinges is wel iets lastiger

9f77d9fac696b97c28266b68fd182c12.png

Volledig dynamisch aan huidige datum. Springen kan met pijltjes per maand, groen is huidige datum, donkergrijs andere data.
Holy_Goatdinsdag 9 oktober 2012 @ 15:58
Ennnn de custom listview doet het :)
Deetchdinsdag 9 oktober 2012 @ 16:19
quote:
0s.gif Op dinsdag 9 oktober 2012 11:44 schreef Holy_Goat het volgende:
Heb trouwens al eens eerder iets geklust dat ik in best veel projectjes gebruik, aangezien de datepicker control uit mscomctl.ocx ook gekut geeft op andere office versies. Maar listview dinges is wel iets lastiger

[ afbeelding ]

Volledig dynamisch aan huidige datum. Springen kan met pijltjes per maand, groen is huidige datum, donkergrijs andere data.
Wat een mooie, mag ik hebben?
Ik had er vroeger ook één (2000 versie) maar die doet het niet in excel 2010 en de datepicker control wordt niet meer ondersteund door MS.
Holy_Goatdinsdag 9 oktober 2012 @ 16:33
quote:
3s.gif Op dinsdag 9 oktober 2012 16:19 schreef Deetch het volgende:

[..]

Wat een mooie, mag ik hebben?
Ik had er vroeger ook één (2000 versie) maar die doet het niet in excel 2010 en de datepicker control wordt niet meer ondersteund door MS.
Dat was precies waarom ik deze gemaakt heb ;)
-Mirrie-woensdag 10 oktober 2012 @ 16:59
Excel 2007 - NL

Ik ben bezig met een scriptie en heb een vraag over het gebruik van formules in Excel.
Wellicht kan ik hier een oplossing vinden.

Ik wil de mutatie berekenen tussen 2 ratio's.
Bijv. jaar t = 0,5 en jaar t1 = 0,3 (de ratio wordt hierbij negatiever)
Ik wil hierbij niet de absolute mutatie berekenen, maar de percentuele mutatie.
Dus: mutatie = (t1 - t) / t = (0.3 - 0.5) / 0.5 = -0,4

Alles prima, maar nu komt mijn probleem.
Indien jaar t = -0,5 en jaar t1 = -0,3 (de ratio wordt positiever)
mutatie = (t1 - t) / t = (-0.3 - -0.5) / -0.5 = -0,4

Beide mutaties zijn dus -0,4, terwijl de mutatie bij de eerste negatief is en bij de tweede positief.

Zijn er bij jullie formules bekend waarmee dit probleem ondervangen wordt?
VorteXxXwoensdag 10 oktober 2012 @ 17:02
heeft dat dan niet met de cel eigenschappen te maken? als ie standaard staat maakt hij geen onderscheid tussen positief en negatief
-Mirrie-woensdag 10 oktober 2012 @ 17:06
quote:
0s.gif Op woensdag 10 oktober 2012 17:02 schreef VorteXxX het volgende:
heeft dat dan niet met de cel eigenschappen te maken? als ie standaard staat maakt hij geen onderscheid tussen positief en negatief
Weet je ook toevallig welke optie ik dan moet kiezen.
Ik snap dat je dan naar celeigenschappen moet en dan waar je positief en negatief rood/zwart kunt laten worden, maar heeft deze instelling een specifieke naam dat je weet? Liefst in Engels, want ben bezig in SPSS (maar formules ed werken hetzelfde).
VorteXxXwoensdag 10 oktober 2012 @ 17:40
niet dat ik weet ... In excel 2010 gewoon rechtsklik en celeigenschappen... zou niet weten of daar een specifieke naam voor is en SPSS ken ik voor de rest niet
Holy_Goatwoensdag 10 oktober 2012 @ 19:33
quote:
0s.gif Op woensdag 10 oktober 2012 16:59 schreef -Mirrie- het volgende:
Excel 2007 - NL

Ik ben bezig met een scriptie en heb een vraag over het gebruik van formules in Excel.
Wellicht kan ik hier een oplossing vinden.

Ik wil de mutatie berekenen tussen 2 ratio's.
Bijv. jaar t = 0,5 en jaar t1 = 0,3 (de ratio wordt hierbij negatiever)
Ik wil hierbij niet de absolute mutatie berekenen, maar de percentuele mutatie.
Dus: mutatie = (t1 - t) / t = (0.3 - 0.5) / 0.5 = -0,4

Alles prima, maar nu komt mijn probleem.
Indien jaar t = -0,5 en jaar t1 = -0,3 (de ratio wordt positiever)
mutatie = (t1 - t) / t = (-0.3 - -0.5) / -0.5 = -0,4

Beide mutaties zijn dus -0,4, terwijl de mutatie bij de eerste negatief is en bij de tweede positief.

Zijn er bij jullie formules bekend waarmee dit probleem ondervangen wordt?
uuuhhhmm... raar? :P is dit niet gewoon een 'foutje' in de formule?
Holy_Goatwoensdag 10 oktober 2012 @ 19:34
Zit het na te rekenen en denk steeds: huh? mis ik iets obvious?
-Mirrie-woensdag 10 oktober 2012 @ 19:37
Komt door de 2 negatieve getallen dat deze een negatieve mutatie als uitkomst geven..
De formule is volgens mij gewoon goed, maar de uitkomst niet. Aangezien het minder negatief wordt. Dit moet toch te ondervangen zijn zou je zeggen...
Holy_Goatwoensdag 10 oktober 2012 @ 19:44
Ik denk dat ik em heb :P

Volgens mij is het:
1=(NIEUW-OUD)/ABS(OUD)
9f255574a5c7ef41f62471cc87d6dc4b.png
-Mirrie-woensdag 10 oktober 2012 @ 20:35
Dat ziet er goed uit! Dat ga ik nu meteen proberen!!
-Mirrie-woensdag 10 oktober 2012 @ 20:44
quote:
0s.gif Op woensdag 10 oktober 2012 19:44 schreef Holy_Goat het volgende:
Ik denk dat ik em heb :P

Volgens mij is het:
[ code verwijderd ]

[ afbeelding ]
Je bent geweldig!!! Dit werkt _O_

Heb me hier dus echt wel druk om gemaakt toen ik erachter kwam dat al mijn uitkomsten niet klopten.
snabbiwoensdag 10 oktober 2012 @ 20:57
Het heeft hier niet zo zeer met de tool te maken maar met een definitie probleem. Wanneer je t waarde negatief is, spreek je per definitie van een mutatie ten opzichte van je verlies. Een groter wordend verlies is dus een positief percentage en een kleiner wordend verlies of zelfs winst wordt een negatief percentage:

Zie definities van onze zeer betrouwbare bron wikipedia onder het kopje change in sign: http://en.wikipedia.org/wiki/Percentage
Frixeldonderdag 11 oktober 2012 @ 09:24
Kan je sorteren in een bestand terwijl het gesloten blijft?
Basp1donderdag 11 oktober 2012 @ 09:38
quote:
0s.gif Op donderdag 11 oktober 2012 09:24 schreef Frixel het volgende:
Kan je sorteren in een bestand terwijl het gesloten blijft?
Met visual basic zou dat wel mogelijk moeten zijn maar dan opent hij op de achtergrond toch dat bestand.
Frixeldonderdag 11 oktober 2012 @ 09:46
Ja, die code heb ik:
GetObject ("P:\bestand.csv")

maar dan?
Basp1donderdag 11 oktober 2012 @ 09:57
een csv bestand gaan sorteren? Dat bestand zul je dan eerst in een excel instantie moeten importeren.

Waarom wil je dit buiten het opstarten van excel doen?

Waarom niet gewoon dan in vba die csv binnenhalen in een array en daar sorteren?
Frixeldonderdag 11 oktober 2012 @ 10:13
quote:
0s.gif Op donderdag 11 oktober 2012 09:57 schreef Basp1 het volgende:
een csv bestand gaan sorteren? Dat bestand zul je dan eerst in een excel instantie moeten importeren.

Waarom wil je dit buiten het opstarten van excel doen?

Waarom niet gewoon dan in vba die csv binnenhalen in een array en daar sorteren?
Omdat in een .csv bestand elders op het netwerk de data staat waaruit ik een LOOKUP moet doen.
Dat is een heel groot bestand en wil ik ook niet open hebben.
Ik heb inmiddels begrepen dat een bestand eerst gesorteerd moet zijn voordat je een LOOKUP functie doet anders krijg je de verkeerde regel.
.csv kan je toch gewoon sorteren?
Basp1donderdag 11 oktober 2012 @ 10:22
quote:
0s.gif Op donderdag 11 oktober 2012 10:13 schreef Frixel het volgende:

[..]

Omdat in een .csv bestand elders op het netwerk de data staat waaruit ik een LOOKUP moet doen.
Dat is een heel groot bestand en wil ik ook niet open hebben.
Ik heb inmiddels begrepen dat een bestand eerst gesorteerd moet zijn voordat je een LOOKUP functie doet anders krijg je de verkeerde regel.
.csv kan je toch gewoon sorteren?
Hoe dan ook zal dat csv bestand geopend worden om te sorteren en daarna gesloten worden. :D

Verder is een lookup heel leuk, maar als er in de lookup rij dubbele/dezelfde data staat ga je ook alleen maar het eerste resultaat krijgen. ben je er zeker van dat dit niet in het csv bestand zit.

Ik zou toch het csv bestand in excel importeren desnoods in een nieuwe file, als er veel overbodige data inzit deze meteen eruit gooien en dan de sortering laten plaatsvinden, en als laatste dan je lookup doen.

Maar met wat programeer ervaring is ook het csv bestand buiten excel wel te sorteren en weg te schrijven.
Frixeldonderdag 11 oktober 2012 @ 10:29
Nee openen is geen optie om diverse redenen.
Meerdere mensen gebruiken dit bestand.
Bij ieder persoon heet de schijf waar die opstaat weer anders.

openen buiten excel lukt me ook wel in VBA en ook de eerste sheet selecteren(dank aan google) alleen weet ik nu niet hoe ik dat sorteren doe.
Als dat sorteren "vlot gaat" hoeft het daarna niet opgeslagen te worden anders wel.

1
2
3
4
Dim wkb As Workbook, sht As Worksheet
    'Deze regel opent Wel het bestand, maar als object. Het is niet zichtbaar of oproepbaar vanuit excel.
    Set wkb = GetObject("P:\bestand.csv")    'hier je pad + bestand
    Set sht = wkb.Sheets(1)    '1 is eerste werkblad, of anders werkbladnaam invoeren
Basp1donderdag 11 oktober 2012 @ 11:07
quote:
0s.gif Op donderdag 11 oktober 2012 10:29 schreef Frixel het volgende:
Nee openen is geen optie om diverse redenen.
Meerdere mensen gebruiken dit bestand.
Bij ieder persoon heet de schijf waar die opstaat weer anders.

openen buiten excel lukt me ook wel in VBA en ook de eerste sheet selecteren(dank aan google) alleen weet ik nu niet hoe ik dat sorteren doe.
Als dat sorteren "vlot gaat" hoeft het daarna niet opgeslagen te worden anders wel.
[ code verwijderd ]

Ook al heet de schijf overal anders dan moet je ook niet de schijfmapping gebruiken maar de directe windows mapping. Dus niet op p:\ maar iets van servernaam\directory\ enz...

En deze file zal hoe dan ook geopend worden, als je hem wilt sorteren.

Verder moet je voor de juiste excelcommmandos die je wilt gebruiken even in excel een macro opnemen en die code kun je dan gebruiken in je andere vba code.
Frixeldonderdag 11 oktober 2012 @ 11:17
Ik heb nu onderstaande (na de alinea) ingebouwd maar dan sorteertt hij een bestand dat op het moment actief is en niet het genoemde bestand.

1
2
3
4
5
6
7
8
9
10
Dim wkb As Workbook, sht As Worksheet
    Set wkb = GetObject("P:\voorbeeld.xls")   
    Set sht = wkb.Sheets(1)  
   
Set tst = Sheets("Sheet2").Select
    Range("A17").Select
    Range("A1:B44").Sort Key1:=Range("B2"), Order1:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Sheets("Sheet1").Select
Basp1donderdag 11 oktober 2012 @ 11:30
Wat gebeurt er als je in regel 5 ipv Set tst = Sheets("Sheet2").Select
iets van Set tst = wkb.Sheets("Sheet2").Select zou zetten?
Deetchdonderdag 11 oktober 2012 @ 11:32
quote:
0s.gif Op donderdag 11 oktober 2012 11:17 schreef Frixel het volgende:
Ik heb nu onderstaande (na de alinea) ingebouwd maar dan sorteertt hij een bestand dat op het moment actief is en niet het genoemde bestand.
[ code verwijderd ]

op regel 4 "wkb.activate" toevoegen
Frixeldonderdag 11 oktober 2012 @ 12:38
quote:
3s.gif Op donderdag 11 oktober 2012 11:32 schreef Deetch het volgende:

[..]

op regel 4 "wkb.activate" toevoegen
Nee werkt helaas niet. Blijft bij het (ander) bestand dat aktief is
Frixeldonderdag 11 oktober 2012 @ 12:38
quote:
0s.gif Op donderdag 11 oktober 2012 11:30 schreef Basp1 het volgende:
Wat gebeurt er als je in regel 5 ipv Set tst = Sheets("Sheet2").Select
iets van Set tst = wkb.Sheets("Sheet2").Select zou zetten?
Helaas een foutmelding
Xperiadonderdag 11 oktober 2012 @ 12:42
Hallo allemaal.. ik heb een vraagje:

Ik heb een excel bestand die beveiligd moet worden d.m.v. een wachtwoord, maar tegelijkertijd mag iedereen het Excel bestand wel lezen echter mogen ze geen wijzgingen uitvoeren.

Dus zodra ze het bestand willen openen en wijzigen dienen ze een wachtwoord in te voeren, maar wanneer ze op de button "Alleen lezen" klikken wordt het bestand wel geopend maar dan alleen voor leesrechten.

Hoe stel ik dat in?

Versie: Excel 20120

Zie printscreen om het te verduideleken:

2jdf2n7.png
Basp1donderdag 11 oktober 2012 @ 12:44
Die foutmelding blijf je waarschijnlijk houden omdat de variabele tst nog niet gedefnieerd is.
Frixeldonderdag 11 oktober 2012 @ 13:13
Oke ik ben weer een stapje verder, thanks.

Ik heb nu onderstaande code staan maar het gaat nog fout met regel 9
Die bewerking doet ie dan op het op dat moment aktieve excel document en dat is niet de bedoeling. Het moet op het document dat alleen in VBA aktief is n.l P:\bestand.csv

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
GetObject ("P:\bestand.csv")

    Dim wkb As Workbook, sht As Worksheet
    Set wkb = GetObject("P:\bestand.csv")    'hier je pad + bestand
    Set sht = wkb.Sheets(1)    '1 is eerste werkblad, of anders werkbladnaam invoeren

 wkb.Activate

    Range("A1:P60000").Sort Key1:=Range("H2"), Order1:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

    
  With Sheets(1)
      .Columns(3).Insert
      .Range("C3") = "Collo No"
      .Range("C4").Resize(.Cells(Rows.Count, 2).End(xlUp).Row) = "=LOOKUP(C[-1],bestand.csv!R2C8:R60000C8,bestand.csv!R2C6:R60000C6)"
        
    On Error Resume Next
    Application.ScreenUpdating = False
    
    wkb.Close False    'anders blijft het wkb in VBA als geopend achter
Holy_Goatdonderdag 11 oktober 2012 @ 13:26
quote:
0s.gif Op donderdag 11 oktober 2012 11:17 schreef Frixel het volgende:
Ik heb nu onderstaande (na de alinea) ingebouwd maar dan sorteertt hij een bestand dat op het moment actief is en niet het genoemde bestand.
[ code verwijderd ]

Je moet hier het volgende doen
1
2
3
4
5
6
7
8
Dim wkb As Workbook, sht As Worksheet
    Set wkb = GetObject("P:\voorbeeld.xls")   
    Set sht = wkb.Sheets(1)  
   

    wkb.sht.Range("A1:B44").Sort Key1:=wkb.sht.Range("B2"), Order1:=xlAscending, Header:= _
        xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

Ik zou xlguess sowieso altijd vervangen door xlyes of xlno. Verder geef je nu aan dat je de betreffende workbook/worksheet moet sorteren en niet een actief workbook.
Holy_Goatdonderdag 11 oktober 2012 @ 13:28
quote:
0s.gif Op donderdag 11 oktober 2012 11:30 schreef Basp1 het volgende:
Wat gebeurt er als je in regel 5 ipv Set tst = Sheets("Sheet2").Select
iets van Set tst = wkb.Sheets("Sheet2").Select zou zetten?
selecteren, wbk actief hebben of sheet actief hebben is niet nodig.
Frixeldonderdag 11 oktober 2012 @ 13:41
Jammer, een foumelding op die regel wkb.sht.Range etc

melding is:
Object doesn`t support this property or method.

[ Bericht 0% gewijzigd door Frixel op 11-10-2012 14:55:47 ]
Xperiadonderdag 11 oktober 2012 @ 15:03
quote:
0s.gif Op donderdag 11 oktober 2012 12:42 schreef Xperia het volgende:
Hallo allemaal.. ik heb een vraagje:

Ik heb een excel bestand die beveiligd moet worden d.m.v. een wachtwoord, maar tegelijkertijd mag iedereen het Excel bestand wel lezen echter mogen ze geen wijzgingen uitvoeren.

Dus zodra ze het bestand willen openen en wijzigen dienen ze een wachtwoord in te voeren, maar wanneer ze op de button "Alleen lezen" klikken wordt het bestand wel geopend maar dan alleen voor leesrechten.

Hoe stel ik dat in?

Versie: Excel 20120

Zie printscreen om het te verduideleken:

[ afbeelding ]
iemand? :{
Holy_Goatdonderdag 11 oktober 2012 @ 15:19
quote:
0s.gif Op donderdag 11 oktober 2012 13:41 schreef Frixel het volgende:
Jammer, een foumelding op die regel wkb.sht.Range etc

melding is:
Object doesn`t support this property or method.
wat als je dat ding nou eerst echt eens opent als een excel instance. Dat doe ik ook namelijk
1
2
3
4
5
6
7
8
dim srcwbk As Workbook
dim sht As Worksheet
Set srcwbk = Workbooks.Open(filename:=strlocation, UpdateLinks:=False)
srcwbk.sht.range(....).sort en dan die key ook srcwbk.sht.range(keyrange)

Afsluiten kan dan weer met 
srcwbk.Close savechanges:=true
    Set srcwbk = Nothing              
Holy_Goatdonderdag 11 oktober 2012 @ 15:21
quote:
0s.gif Op donderdag 11 oktober 2012 15:03 schreef Xperia het volgende:

[..]

iemand? :{
bij opslaan als > wachtwoord? of snap ik nu iets niet
ralfiedonderdag 11 oktober 2012 @ 16:17
quote:
0s.gif Op donderdag 11 oktober 2012 15:03 schreef Xperia het volgende:

[..]

iemand? :{
Bij werkmap beveiligen kun je aangeven wat er beveiligd moet worden.
in nederlands controleren -> werkmap/blad beveiligen
Basp1donderdag 11 oktober 2012 @ 16:20
quote:
0s.gif Op donderdag 11 oktober 2012 15:21 schreef Holy_Goat het volgende:

[..]

bij opslaan als > wachtwoord? of snap ik nu iets niet
Hulp gevraagd van MS Excel professionals

Dankan er net een ander window verschijnen en dat is niet goed genoeg. :D
Xperiavrijdag 12 oktober 2012 @ 07:31
quote:
0s.gif Op donderdag 11 oktober 2012 15:21 schreef Holy_Goat het volgende:

[..]

bij opslaan als > wachtwoord? of snap ik nu iets niet
Helemaal top ^O^ Merci
Holy_Goatvrijdag 12 oktober 2012 @ 10:07
V
quote:
0s.gif Op vrijdag 12 oktober 2012 07:31 schreef Xperia het volgende:

[..]

Helemaal top ^O^ Merci
Volgende keer googelen }:|
Eerste hit bij zoeken op: opslaan met wachtwoord excel
http://www.worksheet.nl/f(...)bij-openen-file.html

quote:
Open de betreffende file. Dan klik linksboven op bestand, dan op opslaan als.. In het nieuwe venster zie je rechts EXTRA staan. Klik hierop en selecteer dan "Algemene Opties". Voeg een wachtwoord in bij " wachtwoord voor openen". Klik op OK. Je moet het wachtwoord dan nog eens ingeven. Klik weer op OK. Geef de file een naam ( je mag dezelfde houden als die je had bij het openen) en klik op opslaan. Nu kan je het bestand alleen nog openen met dat wachtwoord.
SPOILER
:*
einschteinzondag 14 oktober 2012 @ 13:52
Hm, kom er eigenlijk niet helemaal uit.

Ik heb 2 cellen, gevuld met cijfers. Nu wil ik naast die 2 cellen een andere cel hebben, die een bepaalde waarde aangeeft als één van de twee het hoogste is.

1eJcv

Voorbeeld. Q2 en R2 hebben de cijfers. Q2 is het hoogste, want die heeft het cijfer 4. R2 heeft het cijfer 2 er in. Dan wil ik dat cel S2 de letter: P aangeeft.

:D
einschteinzondag 14 oktober 2012 @ 13:55
Heuh, is al gelukt! Heb het gedaan als volgt:
=ALS(Q2 > R2; "P"; "D")
Frixelmaandag 15 oktober 2012 @ 09:20
Ik kom er nog steeds niet uit met onderstaande macro.

Mijn probleem is dat de file .bestand niet fysiek geopend dient te worden en dat likt dan ook met de optie GetObject ("P:\bestand.csv")
Daardoor is het wel aktief en zichtbaar in VBA.
Dan moet het bestand dus gesorteerd worden (kolom H) en dat wil maar niet lukken als het bestand fysiek door excel geopend is.

Is hier nog een oplossing of aanpassing op de code voor te bedenken?
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
Sub test()

' Macro recorded 9-10-2012 by xxx
 GetObject ("P:\bestand.csv")
  
    Dim wkb As Workbook, sht As Worksheet
    'Deze regel opent Wel het bestand, maar als object. Het is niet zichtbaar of oproepbaar vanuit excel.
    Set wkb = GetObject("P:\bestand.csv")    'hier je pad + bestand
    Set sht = wkb.Sheets(1)    '1 is eerste werkblad, of anders werkbladnaam invoeren
           
    sht.Range("A1:P60000").Sort Key1:=Range("H2"), Order1:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    
  With Sheets(1)
      .Columns(3).Insert
      .Range("C3") = "Collo No"
      .Range("C4").Resize(.Cells(Rows.Count, 2).End(xlUp).Row) = "=LOOKUP(C[-1],bestand.csv!R2C8:R60000C8,bestand.csv!R2C6:R60000C6)"
        
    On Error Resume Next
    Application.ScreenUpdating = False
    
    wkb.Close False    'anders blijft het wkb in VBA als geopend achter

    
   End With
End Sub
Holy_Goatmaandag 15 oktober 2012 @ 10:00
quote:
0s.gif Op maandag 15 oktober 2012 09:20 schreef Frixel het volgende:
Ik kom er nog steeds niet uit met onderstaande macro.

Mijn probleem is dat de file .bestand niet fysiek geopend dient te worden en dat likt dan ook met de optie GetObject ("P:\bestand.csv")
Daardoor is het wel aktief en zichtbaar in VBA.
Dan moet het bestand dus gesorteerd worden (kolom H) en dat wil maar niet lukken als het bestand fysiek door excel geopend is.

Is hier nog een oplossing of aanpassing op de code voor te bedenken?
[ code verwijderd ]

je bedoelt dat het niet lukt als het NIET fysiek door excel is geopend?
Frixelmaandag 15 oktober 2012 @ 10:16
quote:
0s.gif Op maandag 15 oktober 2012 10:00 schreef Holy_Goat het volgende:

[..]

je bedoelt dat het niet lukt als het NIET fysiek door excel is geopend?
klopt, Als het niet fysiek door Excel is geopend lukt het niet. 8)7

Het vervelende is dat het bestand groot en op netwerk staat dus duurt het (te)lang voordat het geopend, en bewerkt is.
Dan komt erbij dat de macro meerdere keren per dag gebruikt word en dan hele ritueel steeds herhaald moet worden. Of het moet kunnen zien dat het de eerste keer al gesorteerd is en dat die bewerking niet meer hoeft plaats te vinden!
Dan hoeft het daarna ook niet steeds meer geopend te worden.
Iedere dag is het een nieuw bestand dus 1 keer bewerken en dan nvoorlopig niets meer aan doen is ook geen optie.

Maar ja, dat gaat mijn pet te boven om zoiets te maken :D
Holy_Goatmaandag 15 oktober 2012 @ 10:40
quote:
0s.gif Op maandag 15 oktober 2012 10:16 schreef Frixel het volgende:

[..]

klopt, Als het niet fysiek door Excel is geopend lukt het niet. 8)7

Het vervelende is dat het bestand groot en op netwerk staat dus duurt het (te)lang voordat het geopend, en bewerkt is.
Dan komt erbij dat de macro meerdere keren per dag gebruikt word en dan hele ritueel steeds herhaald moet worden. Of het moet kunnen zien dat het de eerste keer al gesorteerd is en dat die bewerking niet meer hoeft plaats te vinden!
Dan hoeft het daarna ook niet steeds meer geopend te worden.
Iedere dag is het een nieuw bestand dus 1 keer bewerken en dan nvoorlopig niets meer aan doen is ook geen optie.

Maar ja, dat gaat mijn pet te boven om zoiets te maken :D
Hoeveel kolommen gaat het om?
En hoeveel rijen?

Wat je anders zou kunnen doen is (een beetje stom wellicht) alle data inlezen in arrays,
deze intern sorteren, en als een nieuwe csv wegschrijven. Aangeven of iets al gesorteerd is is simpel, je zou een klein bestandje kunnen maken met daarin sorted=1 en de datum oid.
Holy_Goatmaandag 15 oktober 2012 @ 10:44
Je zou ook eens kunnen kijken naar het gebruik van ActiveX data objects
Frixelmaandag 15 oktober 2012 @ 10:46
quote:
0s.gif Op maandag 15 oktober 2012 10:44 schreef Holy_Goat het volgende:
Je zou ook eens kunnen kijken naar het gebruik van ActiveX data objects
Hmmja. dit gaat me dus te ver. daar moet ik bij afhaken...

bestand is kolom A t/m P en 60000 regels
Holy_Goatmaandag 15 oktober 2012 @ 11:11
ik snap alleen niet echt waarom openen vanuit netwerk meer tijd zou kosten als je het echt IN EXCEL opent, dan wanneer je het niet echt opent.

Zou het voor jou ook te ver gaan om alles in te lezen in een 2D array en dan via een quicksort op de key (zoek maar op quicksort, best leuk) alles sorteren + terugstoppen in csv
Frixelmaandag 15 oktober 2012 @ 11:15
quote:
0s.gif Op maandag 15 oktober 2012 11:11 schreef Holy_Goat het volgende:
ik snap alleen niet echt waarom openen vanuit netwerk meer tijd zou kosten als je het echt IN EXCEL opent, dan wanneer je het niet echt opent.

Zou het voor jou ook te ver gaan om alles in te lezen in een 2D array en dan via een quicksort op de key (zoek maar op quicksort, best leuk) alles sorteren + terugstoppen in csv
Ik zal eens zoeken op "quicksort " maar vrees dat ik er niet veel verder mee kom. Ik weet waar ik een macro kan maken en plakken in VBA maar dan houd het wel op.

Dat openen vergt toch wel tijd iedere keer als de macro gebruikt word. (zeker 10x per dag) en dan doet ie steeds dat openen en sorteren.
Holy_Goatmaandag 15 oktober 2012 @ 11:20
quote:
0s.gif Op maandag 15 oktober 2012 11:15 schreef Frixel het volgende:

[..]

Ik zal eens zoeken op "quicksort " maar vrees dat ik er niet veel verder mee kom. Ik weet waar ik een macro kan maken en plakken in VBA maar dan houd het wel op.

Dat openen vergt toch wel tijd iedere keer als de macro gebruikt word. (zeker 10x per dag) en dan doet ie steeds dat openen en sorteren.
dus op zich is openen geen probleem, als het maar niet 10x gedaan word? (om te sorteren)
Frixelmaandag 15 oktober 2012 @ 11:21
quote:
0s.gif Op maandag 15 oktober 2012 11:20 schreef Holy_Goat het volgende:

[..]

dus op zich is openen geen probleem, als het maar niet 10x gedaan word? (om te sorteren)
klopt. 1x is genoeg als het gesaved word.
Holy_Goatmaandag 15 oktober 2012 @ 11:25
quote:
0s.gif Op maandag 15 oktober 2012 11:21 schreef Frixel het volgende:

[..]

klopt. 1x is genoeg als het gesaved word.
Dan zou ik toch met mijn eerdere code de file echt in excel openen, dan de .sort gebruiken en opslaan.
Verder kun je een bestandje ernaast maken bijvoorbeeld issorted.txt en daarin bv de datum van vandaag. Als de datum gisteren is, dan openen en sorteren en datum aanpassen in bestandje. Anders als datum al vandaag is, lekker niet openen en sorteren.
Holy_Goatmaandag 15 oktober 2012 @ 11:26
Dus zo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
dim welkedag as date
open "locatie/issorted.txt" for input as #1
input #1, welkedag
close #1

if welkedag == Date() then exit sub

dim srcwbk As Workbook
dim sht As Worksheet
Set srcwbk = Workbooks.Open(filename:="je locatie hier", UpdateLinks:=False)
srcwbk.sht.range(....).sort en dan die key ook srcwbk.sht.range(keyrange)

Afsluiten kan dan weer met 
srcwbk.Close savechanges:=true
    Set srcwbk = Nothing 

open "locatie/issorted.txt" for output as #1
write #1, Date
close #1
Frixelmaandag 15 oktober 2012 @ 11:36
quote:
0s.gif Op maandag 15 oktober 2012 11:25 schreef Holy_Goat het volgende:

[..]

Dan zou ik toch met mijn eerdere code de file echt in excel openen, dan de .sort gebruiken en opslaan.
Verder kun je een bestandje ernaast maken bijvoorbeeld issorted.txt en daarin bv de datum van vandaag. Als de datum gisteren is, dan openen en sorteren en datum aanpassen in bestandje. Anders als datum al vandaag is, lekker niet openen en sorteren.
Echt heel erg bedankt voor de moeite hoor maar ik haak af.
Dit gaat me te ver om te snappen!
Frixelmaandag 15 oktober 2012 @ 13:27
Ik zat nog ff te denken....

Hoe zet je in de macro dat:
Bij openen van het bestand word er in cel Z1 een nul gezet.Daarna de rest van de code over het sorteren doorlopen en dan saven en opslaan.
Als daarna nog een keer het bestand word geopend en die "ziet" in cel Z1 een nul staan dat hij dan niet sorteert en ook niet meer saved maar gewoon sluit.
Dan ben ik er toch ook? (weet alleen niet hoe die code er dan uit moet zien maar ik denk iets met If Then en Go To)
qu63maandag 15 oktober 2012 @ 13:43
quote:
0s.gif Op maandag 15 oktober 2012 11:36 schreef Frixel het volgende:

[..]

Echt heel erg bedankt voor de moeite hoor maar ik haak af.
Dit gaat me te ver om te snappen!
De csv wordt dagelijks gemaakt, toch?

Kan je niet een macro schrijven die eerst checkt of er al een .xlsx is (die dus netjes gesorteerd opgeslagen is), en zo niet deze aanmaakt? En dat deze dus netjes op volgorde gemaakt wordt.

En dan ook nog een check op datum, verwijder alle .xlsx-bestanden die niet van vandaag zijn ofzo?
Frixelmaandag 15 oktober 2012 @ 13:47
quote:
0s.gif Op maandag 15 oktober 2012 13:43 schreef qu63 het volgende:

[..]

De csv wordt dagelijks gemaakt, toch?

Kan je niet een macro schrijven die eerst checkt of er al een .xlsx is (die dus netjes gesorteerd opgeslagen is), en zo niet deze aanmaakt? En dat deze dus netjes op volgorde gemaakt wordt.

En dan ook nog een check op datum, verwijder alle .xlsx-bestanden die niet van vandaag zijn ofzo?
Foutje van mij maar wekelijkse update en bestand word vervangen door bestaand bestand met dezelfde naam.
qu63maandag 15 oktober 2012 @ 13:50
quote:
0s.gif Op maandag 15 oktober 2012 13:47 schreef Frixel het volgende:

[..]

Foutje van mij maar wekelijkse update en bestand word vervangen door bestaand bestand met dezelfde naam.
Nou ja, dan kan mijn verhaal nog steeds, maar dan wekelijks :P

Met je macro de bestandsdatum van je csv controleren, als die nieuwe is dan je xslx een nieuw xlsx maken, zo niet dan gebruik je de netjes gesorteerde xlsx :)
Frixelmaandag 15 oktober 2012 @ 14:09
quote:
0s.gif Op maandag 15 oktober 2012 13:50 schreef qu63 het volgende:

[..]

Nou ja, dan kan mijn verhaal nog steeds, maar dan wekelijks :P

Met je macro de bestandsdatum van je csv controleren, als die nieuwe is dan je xslx een nieuw xlsx maken, zo niet dan gebruik je de netjes gesorteerde xlsx :)
Tja, makkelijker gezegt dan gedaan...
snabbimaandag 15 oktober 2012 @ 20:25
quote:
0s.gif Op maandag 15 oktober 2012 09:20 schreef Frixel het volgende:
Ik kom er nog steeds niet uit met onderstaande macro.

Mijn probleem is dat de file .bestand niet fysiek geopend dient te worden en dat likt dan ook met de optie GetObject ("P:\bestand.csv")
Daardoor is het wel aktief en zichtbaar in VBA.
Dan moet het bestand dus gesorteerd worden (kolom H) en dat wil maar niet lukken als het bestand fysiek door excel geopend is.
Volgens mij is de grote fout die je maakt, dat je je object niet aan een variabele koppelt. Je moet in mijn ogen iets in deze trant ondernemen:
1
2
3
4
5
6
7
Sub test()
Dim xl As Excel.Application
Dim a As String
Set x1 = GetObject("P:\bestand.csv")
a = x1.Sheets("Blad1").Range("A1").Value
x1.Close
End Sub

Door je X1 kan je hier tenminste naar het betreffende bestand verwijzen en er iets mee doen. Ook is het in mijn ogen niet onbelangrijk dat je je object weer kunt sluiten.
Champydinsdag 16 oktober 2012 @ 13:40
Beste mensen,

ik ben bezig met een excel sheet waarin de afdeling verkoop itemnummers in kan geven, en dan verschijnen vanzelf verschillende prijzen en informatie. Er gebeurt echter iets heel raars als er een opgeslagen bestand geopend wordt waar dezelfde item nummers gebruikt worden met een oude prijs. Deze prijsinformatie wordt uit een andere sheet gehaald die dagelijks bijgewerkt wordt.

Een voorbeeld om het duidelijk te maken.
Er is vorige week een bestand aangemaakt en opgeslagen met itemnummer ABC voor prijs 1,11
2 dagen later wordt deze prijs aangepast naar 1,23 in het bronbestand.
3 dagen hierna wordt een nieuwe sheet aangemaakt, met item ABC, en de prijs 1,23 verschijnt.
Om even te kijken wat vorige keer de prijs en marge was wordt de oude sheet van vorige week geopend, de gelinkte info wordt niet bijgewerkt zodat de oude prijzen er nog staan, en inderdaad, 1,11 verschijnt hier als prijs.
Echter als er nu weer teruggeschakeld wordt naar de sheet van deze week staat daar ook de prijs van 1,11, terwijl eigenlijk de prijs van 1,23 daar hoort te staan.
Dubbelklik op deze cel, druk op enter en de juiste prijs verschijnt weer.

De informatie over de prijs wordt opgehaald door middel van een vertikaal zoeken formule uit het bronbestand. In het bronbestand van de prijzen wordt de nieuwe prijs niet gewijzigd in de oude. Er wordt in de nieuwe sheet niet gekoppeld aan de oude.

Er is dus totaal geen relatie tussen de nieuwe en de oude sheet,maar wel worden de "oude" prijzen over genomen. Iemand enig idee waar dit door veroorzaakt wordt?

Alvast bedankt voor het meedenken, en ik kan me voorstellen dat het geen heel duidelijk verhaal is.

Edit: Als zowel het oude als een nieuw bestand open staan, en ik typ in de nieuwe een itemnummer in wat ook in de oude staat, verschijnt de prijs van de oude, en niet de prijs van uit het bronbestand.

[ Bericht 5% gewijzigd door Champy op 16-10-2012 15:05:57 ]
snabbidinsdag 16 oktober 2012 @ 21:14
quote:
0s.gif Op dinsdag 16 oktober 2012 13:40 schreef Champy het volgende:
Beste mensen
etc
Het verhaal is wat lastig te volgen en ook niet te controleren van afstand. Wellicht gebruik je dezelfde bestandsnamen waardoor excel naar het verkeerde geopende bestand blijft kijken. In mijn ogen dien je de registratie van je (bron)prijzen te veranderen. Je zou niet afhankelijk moeten zijn van de oude versie, er dient 1 volledige juiste versie te zijn. Dit kan je bijvoorbeeld realiseren door gebruik te maken van de datum wanneer je prijzen muteert en de datum van je verkoop.

Bijgevoegd voorbeeld uitgewerkt: http://www.mijnbestand.nl/Bestand-EX3JHTVGYJ7G.xlsx
De truc zit natuurlijk in de prijsformule:
=SOMMEN.ALS(Prijs;Startdatum_Prijs;"<"&A4;Einddatum_prijs;">="&A4;Artikelnummer;"="&B4)

De vergelijkingen die hier gemaakt worden is dat de einddatum van je artikelprijs groter moet zijn dan de huidige verkoopdatum en de startdatum van je artikelprijs moet kleiner zijn dan je verkoopdatum. Daarnaast is er nog een match op je artikelnummer.

Excel berekent hier de som van alle prijzen die voldoen aan die criteria. Aan jou de taak om daar altijd maar 1 uitkomst juist op te laten zijn en op deze manier kan je altijd je volledige prijslijst overzien (en niet alleen van een betreffende dag).

Uiteraard luistert het wel heel nauw om te kijken naar wil je nu 'groter' hebben of 'groter of gelijk aan', maar daar ga je vast uitkomen.
--
Edit:
Overigens nog beter plaats je de prijzen niet in Excel maar in een ander ding zoals een database, maar voor de kleinere ondermening zal de prijslijst op 1 vaste locatie ook wel werken.

[ Bericht 8% gewijzigd door snabbi op 16-10-2012 21:23:37 ]
Champywoensdag 17 oktober 2012 @ 10:14
Snabbi, dank je voor het meedenken, denk echter dat je het probleem niet juist begrepen hebt, en dat is ook niet zo raar aangezien het nogal lastig omschrijven is. Daar komt bij dat prijzen ook naar beneden kunnen wijzigen, niet alleen naar boven.
De bestanden hebben niet dezelfde naam, onder verschillende namen opgeslagen, het zijn echter wel kopieen van een basisbestand wat leeg is.

En je tip over een database klopt inderdaad, echter heb ik daar totaal niets over te zeggen helaas. Het is geen kleine onderneming, maar soms nogal eigenwijs.

In ieder geval bedankt, ik ga nog even verder met mn zoektocht :)
snabbiwoensdag 17 oktober 2012 @ 20:53
Je moet het ook niet zien als het adresseren van je probleem zelf, maar een workaround.
Overigens zie ik geen reden waarom prijzen niet naar beneden zouden kunnen. Er is altijd maar 1 prijs die je een begindatum en een einddatum mee geeft. Je zou eventueel ook opslagen en afslagen kunnen noteren, maar ik vermoed dat het dan heel onoverzichtelijk gaat worden.

Kijk in het voorbeeld bijvoorbeeld hoe de prijs tot een datum wordt gehanteerd en vanaf een andere datum er maar 1 prijs geldt. Plaats dat tabblad met de generieke prijzenlijst op 1 vaste locatie en je hebt nooit meer verschillende versies van je prijslijst. Door het gebruik van de datum blijf je ook altijd backwards-compatible. (de werkelijke gedachte er achter is natuurlijk, als je 1 prijslijst hebt kan je nooit de verkeerde versie hebben)

[ Bericht 12% gewijzigd door snabbi op 17-10-2012 21:04:36 ]
Champydonderdag 18 oktober 2012 @ 09:21
Hey Snabbi,
probleem daarmee is, is dat er geen datums aan de prijslijst hangen, helaas. Kan ik ook niets aan doen, moet werken met wat me aangeleverd wordt over het algemeen.
Echter, het is opgelost. De waardes werden opgehaald met een verticaal zoeken, deze heb ik vervangen door een index-vergelijken constructie, en het probleem doet zich gelukkig niet meer voor!
Zeer bedankt voor het meedenken!
kostertimdonderdag 18 oktober 2012 @ 16:47
Iemand al eens geprobeerd om een organogram te maken vanuit een draaitabel? (Excel 2010)
Huppelmutsvrijdag 19 oktober 2012 @ 12:08
Iemand enig idee hoe ik het aantal dagen zichtbaar krijg ipv een raar getal zoals: 40924
?

-O-


Gevonden *O*

[ Bericht 25% gewijzigd door Huppelmuts op 19-10-2012 12:38:42 ]
qu63vrijdag 19 oktober 2012 @ 22:21
quote:
0s.gif Op donderdag 18 oktober 2012 16:47 schreef kostertim het volgende:
Iemand al eens geprobeerd om een organogram te maken vanuit een draaitabel? (Excel 2010)
Nope, maar volgens mij kan je dat beter met Visio doen, die kan ook Excel als input verwerken.
kostertimvrijdag 19 oktober 2012 @ 22:53
quote:
0s.gif Op vrijdag 19 oktober 2012 22:21 schreef qu63 het volgende:

[..]

Nope, maar volgens mij kan je dat beter met Visio doen, die kan ook Excel als input verwerken.
Ja klopt inderdaad wel denk ik, hebben we alleen niet geïnstalleerd staan op onze werk pc's. Heb het besteld, bedankt voor je tip!
SummerBreezedinsdag 23 oktober 2012 @ 13:15
Topic niet doorgelezen, excuus als het antwoord al ergens staat.

Excel 2007. Ik heb een koptekst toegevoegd en daarna wil ik mijn spreadsheet weer zien zoals gebruikelijk. Ik druk dus op de knop 'normaal' onder het tabblad 'Beeld'. Helaas krijg ik dan de printmargelijnen te zien. Aangezien ik de huidige sheet wil gaan gebruiken in een presentatie wil ik die stippellijn niet hebben. Hoe krijg ik deze weg?
Deetchdinsdag 23 oktober 2012 @ 13:25
quote:
0s.gif Op dinsdag 23 oktober 2012 13:15 schreef SummerBreeze het volgende:
Topic niet doorgelezen, excuus als het antwoord al ergens staat.

Excel 2007. Ik heb een koptekst toegevoegd en daarna wil ik mijn spreadsheet weer zien zoals gebruikelijk. Ik druk dus op de knop 'normaal' onder het tabblad 'Beeld'. Helaas krijg ik dan de printmargelijnen te zien. Aangezien ik de huidige sheet wil gaan gebruiken in een presentatie wil ik die stippellijn niet hebben. Hoe krijg ik deze weg?
document sluiten en weer opnieuw openen.
SummerBreezedinsdag 23 oktober 2012 @ 13:27
quote:
3s.gif Op dinsdag 23 oktober 2012 13:25 schreef Deetch het volgende:

[..]

document sluiten en weer opnieuw openen.
Dat ik daar nou niet aan gedacht heb... :@ Heel erg stom.

Dank je wel in ieder geval
Deetchdinsdag 23 oktober 2012 @ 14:57
quote:
0s.gif Op dinsdag 23 oktober 2012 13:27 schreef SummerBreeze het volgende:

[..]

Dat ik daar nou niet aan gedacht heb... :@ Heel erg stom.

Dank je wel in ieder geval
graag gedaan ^O^
qu63donderdag 25 oktober 2012 @ 14:08
Is het mogelijk om een soort 'fuzzy' zoekfunctie te maken?

In A1 vul ik 'Jansen' in, dan wil ik dat in B1 t/m B10 de 10 best scorende (of minder als er maar 5 zijn) variaties op Jansen komen. Dus Janssen, Janszen, Janse, etc

In de kolom er naast komt dan het klantnummer te staan die netzoals de namen uit een ander tabblad getrokken worden. Deze lijst is gesorteerd op klantnummer (kolom A) en niet op naam (kolom B).

Deel 2 moet te doen zijn met index()indirect(), maar deel 1...??

Tips?
Deetchdonderdag 25 oktober 2012 @ 14:39
Misschien met deze add-in: http://www.microsoft.com/en-us/download/details.aspx?id=15011
qu63donderdag 25 oktober 2012 @ 15:28
quote:
Dat zou moeten kunnen werken inderdaad. Helaas maak ik het op een 2007-versie. De doel-pc draait Office 2012 als t goed is..

Dan maar op die pc aan t werk, als er geen andere oplossing is..
Deetchdonderdag 25 oktober 2012 @ 17:49
Tja denk dat dat de enige mogelijkheid is. Heb je hem al geprobeerd te installeren want mogelijk werkt hij ook wel voor office 2007.

Je kunt overigens wel met wildcards zoeken in match en vlookup achtige functies:

Als je een vlookup doet met de volgende zoekterm: "*"&"anana"&"*" dan vindt hij als het goed is ook de volgende dingen:
• ananas
• banana, maar ook
• the nanananananana company

dus dat is nog niet echt fuzzy te noemen.
Bron:

Hier heeft iemand een code geschreven die adressen standaardiseerd. Heb hem zelf niet getest maar mogelijk kun je hem naar je wensen aanpassen?
ralfiedonderdag 25 oktober 2012 @ 18:12
Je zou eigenlijk zelf een algoritme moeten schrijven, bijvoorbeeld door gebruik te maken van een zogenaamde metafoon index

http://en.wikipedia.org/wiki/Metaphone

Qua werk valt het wel mee, en je hoeft niet te neuken met *tjes etc. Even een functie schrijven in vba en je bent klaar. In de wikipedia referenties staan nog wat bronnen genoemd waaronder een implementatie in vba. Ik zou zeggen, probeer het eens. Je zult wel de metafoon bibliotheek moeten veranderen naar het nederlands, wellicht dat er een nederlandse versie op het internet rondwaart.
qu63donderdag 25 oktober 2012 @ 21:20
quote:
0s.gif Op donderdag 25 oktober 2012 18:12 schreef ralfie het volgende:
Je zou eigenlijk zelf een algoritme moeten schrijven, bijvoorbeeld door gebruik te maken van een zogenaamde metafoon index

http://en.wikipedia.org/wiki/Metaphone

Qua werk valt het wel mee, en je hoeft niet te neuken met *tjes etc. Even een functie schrijven in vba en je bent klaar. In de wikipedia referenties staan nog wat bronnen genoemd waaronder een implementatie in vba. Ik zou zeggen, probeer het eens. Je zult wel de metafoon bibliotheek moeten veranderen naar het nederlands, wellicht dat er een nederlandse versie op het internet rondwaart.
Ik ga wel even spelen, thanks :) En jij ook Deetch :)

Was de bedoeling om een eigen CRM te maken in Excel, degene die ik nu gratis kan vinden voldoen niet aan mijn eisen namelijk..
qu63donderdag 25 oktober 2012 @ 21:22
Voor mensen die wel eens 'network graphs' maken is dit misschien wel handig:
quote:
NodeXL is a free, open-source template for Microsoft® Excel® 2007 and 2010 that makes it easy to explore network graphs. With NodeXL, you can enter a network edge list in a worksheet, click a button and see your graph, all in the familiar environment of the Excel window.
http://nodexl.codeplex.com/

En nog een heel lijstje met voorbeelden die al gemaakt zijn: http://www.nodexlgraphgallery.org/Pages/Default.aspx
qu63donderdag 25 oktober 2012 @ 21:36
quote:
0s.gif Op donderdag 18 oktober 2012 16:47 schreef kostertim het volgende:
Iemand al eens geprobeerd om een organogram te maken vanuit een draaitabel? (Excel 2010)
Ik kom net achter deze plugin: http://research.microsoft(...)6-a06c-b609df29756f/
quote:
Microsoft Treemapper with Excel Add-In

Treemapper is an Excel Add-In that allows an Excel user to quickly and easily generate a treemap visualization of any hierarchical data in Excel, or from a CSV or XML file. Treemapper is based on the Data Visualization Components also available from this group.
Misschien dat je er wat aan hebt?
qu63donderdag 25 oktober 2012 @ 21:39
De hele MS Research afdeling doet trouwens goed werk voor Excel -> http://research.microsoft(...)=&s=Excel&r=&vr=&ra=

Veel plugins die retehandig kunnen zijn!
quote:
Excel 2007 Web Data Add-In

The Excel 2007 Web Data Add-In makes it easy to use a Web page as a data source in Excel. The add-in plugs into Excel 2007 seamlessly, its entry point located on the Data Tab under the From Web option. The system extracts data by learning from a user’s selection of data they wish to capture into Excel.
http://research.microsoft(...)8-9ebc-c3e9b43a0683/
Deetchdonderdag 25 oktober 2012 @ 23:04
Dit is misschien wel bruikbaar voor als je veel data moet modelleren. Ik zal hem morgen eens testen

quote:
WinMine Toolkit
The WinMine Toolkit contains a set of tools that allow you to build statistical models from data.
http://research.microsoft(...)6-9df2-109dbb8d0867/
draadstaligvrijdag 26 oktober 2012 @ 17:31
Ik moet voor iemand een analyse over een enquete houden. Nu is de enquete al afgenomen en hebben de mensen de mogelijkheid gehad om over 20 vragen een beoordeling van uitstekend t/m slecht en waardering van zeer belangrijk tot onbelangrijk te geven. Jammer genoeg heeft de maker van de enquete geen rekening gehouden met de analyse-fase. Hoe kan ik het beste een uitslag eruit halen hoevaak een bepaald antwoord is gegegeven op een bepaalde vraag. Bv hoevaak hebben mensen op vraag 1 uitstekend gezegd. Als bijlage een voorbeeld.

ik dacht zelf al de X veranderen door een 1, maar vervolgens loop ik helemaal vast. Aantal.als kan niet, verticaal zoeken niet. HELLUP

http://speedy.sh/amBPR/1enquete.xls
Janneke141vrijdag 26 oktober 2012 @ 18:25
Ik heb geen zin om me te gaan registreren op die filesharingsite (misschien even een screenshotje)
Maar misschien is het een optie om in een serie hulpkolommen samengestelde waarden te gaan zetten zoals 01Uitstekend en 13Matig, daarna kun je wel de AANTAL.ALS functie gebruiken, lijkt me.
Basp1vrijdag 26 oktober 2012 @ 19:47
quote:
0s.gif Op vrijdag 26 oktober 2012 17:31 schreef draadstalig het volgende:
Ik moet voor iemand een analyse over een enquete houden. Nu is de enquete al afgenomen en hebben de mensen de mogelijkheid gehad om over 20 vragen een beoordeling van uitstekend t/m slecht en waardering van zeer belangrijk tot onbelangrijk te geven. Jammer genoeg heeft de maker van de enquete geen rekening gehouden met de analyse-fase. Hoe kan ik het beste een uitslag eruit halen hoevaak een bepaald antwoord is gegegeven op een bepaalde vraag. Bv hoevaak hebben mensen op vraag 1 uitstekend gezegd. Als bijlage een voorbeeld.

ik dacht zelf al de X veranderen door een 1, maar vervolgens loop ik helemaal vast. Aantal.als kan niet, verticaal zoeken niet. HELLUP

http://speedy.sh/amBPR/1enquete.xls
Je zou een macro kunnen scrhijven om de rijen waar de waardering van de vraag gegeven wordt verplaatst achter de antwoord rij, daarna werkt je verticaal zoeken wel.
ralfievrijdag 26 oktober 2012 @ 22:50
quote:
0s.gif Op vrijdag 26 oktober 2012 17:31 schreef draadstalig het volgende:
Ik moet voor iemand een analyse over een enquete houden. Nu is de enquete al afgenomen en hebben de mensen de mogelijkheid gehad om over 20 vragen een beoordeling van uitstekend t/m slecht en waardering van zeer belangrijk tot onbelangrijk te geven. Jammer genoeg heeft de maker van de enquete geen rekening gehouden met de analyse-fase. Hoe kan ik het beste een uitslag eruit halen hoevaak een bepaald antwoord is gegegeven op een bepaalde vraag. Bv hoevaak hebben mensen op vraag 1 uitstekend gezegd. Als bijlage een voorbeeld.

ik dacht zelf al de X veranderen door een 1, maar vervolgens loop ik helemaal vast. Aantal.als kan niet, verticaal zoeken niet. HELLUP

http://speedy.sh/amBPR/1enquete.xls
Zet in J2 de volgende formule:

1=ALS(HORIZ.ZOEKEN($I$2;B2:G3;2;ONWAAR)="X";1;0)

'trek' deze formule tot aan de onderste rij van je werkblad (zodat de hele J kolom deze formule heeft)

Zet daarna in K2 de formule:

1=SOM.ALS(J:J;"<>#N/B")

Je kunt nu in I2 bijvoorbeeld 'belangrijk' invullen en dan komt het aantal keren 'belangrijk' in K2 te staan.
Saekerhettdinsdag 30 oktober 2012 @ 09:59
Beste mensen,

Hier op het werk behandelen we inkomende meldingen. Elke melding staat op één rij. Sommige meldingen gaan we onderzoeken: dit zijn meldingen die:
- of een score hebben van 9 of hoger (op een schaal van 1-16) (kolom DU);
- of vallen in een bepaalde categorie (kolom R). Laten we zeggen dat we categorieën A t/m H hebben en E, F, G en H ook meemoeten naar het onderzoek, ongeacht de score.

Uiteraard zijn er meldingen die voldoen aan beide criteria.

Nu kom ik er maar niet uit met welke formule ik de hoeveelheid meldingen kan krijgen die meemoeten.

Heb het met COUNTIF geprobeerd, met SUMPRODUCT, combinaties... maar ik kom er gewoon niet uit... Eén keer dacht ik dat ik er was, maar toen kreeg ik dubbeltellingen...

Kan iemand me op weg helpen?
Jesse_dinsdag 30 oktober 2012 @ 10:04
countif(OR(DU>8;R="E";R="F";R="G";R="H";))
Zou zoiets niet werken?
Saekerhettdinsdag 30 oktober 2012 @ 10:37
quote:
7s.gif Op dinsdag 30 oktober 2012 10:04 schreef Jesse_ het volgende:
countif(OR(DU>8;R="E";R="F";R="G";R="H";))
Zou zoiets niet werken?
Geprobeerd, maar dit is geen geldige formule.
Jesse_dinsdag 30 oktober 2012 @ 10:43
quote:
0s.gif Op dinsdag 30 oktober 2012 10:37 schreef Saekerhett het volgende:

[..]

Geprobeerd, maar dit is geen geldige formule.
Je hebt gelijk. Geen idee hoe je dit zou kunnen doen, zonder een macro.
Deetchdinsdag 30 oktober 2012 @ 12:27
quote:
0s.gif Op dinsdag 30 oktober 2012 10:37 schreef Saekerhett het volgende:

[..]

Geprobeerd, maar dit is geen geldige formule.
Dat is ook logisch aangezien je verkeerd verwijst naar de kolom.

Er van uitgaande dat je een negelse excel gebruikt en je , gebruikt als scheiding tussen argumenten in je formule.

Als je over een gehele kolom DU wilt tellen welke waarde groter dan 9 zijn doe je:

=countif(DU:DU,">9")
als je slechts in een beperkt bereik wilt tellen (bijv de eerste regel niet omdat die koptekst bevat en dan de eerste 250 regels) gebruik je
=countif(DU2:DU250,">9")

Je verhaal verder is niet helemaal duidelijk maar ik ga er van uit dat er in kolom R een "x" staat als aan dat criterium wordt voldoen (andere tekst mag ook) en als hij er niet aan voldoet dat er niks staat.

Aantal x-jes tellen (of eigenlijk het aantal niet lege cellen
=counta(R:R)
of
=counta(R2:R250)

Als je nu deze twee combineert met een OR functie er omheen krijg je dus dubbelingen als zowel het DU als het R criterium geldt.

What to do:
Maak een hulp kolom, bijv kolom EE.
In cel EE2 zet je de volgende formule =IF((--(DU2>9)+COUNTA(R2))>=1,1,0)

Wat doet deze formule nu?
DU2>9 is de check of die waarde groter is dan 9 en resulteert in een TRUE of FALSE, door deze -- te doen wordt dit een 1 of een 0.

Hier tel je bij hoeveel cellen in de range R2 niet leeg zijn met de COUNTA formule, dit resulteert in een 1 of een 0.

Deze tel je vervolgens op en de IF functie eromheen corrigeert voor dubbelingen door als 1 of beide voorwaarden gelden (en de optelsom dus groter of gelijk aan 1 is) deze op 1 te stellen. In het andere geval is het dus 0.
Deze hulpkolom kun je vervolgens optellen
Deetchdinsdag 30 oktober 2012 @ 12:47
Met sumproduct kun je dat allemaal in 1 keer doen:

=SUMPRODUCT((DU2:DU250>9)+(R2:R250<>""))-SUMPRODUCT((DU2:DU250>9)*(R2:R250<>""))

De eerste sumproduct telt op voor welke rijen het criterium DU>9 geldt of waar R niet leeg is. Deze neemt dus de dubbelingen mee. OF doe je dus met een +
De tweede sumproduct telt alleen de rijen waarin geldt dat zowel DU>9 als R is niet leeg. Dit zijn de dubbelingen

Door nu het aantal dubbelingen af te trekken van het totaal inclusief dubbelingen houdt je alleen het aantal rijen over waar of DU>9 of R <> leeg of allebei geld..
Saekerhettdinsdag 30 oktober 2012 @ 13:45
quote:
3s.gif Op dinsdag 30 oktober 2012 12:47 schreef Deetch het volgende:
Met sumproduct kun je dat allemaal in 1 keer doen:

=SUMPRODUCT((DU2:DU250>9)+(R2:R250<>""))-SUMPRODUCT((DU2:DU250>9)*(R2:R250<>""))

De eerste sumproduct telt op voor welke rijen het criterium DU>9 geldt of waar R niet leeg is. Deze neemt dus de dubbelingen mee. OF doe je dus met een +
De tweede sumproduct telt alleen de rijen waarin geldt dat zowel DU>9 als R is niet leeg. Dit zijn de dubbelingen

Door nu het aantal dubbelingen af te trekken van het totaal inclusief dubbelingen houdt je alleen het aantal rijen over waar of DU>9 of R <> leeg of allebei geld..
Bedankt voor je uitgebreide uitleg! In kolom R heb ik alleen 'A', 'B'.... 'G', 'H' staan, dus geen kruisje. En van die acht verschillende letters, moeten er dus vier geteld worden (E, F, G, H).

Dus je formule is bijna goed, alleen nog net niet helemaal :P

Ik heb wel wat gevonden met accolades in een functie om een aantal begrippen op te sommen, maar ik weet niet of ik dat in dit geval kan doen.

Iets verduidelijkt (versimpeld):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
R    DU
A    4
F    9
F    1
G    2
A    2
B    3
C    1
C    6
E    10
F    4
E    3
E    5
D    5
H    6
H    9
C    11
F    7

Stel dat ik zoiets heb. Dan wil ik dus dat het antwoord '10' is, omdat er bij 10 rijen de voorwaarde geldt:
- of E, F, G, H;
- of >8.

Hoop dat ik het een beetje verduidelijkt heb :P
nils7dinsdag 30 oktober 2012 @ 14:35
Hi allen,

Ik ben bezig met een formule die niet ingewikkeld is maar ik zit gewoon even vast.
Ik wil bijhouden hoeveel mijn collega's doen, gedurende de week.

Er is een lijst met een aantal items, een deel daarvan is onbehandeld en een deel daarvan is al behandeld.
Ze krijgen per dag een X aantal nieuws items op de lijst en daar behandelen ze er een deel van, het is mogelijk dat niet alle onbehandelde items gedaan worden vandaag. Hierdoor verschuift dit werk door naar morgen.
Items verdwijnen van de lijst wanneer ze zijn opgelost (gebeurt bij het mij aanmaken van de lijst wanneer de items niet meer aan bepaalde criteria voldoen) waardoor ze zichzelf wel oplossen zonder interventie van mijn collega's dus het totaal aantal items morgen kan dus minder zijn dan vandaag, ondanks dat er vandaag "werk" zou blijven liggen.

Nu zou ik graag de totale workload willen weten aan het eind van de week, zonder de details in te gaan.
Er is dus een totaal aantal op de lijst.
Een aantal nieuwe onbehandelde items.
Een aantal openstaande onbehandelde items.
Alle items op de lijst dienen wekelijks wel bekeken te worden waarbij de nieuwe/"onbehandelde" items wel prio zijn op de al behandelde items.

Nu lijkt dat heel simpel om de week workload te bepalen: Totaal aantal + nieuw onbehandeld + oud onbehandeld (elke dag) = totale weekworkload.
Maar toch krijg ik gekke getallen in Excel en zie ik door de cijfertjes het tabblad niet meer (hahaha).

Een voorbeeld van getallen uit de week:
1
2
3
4
              Ma Di Wo Do Vr Total 
Workload      20 18 19 21 22 ?
Handled items 19 18 18 20 20 ?
Open items    1  0  1  1  2  ?
*Handled items = alle items welke niet onbehandeld zijn

Ik heb verschillende lijsten waardoor de formule ook toepasbaar op dit zou moeten zijn:
1
2
3
4
              Ma Di Wo Do Vr Total 
Workload      0  50 71 0  85 ?
Handled items 0  30 40 0  85 ?
Open items    0  20 31 0  0  ?
*op maandag & donderdag wordt de lijst niet gedraaid waardoor er geen workload is welke uit een lijst te halen valt.

Ik zoek dus een formule die in beide gevallen werkt maar ik zit er al een tijd op maar ik kan geen eenduidige methode vinden.
Iemand die een oplossing ervoor heeft?
Deetchdinsdag 30 oktober 2012 @ 14:41
@Saekerhett:

Zo dan?
=SUMPRODUCT(--(DU2:DU250>8))+SUMPRODUCT(--(R2:R250={"E","F","G","H"}))-SUMPRODUCT((DU2:DU250>8)*(R2:R250={"E","F","G","H"}))

Bovenstaande formule moet je zelf even aanpassen voor andere ranges
Saekerhettdinsdag 30 oktober 2012 @ 15:30
quote:
3s.gif Op dinsdag 30 oktober 2012 14:41 schreef Deetch het volgende:
@Saekerhett:

Zo dan?
=SUMPRODUCT(--(DU2:DU250>8))+SUMPRODUCT(--(R2:R250={"E","F","G","H"}))-SUMPRODUCT((DU2:DU250>8)*(R2:R250={"E","F","G","H"}))

Bovenstaande formule moet je zelf even aanpassen voor andere ranges
Bedankt Deetch! Krijg nu nog een #N/A-fout btw, maar de formule lijkt op zich te kloppen :P
Deetchdinsdag 30 oktober 2012 @ 15:51
Dan heb je ws. nog ergens een fout in de formule. In deze link staat hoe je een en ander kunt oplossen. Je kunt dan nl. zien wat de fout veroorzaakt.
http://office.microsoft.c(...)ror-HP005203936.aspx

Trouwens ik ben steeds uitgegaan van office 2007 of 2010 met engels als taal, dat klopt toch?

Variaties met de tekst tussen accolades { } die ik wel eens ben tegengekomen is:
{"E"\"F"\"G"\"H"}
Saekerhettdinsdag 30 oktober 2012 @ 16:01
quote:
3s.gif Op dinsdag 30 oktober 2012 15:51 schreef Deetch het volgende:
Dan heb je ws. nog ergens een fout in de formule. In deze link staat hoe je een en ander kunt oplossen. Je kunt dan nl. zien wat de fout veroorzaakt.
http://office.microsoft.c(...)ror-HP005203936.aspx
Dank je, ik kijk even.

quote:
Trouwens ik ben steeds uitgegaan van office 2007 of 2010 met engels als taal, dat klopt toch?
Klopt, hier heb ik een Engelse Office 2010.

quote:
Variaties met de tekst tussen accolades { } die ik wel eens ben tegengekomen is:
{"E"\"F"\"G"\"H"}
Zal dat ook eens proberen. Maar een #N/A-fout betekent toch wel dat in elk geval de structuur van de formule klopt?
Saekerhettdinsdag 30 oktober 2012 @ 16:09
quote:
3s.gif Op dinsdag 30 oktober 2012 15:51 schreef Deetch het volgende:
Variaties met de tekst tussen accolades { } die ik wel eens ben tegengekomen is:
{"E"\"F"\"G"\"H"}
Dit net gedaan en ik kreeg geen foutmelding meer! Alleen klopt de waarde niet. Ik krijg nu het getal 41 te zien, terwijl er 1 moet komen :P
Deetchdinsdag 30 oktober 2012 @ 17:43
quote:
0s.gif Op dinsdag 30 oktober 2012 16:09 schreef Saekerhett het volgende:

[..]

Dit net gedaan en ik kreeg geen foutmelding meer! Alleen klopt de waarde niet. Ik krijg nu het getal 41 te zien, terwijl er 1 moet komen :P
Wat voor waarde geven de afzonderlijke delen van de formule? Zelf even de goeie syntax gebruiken.

sumproduct --DU>8 :
sumproduct R=E\F\G\H :
sumproduct R=E,F,G,H :
Saekerhettwoensdag 31 oktober 2012 @ 09:08
quote:
3s.gif Op dinsdag 30 oktober 2012 17:43 schreef Deetch het volgende:

[..]

Wat voor waarde geven de afzonderlijke delen van de formule? Zelf even de goeie syntax gebruiken.

sumproduct --DU>8 :
Deze geeft 39, terwijl het 1 moet zijn.

quote:
sumproduct R=E\F\G\H :
Deze geeft 1, en dat klopt, dus dit deel is goed!

quote:
sumproduct R=E,F,G,H :
Deze geeft de #N/A-fout.

Ik zoek ondertussen nog even verder, maar het lijkt erop dat het deel van de formule met {E;F;G;H} goed is. Hier op het werk moet ik trouwens ; gebruiken in plaats van , voor scheiding tussen argumenten, maar dat is niet zo'n probleem :P
Saekerhettwoensdag 31 oktober 2012 @ 09:11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
0        3
1        8
2        3
3        9
4        8
5        5
6        5
7        1
8        5
9        0
10        0
11        0
12        1
13        0
14        0
15        0
16        0

Dit is trouwens de werkelijke hoeveelheid. Links is de score, en rechts het aantal meldingen met die score. Je ziet dat er één boven de 8 is, die melding heeft score 12, en dus moet er één geteld worden, maar geen idee waarom ik 39 krijg :P
Deetchwoensdag 31 oktober 2012 @ 10:04
De cellen in kolom DU moeten wel echte getallen bevatten en geen tekst. Een getal kan ook als tekst in je kolom staan. Dan staat hij meestal links uitgelijnd. Getallen staan standaard rechts uitgelijnd. Dit kun je checken door de functie =ISTEXT(celverwijzing) of =ISNUMBER(celverwijzing)

Als er tekst in een cel staat telt deze ook als meer dan 8, een spatie is ook tekst

Als er een formule staat waarvan de uitkomst een lege teksttring is (zoals: =IF(B5="","","") ) telt deze ook als meer dan 8. "" betekent namelijk een tekststring met lengte 0.

[ Bericht 27% gewijzigd door Deetch op 31-10-2012 10:12:06 ]
Saekerhettwoensdag 31 oktober 2012 @ 10:16
quote:
3s.gif Op woensdag 31 oktober 2012 10:04 schreef Deetch het volgende:
De cellen in kolom DU moeten wel echte getallen bevatten en geen tekst. Een getal kan ook als tekst in je kolom staan. Dan staat hij meestal links uitgelijnd. Getallen staan standaard rechts uitgelijnd. Dit kun je checken door de functie =ISTEXT(celverwijzing) of =ISNUMBER(celverwijzing)

Als er tekst in een cel staat telt deze ook als meer dan 8, een spatie is ook tekst

Als er een formule staat waarvan de uitkomst een lege teksttring is (zoals: =IF(B5="","","") ) telt deze ook als meer dan 8. "" betekent namelijk een tekststring met lengte 0.
Je hebt helemaal gelijk. Ik moest handmatig de kolom DU converteren naar nummers, en nu werkt het perfect _O_

Maar wel gek, want ik had al heel vaak de hele kolom geselecteerd en het format op number gezet. Geen idee waarom hij dit telkens weer omzet naar tekst.
Deetchwoensdag 31 oktober 2012 @ 10:35
quote:
0s.gif Op woensdag 31 oktober 2012 10:16 schreef Saekerhett het volgende:

[..]

Je hebt helemaal gelijk. Ik moest handmatig de kolom DU converteren naar nummers, en nu werkt het perfect _O_

Maar wel gek, want ik had al heel vaak de hele kolom geselecteerd en het format op number gezet. Geen idee waarom hij dit telkens weer omzet naar tekst.
tja dat is de wondere wereld van office 2010 waarin de software voor de gebruiker denkt ook als hij dat niet wil :P
Maar fijn dat het nu werkt.
Saekerhettwoensdag 31 oktober 2012 @ 11:53
quote:
3s.gif Op woensdag 31 oktober 2012 10:35 schreef Deetch het volgende:

[..]

tja dat is de wondere wereld van office 2010 waarin de software voor de gebruiker denkt ook als hij dat niet wil :P
Maar fijn dat het nu werkt.
Zal nog wel even verder zoeken of dat een optie in Excel 2010 in, maar voor nu hartstikke bedankt!
Regenbuivrijdag 2 november 2012 @ 09:55
Gents,

Na heel wat pogingen met vlookup, match en index kom ik er toch niet uit. Onderstaand twee kolomen met in kolom A een nummering en in B een postcode. Nu wil ik controleren of alle cellen in kolom A met een waarde van 1, dezelfde naastliggende waarde (postcode) in kolom B hebben.

Maar..., zodra ik de formule naar beneden trek en in kolom A een nieuwe waarde tegenkom (2 in dit geval) hij controleert of alle waarde met 2 in kolom A, dezelfde naastliggende waarde in kolom B hebben. Is dit mogelijk?

1
2
3
4
5
1    3511MR
2    2233RL
1    3511MR
1    1234LL
2    2233RL
RanTheManvrijdag 2 november 2012 @ 11:13
Beste allen, even een vraag.. Ik kom er niet helemaal uit..

Ik heb 2 documenten.. beide bestaande uit 4 kolommen met dezelfde soort waarden.. Feitelijk zijn beide lijsten dus identiek aan elkaar..

Echter het ene document heeft 95.000 rijen en het andere document heeft 80.000 rijen. Deze 80.000 rijen zijn onderdeel van die 95.000 rijen..
nu wil ik graag de 15.000 unieke rijen uitfilteren/identificeren.. Iemand enig idee hoe ik dat doe?.
Hiyavrijdag 2 november 2012 @ 11:22
Móet het automatisch gebeuren? Anders zou je de eerste kolom onder de tweede kolom kunnen kopiëren. Daarna via data remove doubles selecteren.

Of een pivot table maken en dan moet Excel alles samenvoegen, daarna als count sorteren zodat je ziet hoe vaak een waarde in je tabel voorkomt.
RanTheManvrijdag 2 november 2012 @ 11:26
quote:
0s.gif Op vrijdag 2 november 2012 11:22 schreef Hiya het volgende:
Móet het automatisch gebeuren? Anders zou je de eerste kolom onder de tweede kolom kunnen kopiëren. Daarna via data remove doubles selecteren.

nee hoeft niet automatisch.. Maar dit werkt niet natuurlijk... stel ik voeg ze beide samen ( 95K + 80K).. haal alle dubbele er uit, dan zit ik weer met 95K want ik heb immers 80K dubbele toegevoegd.. Terwijl ik de 15K unieke wil hebben
RanTheManvrijdag 2 november 2012 @ 11:29
bestand A heeft 1-2-3-4-5
en bestand B heeft 1-2-3-5

In dit geval heeft alleen bestand A -> 4 dus die "4" wil ik hebben als resultaat.. en niet 1-2-3-4-5
DaFanvrijdag 2 november 2012 @ 11:36
Als het maar eenmalig even hoeft is het makkelijkst om in kolom B, als alles onder elkaar staat in A, te tellen hoe vaak A1 voorkomt in hele kolom A en dat doortrekken. Daarna filteren waar er 1 staat.
RanTheManvrijdag 2 november 2012 @ 11:51
quote:
0s.gif Op vrijdag 2 november 2012 11:36 schreef DaFan het volgende:
Als het maar eenmalig even hoeft is het makkelijkst om in kolom B, als alles onder elkaar staat in A, te tellen hoe vaak A1 voorkomt in hele kolom A en dat doortrekken. Daarna filteren waar er 1 staat.
ik begrijp het niet helemaal.. Misschien was mijn voorbeeld ook heel slecht.. even een beter voorbeeld:

naam a naam B naam C
11 11 11
11 11 11
22 222 22222
22 222 22222
5555 555 555
5555 555 555
444 555 444

als ik beide lijsten onder elkaar zet.. en sorteer krijg ik zoiets.. ik wil alleen de rij 444 555 444 overhouden.. Maar ik kom er niet uit
Hiyavrijdag 2 november 2012 @ 12:38
quote:
2s.gif Op vrijdag 2 november 2012 11:26 schreef RanTheMan het volgende:

[..]

nee hoeft niet automatisch.. Maar dit werkt niet natuurlijk... stel ik voeg ze beide samen ( 95K + 80K).. haal alle dubbele er uit, dan zit ik weer met 95K want ik heb immers 80K dubbele toegevoegd.. Terwijl ik de 15K unieke wil hebben
Pivot Table zou moeten werken-
DaFanvrijdag 2 november 2012 @ 17:55
quote:
2s.gif Op vrijdag 2 november 2012 11:51 schreef RanTheMan het volgende:

[..]

ik begrijp het niet helemaal.. Misschien was mijn voorbeeld ook heel slecht.. even een beter voorbeeld:

naam a naam B naam C
11 11 11
11 11 11
22 222 22222
22 222 22222
5555 555 555
5555 555 555
444 555 444

als ik beide lijsten onder elkaar zet.. en sorteer krijg ik zoiets.. ik wil alleen de rij 444 555 444 overhouden.. Maar ik kom er niet uit
Oh nog makkelijker, dan doe je in kolom D
1=A1=B1=C1
En filter je daarna op ONWAAR.
Deetchvrijdag 2 november 2012 @ 22:02
dat gaat dan fout na de eerste afwijking want dan is het allemaal onwaar.
Deetchvrijdag 2 november 2012 @ 22:04
quote:
0s.gif Op vrijdag 2 november 2012 09:55 schreef Regenbui het volgende:
Gents,

Na heel wat pogingen met vlookup, match en index kom ik er toch niet uit. Onderstaand twee kolomen met in kolom A een nummering en in B een postcode. Nu wil ik controleren of alle cellen in kolom A met een waarde van 1, dezelfde naastliggende waarde (postcode) in kolom B hebben.

Maar..., zodra ik de formule naar beneden trek en in kolom A een nieuwe waarde tegenkom (2 in dit geval) hij controleert of alle waarde met 2 in kolom A, dezelfde naastliggende waarde in kolom B hebben. Is dit mogelijk?
[ code verwijderd ]

als je de data sorteert op de linker kolom kun je het vrij eenvoudig handmatig doen, zeker als het een malig moet gebeuren.
RanTheManvrijdag 2 november 2012 @ 22:08
quote:
7s.gif Op vrijdag 2 november 2012 17:55 schreef DaFan het volgende:

[..]

Oh nog makkelijker, dan doe je in kolom D
[ code verwijderd ]

En filter je daarna op ONWAAR.
nee dat klopt niet :) want abc zijn niet per definitie gelijk aan elkaar.. t ging om gelijke rijen.. maar ik heb t opgelost met een sql oplossing :)
DaFanzaterdag 3 november 2012 @ 00:10
Ok
einzeinzzondag 4 november 2012 @ 13:35
Ik geraak gedemotiveerd van Excel. Het programma doet niet wat het moet doen.
Kan iemand me helpen of uitleg geven? Eén van de vragen is de volgende.

Geef aan in welke leeftijdscategorie u thuishoort

<25 / 7 / 4%
25-30 / 34 / 20%
30-35 / 38 / 22%
35-40 / 25 / 15%
40-45 / 23 / 13%
45-50 / 17 / 10%
>50 / 28 / 16%

Vraag is duidelijk denk ik? Kolom 2 zijn de aantal ingevulde en kolom 3 is het percentage.
Nu zou ik dus graag kolom 1 en 2 hebben om een grafiek te maken, ik kies een staafgrafiek.

Maar dan gooit Excel ineens alles om en is >50 de eerste en <25 de laatste in de grafiek. En dan begin ik pietje precies en wil ik de gegevens zoals ik ze opgeef maar een mogelijkheid om de selectie om te draaien is er niet.

Mijn grafiek moet met <25 beginnen en met >50 eindigen.

Ik zoek er nu al 6 uur op maar heb nog geen antwoord gevonden, wie helpt me?
Waarom verdraait Excel de gegevens in de grafiek?
qu63zondag 4 november 2012 @ 14:08
quote:
0s.gif Op zondag 4 november 2012 13:35 schreef einzeinz het volgende:
Ik geraak gedemotiveerd van Excel. Het programma doet niet wat het moet doen.
Kan iemand me helpen of uitleg geven? Eén van de vragen is de volgende.

Geef aan in welke leeftijdscategorie u thuishoort

<25 / 7 / 4%
25-30 / 34 / 20%
30-35 / 38 / 22%
35-40 / 25 / 15%
40-45 / 23 / 13%
45-50 / 17 / 10%
>50 / 28 / 16%

Vraag is duidelijk denk ik? Kolom 2 zijn de aantal ingevulde en kolom 3 is het percentage.
Nu zou ik dus graag kolom 1 en 2 hebben om een grafiek te maken, ik kies een staafgrafiek.

Maar dan gooit Excel ineens alles om en is >50 de eerste en <25 de laatste in de grafiek. En dan begin ik pietje precies en wil ik de gegevens zoals ik ze opgeef maar een mogelijkheid om de selectie om te draaien is er niet.

Mijn grafiek moet met <25 beginnen en met >50 eindigen.

Ik zoek er nu al 6 uur op maar heb nog geen antwoord gevonden, wie helpt me?
Waarom verdraait Excel de gegevens in de grafiek?
Ik gok dat het zal komen door de < en >. Maak er eens 0-25 en 50-99 van? (Of 50-150)..
DaFanzondag 4 november 2012 @ 14:16
Hm ik heb dezelfde waardes als einzeinz, maak van de leeftijden type Text en het gaat direct bij invoegen goed. Wat voor datatype is je kolom leeftijden?
DaFanzondag 4 november 2012 @ 14:16
quote:
0s.gif Op vrijdag 2 november 2012 09:55 schreef Regenbui het volgende:
Gents,

Na heel wat pogingen met vlookup, match en index kom ik er toch niet uit. Onderstaand twee kolomen met in kolom A een nummering en in B een postcode. Nu wil ik controleren of alle cellen in kolom A met een waarde van 1, dezelfde naastliggende waarde (postcode) in kolom B hebben.

Maar..., zodra ik de formule naar beneden trek en in kolom A een nieuwe waarde tegenkom (2 in dit geval) hij controleert of alle waarde met 2 in kolom A, dezelfde naastliggende waarde in kolom B hebben. Is dit mogelijk?
[ code verwijderd ]

Wat moet de output worden??
SM-maandag 5 november 2012 @ 13:46
Kan ik excel tekst uit cellen over laten nemen?
Ik heb een kolom met sample nummers en een kolom met sample namen, en ik wil beide over laten nemen naar andere werkbladen. Voor de nummers is dat geen punt, maar is dit ook mogelijk met de tekst?
Deetchmaandag 5 november 2012 @ 15:02
Ja hoor. Je kunt ze gewoon kopieren en plakken maar je kunt er ook naar verwijzen net als bij getallen.

Ga in de cel staan waar de verwijzing moet komen. typ in "=" zonder de aanhalingstekens en druk ook nog niet op enter.
Ga vervolgens met je muis naar de cel waar de naam staat die je wilt laten zien en klik die cel aan en druk op enter.
Klaar
SM-maandag 5 november 2012 @ 15:11
Zelfde als met de getalletjes dus! Super, bedankt.
Holy_Goatdinsdag 6 november 2012 @ 08:32
Irritant!

Wil ik een kolom toevoegen met een macro; mag het niet. 'To prevent loss of data .... you try to shift non blank cells off the sheet blbalabla' zoiets.

Echter, ik heb vanaf kolom AB niets meer in het werkblad staan.
Ik heb ook geen afbeeldingen, niets.

Er staat ook nog iets als: or define what blank cells are in the settings etc. Maarja, dat kan ik nergens vinden. Hulp?
Basp1dinsdag 6 november 2012 @ 08:44
quote:
0s.gif Op dinsdag 6 november 2012 08:32 schreef Holy_Goat het volgende:
Irritant!

Wil ik een kolom toevoegen met een macro; mag het niet. 'To prevent loss of data .... you try to shift non blank cells off the sheet blbalabla' zoiets.

Echter, ik heb vanaf kolom AB niets meer in het werkblad staan.
Ik heb ook geen afbeeldingen, niets.

Er staat ook nog iets als: or define what blank cells are in the settings etc. Maarja, dat kan ik nergens vinden. Hulp?
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.
Holy_Goatdinsdag 6 november 2012 @ 13:04
quote:
0s.gif 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.
nieuwe Excel. Met de hand alle ovrrbodigeo kolommen verwijderen en daarna met de hand kolom invoegen werkt ook niet
Ofrescadonderdag 15 november 2012 @ 22:42
Ok. Ik ben nu in Excel 2010, Engels, bezig met het bewerken van een werkrooster.

Ik heb het al voor elkaar gekregen om m.b.v.
1= SMALL(IF(Rooster!D$4:D$58=1;ROW(Rooster!D$4:D$58));ROW(1:1))
voor iedereen zijn/ haar werkdagen op een rijtje te zetten.

Het omgekeerde, dus wie er werkt op een bepaalde dag, lukt (nog) niet. Ik krijg de code maar niet werkend.
1=SMALL(IF(Rooster!$D4:$AI4=1;COLUMN(Rooster!$D4:$AI4));??)
Iemand een idee wat er moet staan op de plek van de vraagtekens? Alleen de eerste rij werkt, en daarna houdt het op. :{

SPOILER
Voor de duidelijkheid: Het rooster bestaat uit een kolom met data en een rij met namen, een 1 geeft aan dat iemand die dag werkt (dit kunnen meerdere personen tegelijk zijn). Een 0 geeft aan dat iemand die dag niet kan werken.
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 ]
hello_moto1992dinsdag 20 november 2012 @ 14:37
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?
qu63dinsdag 20 november 2012 @ 14:47
quote:
6s.gif 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?
Er van uitgaande dat
• In kolom A je lengte staat en in kolom B de hoogte.
• In kolom D staat je nieuwe lengte (1 t/m 7).
Kolom E:
=ALS.FOUT(VERT.ZOEKEN(D1;$A$1:$B$5;2;ONWAAR);"(leeg)")
Kolom F:
=ALS.FOUT(VERT.ZOEKEN(D1;$A$7:$B$11;2;ONWAAR);"(leeg)")
Nixx-woensdag 21 november 2012 @ 14:06
Ik probeer een rij door te trekken, maar het lukt niet.
Als ik intik:
=A2
=A8
=A14

als ik doortrek krijg ik:
=A5
=A11
=A17

Hoe krijg ik dit wel werkende?
davidvp01woensdag 21 november 2012 @ 16:44
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.
qu63woensdag 21 november 2012 @ 17:35
quote:
0s.gif 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.
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.

Van dit tabblad een grafiek maken. :)
Holenbeerwoensdag 21 november 2012 @ 22:55
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)
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 
 

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?
qu63woensdag 21 november 2012 @ 23:56
quote:
0s.gif 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?
Geen idee of t werkt (en te brak om het in te voeren), maar probeer eens C14 (groente) te vervangen door OF("groente";"fruit")?
Holenbeerdonderdag 22 november 2012 @ 00:16
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.
Deetchdonderdag 22 november 2012 @ 09:41
Met somproduct natuurlijk. ^O^

In D14 zet je:
=SOMPRODUCT(--(A2:A12=A14),--(B2:B12=B14),--(C2:C12=C14),(D2:D12))

Wat doet die SOMPRODUCT nou?

De dingen tussen haakjes kijken of een waarde in A2:A12 gelijk is aan A14 en maakt dan een lijst met TRUE en FALSE. Idem voor B2:B12 en C2:C12
De -- is nodig om van een lijst TRUE FALSE een lijst enen en nullen te maken.

Lijst1:11000000001
Lijst2:10000001001
Lijst3:10001100100

Alle enen en nullen op dezelfde positie met elkaar vermenigvuldig geeft:
10000000000
Dit vermenigvuldigd met het corresponderende bedrag (D2:D12) en bij elkaar opgeteld geeft ¤1000,00
Deetchdonderdag 22 november 2012 @ 10:33
quote:
0s.gif 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.
Om de groente fruit optie toe te voegen aan je sumifs moet je een trucje met arrays uitvoeren.
Deze formule zou voor jou moeten werken:
=SOM(SOMMEN.ALS(D2:D12;A2:A12;A14;B2:B12;B14;C2:C12;{"groente","fruit"}))

Omdat je dan toch al een kunstje uithaalt kun je imho veel beter SOMPRODUCT gebruiken:
=SUMPRODUCT(--(A2:A12=A14),--(B2:B12=B14),(C2:C12="groente")+(C2:C12="fruit"),(D2:D12))
in NL:
=SOMPRODUCT(--(A2:A12=A14);--(B2:B12=B14);(C2:C12="groente")+(C2:C12="fruit");(D2:D12))
Holenbeerdonderdag 22 november 2012 @ 10:40
thanks deetch,

ik ga ermee klooien en kijken of het een beetje lukt.

edit: de somproduct was een prima oplossing. Kan ik hieruit ook opmaken dat de functie sommen.als per definitie geen toegevoegde waarde heeft tov somproduct?

je kunstgreep met zowel groente als fruit in de som(sommen.als) functie werkt niet bij mij. Ik krijg steeds een foutmelding.

[ Bericht 32% gewijzigd door Holenbeer op 22-11-2012 11:01:24 ]
Deetchdonderdag 22 november 2012 @ 12:04
Klopt helemaal. Somproduct is ook al een hele oude functie dus ook bruikbaar op oudere versies van office. sommen.als is pas sinds 2010.

Tussen groente en fruit moet een ; ipv een , ^O^

Dat krijg je met verschillende talen door elkaar gebruiken, tijd voor c_/
Holenbeerdonderdag 22 november 2012 @ 13:05
^O^
draadstaligmaandag 26 november 2012 @ 14:54
Ik probeer het volgende te doen met Excel, maar krijg de juiste formule er niet in.

Ik heb een 5 tal gegevens
1. Huidige: 10¤
2. Alternatief 1: 20¤
3. Alternatief 2: 15¤
4. Alternatief 3: 8¤
5 Alternatief 4: 4¤

Nu wil ik één cel waarbij hij aangeeft welke van de cellen het laagste bedrag is en daarbij moet niet het bedrag naar voren komen maar de "alternatief". Dus in bovenstaande moet Alternatief 5 eruit komen. Hoe krijg ik dit voor elkaar. Ik heb al veel aantal.als en als geprobeerd, maar tevergeefs
draadstaligmaandag 26 november 2012 @ 15:01
En min. werkt wel, maar dan krijg ik alleen het getal te zien en niet de naam die daarbij hoort.
Basp1maandag 26 november 2012 @ 15:08
quote:
0s.gif 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.
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. ;)
Janneke141maandag 26 november 2012 @ 15:11
De kolommen van plaats verwisselen en dan VERT.ZOEKEN(MIN(verw);verw;2;ONWAAR) ?
Deetchmaandag 26 november 2012 @ 15:16
quote:
0s.gif 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) ?
Uitgangspunt:
In kolom A het bedrag en in kolom B de tekst die erbij hoort (huidige, alternatief1 etc)
De gegevens staan in regel 2 tm 6

Wat jij zoekt is dan met onderstaande formule te vinden
=VERT.ZOEKEN(MIN(A2:A6);A2:B6;2;ONWAAR)
draadstaligmaandag 26 november 2012 @ 15:18
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.
Janneke141maandag 26 november 2012 @ 15:20
In dat geval is een (verborgen) hulpkolommetje waarin je een kopie maakt van de alternatief-namen een optie?
Als dat niet kan krijg je een hele nare INDEX-functie, die zeker met heel grote bestanden traag als dikke stront wordt.
draadstaligmaandag 26 november 2012 @ 15:26
Ik dacht dus zelf aan dit =ALS(MIN(D11;G11;I11;K11;M11)=D11;D8;0)
draadstaligmaandag 26 november 2012 @ 15:27
En dat lukt ook voor de 1e, maar nu moet ik de andere nog erin zetten.
Janneke141maandag 26 november 2012 @ 15:28
Dat wordt een Rob Geus-formule. Maar hij werkt idd wel.
Basp1maandag 26 november 2012 @ 15:29
En wat gebeurt er als er 1 leverancier toegevoegd wordt, dan lopen je forumels al in de soep.
Deetchmaandag 26 november 2012 @ 15:30
quote:
0s.gif 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.
Ik ben even uitgegaan van dat de bedragen in cellen A3 tm E3 staan en de tekst in cel A2:E2

Onderstaande functie vraagt de waarde op van de cel in regel 2 van de cel die overeenkomt met de minimumwaarde uit A3:E3

=INDIRECT(ADDRESS(2,MATCH(MIN(A3:E3),A3:E3,0)))

In stapjes:
MATCH(MIN(A3:E3).A3:E3,0) zoeet welke cel uit de range A3:E3 precies (daar is de 0 voor)overeenkomt met de minimale waarde uit die zelfde range.
De uitkomst hiervan is 4, namelijk: de vierde cel in de range A3:E3 bevat de laagste waarde

ADDRESS(2,4)
ADDRESS is een andere manier om eenc elverwijzing op te schrijven.De alternatieven staan in regel twee dus vraag je het adres op van regel 2, kolom 4

de waarde die in deze cel staat (D2) vraag je op middels de functie INDIRECT

In het nederlands:
=INDIRECT(ADRES(2;VERGELIJKEN(MIN(A3:E3);A3:E3;0)))
Janneke141maandag 26 november 2012 @ 15:31
Als je leveranciers en bedragen in de cellen A2:B37 staan, dan kun je de volgende formule gebruiken:

=INDEX(A2:B37;VERGELIJKEN(MIN(B2:B37);B2:B37;0);1)
draadstaligmaandag 26 november 2012 @ 15:57
Koning. Hij werkt :) Thnx
Deetchmaandag 26 november 2012 @ 16:07
quote:
0s.gif Op maandag 26 november 2012 15:57 schreef draadstalig het volgende:
Koning. Hij werkt :) Thnx
welke?
qu63maandag 26 november 2012 @ 16:08
In Word kan je zogenaamde bouwstenen toevoegen, in Excel is dat niet te vinden. Ik wil namelijk het aantal keer dat het document is opgeslagen laten zien. Hoe doe ik dat nu t makkelijkst? Is het uit te lezen met VBA? Met =CEL() lukt t iig niet..

-edit-

Dit dus :) http://msdn.microsoft.com(...)8v=office.12%29.aspx

Even een UDF-je schrijven :s)

-edit2-

Deze werkt niet.. Iemand een idee waarom niet?
1
2
3
Public Function RN() As Long
value = ActiveWorkbook.BuiltinDocumentProperties(8)
End Function


[ Bericht 35% gewijzigd door qu63 op 26-11-2012 16:21:52 ]
Deetchmaandag 26 november 2012 @ 16:29
vervang value eens door RN?
qu63maandag 26 november 2012 @ 16:33
quote:
3s.gif Op maandag 26 november 2012 16:29 schreef Deetch het volgende:
vervang value eens door RN?
Nope..

Het staat in Module1, als ik em in thisworkbook gooi krijg ik een #NAAM-fout als ik =RN() doe..
qu63maandag 26 november 2012 @ 16:44
Hmm, met deze code
1
2
3
Public Function RN(ByVal prop As Integer)
RN = ActiveWorkbook.BuiltinDocumentProperties(prop)
End Function
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 -O-

Iemand al lid van Excelforum.com? Daar schijnt wel een werkende functie te staan.. http://www.excelforum.com(...)erties-on-sheet.html
Deetchmaandag 26 november 2012 @ 16:44
Uit de help van de functie:

If Microsoft Excel doesn't define a value for one of the built-in document properties, reading the Value property for that document property causes an error.

Misschien kun je een on error resume next toevoegen want onderstaande macro werkt wel:
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
Deetchmaandag 26 november 2012 @ 16:45
optie 8 is je revision number, maar dan moet je dat wel aanzetten voor dit bestand.
qu63maandag 26 november 2012 @ 16:50
quote:
3s.gif 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.
Waar doe ik dat dan? Het is niet hetzelfde als 'wijzigingen bijhouden' iig..
Deetchmaandag 26 november 2012 @ 16:52
quote:
0s.gif 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 -O-

Iemand al lid van Excelforum.com? Daar schijnt wel een werkende functie te staan.. http://www.excelforum.com(...)erties-on-sheet.html
hmmz nope, wel van ozgrid, misschien staat ie ook daar?
Deetchmaandag 26 november 2012 @ 16:56
quote:
0s.gif Op maandag 26 november 2012 16:50 schreef qu63 het volgende:

[..]

Waar doe ik dat dan? Het is niet hetzelfde als 'wijzigingen bijhouden' iig..
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.
qu63maandag 26 november 2012 @ 16:58
quote:
3s.gif Op maandag 26 november 2012 16:52 schreef Deetch het volgende:

[..]

hmmz nope, wel van ozgrid, misschien staat ie ook daar?
Er staan wel werkende voorbeelden, althans volgens de reacties, maar hij blijft bij mij "0" als output geven..

Alternatieve opties zijn er zeker niet?
qu63maandag 26 november 2012 @ 17:05
quote:
3s.gif 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.
Heb de code uit dat document gecopy-pasted, maar helaas zonder resultaat..
qu63maandag 26 november 2012 @ 22:16
Workaround gevonden:
1
2
3
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Range("A8") = Range("A8") + 1
End Sub
A8 heb ik nu aangepast opgemaakt met "Versie: "#, nu doet t precies wat ik wilde :s)
Chandlerdinsdag 27 november 2012 @ 12:17
Weet iemand hoe ik een datum kan laten zien op de volgende manier

Za 6 juli

?
Deetchdinsdag 27 november 2012 @ 12:32
quote:
0s.gif 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

?
Custom format aanmaken "ddd dd mmm"

Dus rechtsklikken op de cel die je wilt aanpassen, "format cells" kiezen, Custom (aangepast) format aanmaken.
Chandlerdinsdag 27 november 2012 @ 12:41
Top! dat werkt inderdaad goed, is er ook nog een mogelijkheid om de v van vrijdag als hoofdletter te krijgen?
Deetchdinsdag 27 november 2012 @ 12:54
quote:
0s.gif 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?
bij mij doet ie dat automatisch (engelse versie)
Chandlerdinsdag 27 november 2012 @ 12:58
Hier niet :( NL versie :P
Deetchdinsdag 27 november 2012 @ 13:00
quote:
0s.gif 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 :s)
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.

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
Deetchdinsdag 27 november 2012 @ 13:01
quote:
0s.gif Op dinsdag 27 november 2012 12:58 schreef Chandler het volgende:
Hier niet :( NL versie :P
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?
Chandlerdinsdag 27 november 2012 @ 13:10
Nah, dan laat ik het lekker zo. Wel raar dat dat per land anders kan zijn ;)
qu63dinsdag 27 november 2012 @ 13:51
quote:
3s.gif 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?
Je kan het ook zonder VBA doen hoor, zelf een matrixje maken met dagnummers in kolom A en dagnamen in kolom B :)
qu63dinsdag 27 november 2012 @ 13:53
quote:
3s.gif 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 ]

Hmm, grote kans dat het inderdaad niet werkte omdat ie geen versienummers bij aan het houden was. Jouw variatie doet dat idd wel.

Ik ben de enige gebruiker van het document, dus beveiliging is niet nodig. Plus nu kan ik nog wat sjoemelen met de versienummers ;)
hendrik2009dinsdag 27 november 2012 @ 20:38
Dag met een hoofdletter:
=BEGINLETTERS(TEKST(C1;"ddd d mmm"))
Stickerswoensdag 28 november 2012 @ 15:53
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?
draadstaligwoensdag 28 november 2012 @ 15:59
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.
ralfiewoensdag 28 november 2012 @ 16:04
quote:
0s.gif 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 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.
ralfiewoensdag 28 november 2012 @ 16:20
quote:
0s.gif 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.
als je tabel er zo uitziet:

1
2
3
4
   A          B        C         D
1 Current  Pers1      Pers2      Pers3
2   5          4         6         8      
3   9         13         4         6
Kun je de volgende formule gebruiken:

1=INDEX($A$1:$D$1;1;VERGELIJKEN(MIN(A2:D2);A2:D2;0))
Waar A2:D2 het bereik van je rij is.
draadstaligwoensdag 28 november 2012 @ 16:35
quote:
0s.gif 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
`

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")

[ Bericht 5% gewijzigd door draadstalig op 28-11-2012 17:02:23 ]
Stickerswoensdag 28 november 2012 @ 17:01
quote:
0s.gif 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.
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
ralfiewoensdag 28 november 2012 @ 18:06
quote:
0s.gif 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
Dit gaat het makkelijkste als je twee voorwaardelijke opmaak regels gebruikt.

1) selecteer het hele gebied D6:H17
Nieuwe regel -> Celinhoud niet gelijk aan =C6
Nieuwe regel -> een formule gebruiken =C$5<>$E$1

2) ga nu onder voorwaardelijke opmaak, naar regels beheren.
Zorg (met de pijltjes) dat de tweede regel hierboven bovenaan staat in het lijstje, en selecteer de optie 'stoppen indien waar'.

Verklaring: zodra de naam boven de 'vorige' kolom niet overeenkomt met de eigenlijke vorige maand, treedt regel 1 in werking. Vanwege 'stoppen indien waar' zal regel 2 dus niet gaan lopen.

Edit: kan natuurlijk ook makkelijk in één regel:

=EN(D6<>C6;C$5=$E$1)

[ Bericht 1% gewijzigd door ralfie op 28-11-2012 18:16:17 ]
ralfiewoensdag 28 november 2012 @ 18:12
quote:
0s.gif 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")

Waarom moet er B uitkomen? Omdat A3=C2? Ik volg je logica niet.
elkravodonderdag 29 november 2012 @ 00:07
Even een combivraag qua Excel + Word...

Ik maak in Word een mail merge met hulp van een Excel bestand.
Dus adresgegevens, en andere briefitems zijn "velden" en deze velden komen overeen met kolommen in Excel.

Alleen.. als ik de mailmerge doet, wordt het 1 Word-bestand met alle brieven onder elkaar.

Kan ik ook op een of andere manier ervoor zorgen dat bij 10 brieven, er ook 10 verschillende bestandjes uitkomen... de brieven moeten nl. digitaal verstuurd worden via mail, en dan wel apart asl attachment., niet geprint.
Basp1donderdag 29 november 2012 @ 08:40
Even klagen over excel, die niet alle herstel bestanden heeft aangemaakt en ik dus mijn planning van 1 dag kwijt ben. Excel heeft alleen herstel bestanden van dinsdag maar niets van woensdag. Ja ja mijn eigen schuld ook moet ik die excelfile ook maar zelf wat vaker opslaan ipv mijn pc gewoon aan te laten staan en dan in de nacht een update te krijgen. :')
DaFandonderdag 29 november 2012 @ 10:06
Elkravo alleen met een macro... Google 'word merge save individual documents' - eerste hit.
Moet je section breaks aanbrengen tussen de documenten (dus aan het eind van je document eigenlijk).
marcb1974donderdag 29 november 2012 @ 10:28
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.

[ Bericht 3% gewijzigd door marcb1974 op 29-11-2012 11:08:30 ]
xyntarsusvrijdag 30 november 2012 @ 10:37
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
Deetchvrijdag 30 november 2012 @ 11:19
quote:
0s.gif 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
=A1*indirect("Z"&A1)
xyntarsusvrijdag 30 november 2012 @ 11:30
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
Deetchvrijdag 30 november 2012 @ 11:32
quote:
0s.gif 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.
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?
Deetchvrijdag 30 november 2012 @ 11:37
quote:
0s.gif 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
AHA! Dan heb je vert.zoeken nodig

Stel in A2 staat je lengte
Stel in kolom Y2:Y100 staan alle lengtes
Stel in kolom Z2:Z100 staan de bijbehorende prijzen

Voorwaarde: de lengte die je invoert moet ook in de kolom Y staan, anders krijg je een error.

In B2 zet je de volgende formule: =VERT.ZOEKEN(A2;Y2:Z5;2;0)
Dan krijg je de prijs die bij de lengte in A2 hoort. Daar kun je vervolgens mee doen wat je wilt.
xyntarsusvrijdag 30 november 2012 @ 11:46
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)
Deetchvrijdag 30 november 2012 @ 12:02
quote:
0s.gif 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)
ja hoor een pulldown menu is ook maar gewoon een getal
xyntarsusvrijdag 30 november 2012 @ 13:49
thx :) krijg het nog niet helemaal voor elkaar, maar ik ga ermee puzzelen ;)
Dale.zaterdag 1 december 2012 @ 17:38
Vraagje... Dit gaat eigenlijk over LibreOffice maar kan ook wel hier denk ik zo.

Ik heb een kolom met datum + tijd erin. Nu wil ik eigenlijk dat deze kolom enkel secondes aan geeft. En dat dit relatief wordt genomen van de waarde van de eerste rij.

Ik heb dus...

2012-11-23 08:23:45.123
2012-11-23 08:23:46.445
2012-11-23 08:23:47.895
2012-11-23 08:23:48.537
2012-11-23 08:23:49.798
2012-11-23 08:23:50.123

Wordt

0.000
1.322
2.772
3.414
4.675
5.000
etc...
Dale.zaterdag 1 december 2012 @ 18:26
Ik heb het al...

Je moet

1[ss].000
dan als format gebruiken en dan de eerste cel gewoon overal van aftrekken. Enigste wat ik nu moet zorgen is dat t voor de hele kolom geldt. Want nu trek ik de eerste rij gewoon naar beneden... maar dat duurt een beetje lang met zo'n 40k rijen.

-edit- blijkbaar moet je 2x klikken op het plusje.

[ Bericht 12% gewijzigd door Dale. op 01-12-2012 18:45:21 ]
VorteXxXzaterdag 1 december 2012 @ 23:20
het is toch gewoon min het eerste getal of denk ik nu gewoon te simpel?
marcb1974maandag 3 december 2012 @ 09:23
quote:
3s.gif 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?
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))}
Deetchmaandag 3 december 2012 @ 09:42
quote:
0s.gif 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))}
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.
marcb1974maandag 3 december 2012 @ 09:43
quote:
3s.gif 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.
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.
Deetchmaandag 3 december 2012 @ 09:49
quote:
0s.gif 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 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.
marcb1974maandag 3 december 2012 @ 10:11
quote:
3s.gif 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.
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.
Deetchmaandag 3 december 2012 @ 12:06
quote:
0s.gif 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.
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?
qu63maandag 3 december 2012 @ 12:31
Wat is er niet goed aan deze VBA-code?
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 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.

[ Bericht 0% gewijzigd door qu63 op 03-12-2012 12:52:07 ]
marcb1974maandag 3 december 2012 @ 12:46
quote:
3s.gif 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?
Ik ga het eens proberen :)
marcb1974maandag 3 december 2012 @ 14:02
Vrees dat het teveel is voor de pc en het netwerk. Blijf rare dingen zien. Nu doet 1 kolom het goed, de andere, met dezelfde formule, alleen een verwijzing naar een andere cel doet het maar voor de helft :')
Deetchmaandag 3 december 2012 @ 15:59
-dubbel-

[ Bericht 50% gewijzigd door Deetch op 03-12-2012 16:29:26 ]
Deetchmaandag 3 december 2012 @ 16:29
quote:
0s.gif 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.
syntax:

range("IN1") betekent een cel adres
range("IN1").value betekent de waarde van de cel met adres IN1

je code moet dus worden:
1Range("IN1").value = Range("IN1").value + 0.1
qu63maandag 3 december 2012 @ 17:49
quote:
3s.gif 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 ]

Dat stuk code werkt juist probleemloos op de manier zoals het in mijn post staat, het tweede deel doet t niet :{
DaFanmaandag 3 december 2012 @ 18:15
quote:
15s.gif 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 :{
Waar roep je de sub aan dan?
qu63maandag 3 december 2012 @ 18:56
quote:
7s.gif Op maandag 3 december 2012 18:15 schreef DaFan het volgende:

[..]

Waar roep je de sub aan dan?
Die staat in ThisWorkbook, niet onder modules.

Verder geen verwijzing naar die sub, dacht dat ie op dezelde manier zou werken als Workbook_BeforeSafe()
ralfiemaandag 3 december 2012 @ 19:24
quote:
0s.gif 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()
Nee, je moet in je beforesafe zoiets doen

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
DaFanmaandag 3 december 2012 @ 19:24
quote:
0s.gif 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()
Nee natuurlijk niet, het is nu gewoon een macro. Die moet je wel aanroepen.
qu63maandag 3 december 2012 @ 19:45
quote:
0s.gif Op maandag 3 december 2012 19:24 schreef ralfie het volgende:

[..]

Nee, je moet in je beforesafe zoiets doen
[ code verwijderd ]

Top, die werkt :)

Nu alleen er nog voor zorgen dat ie Planning Afstuderen.xlsm én Planning Afstuderen - DATUM - TIJD.xlsm opslaat.. Die laatste dus in een ander mapje..
qu63maandag 3 december 2012 @ 19:47
quote:
7s.gif 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.
Waarom werkte Private Sub Workbook_BeforeSave() dan wel :? Deze werd nergens aanders aangeroepen..
ralfiemaandag 3 december 2012 @ 19:51
quote:
0s.gif Op maandag 3 december 2012 19:47 schreef qu63 het volgende:

[..]

Waarom werkte Private Sub Workbook_BeforeSave() dan wel :? Deze werd nergens aanders aangeroepen..
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.
qu63maandag 3 december 2012 @ 19:58
quote:
0s.gif 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.
Ik vond die safe_file() code ergens en ging er van uit dat die op dezelfde manier werkte als Workbook_BeforeSafe() :)

My bad :)
ralfiemaandag 3 december 2012 @ 20:00
quote:
0s.gif 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 :)
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.
DaFanmaandag 3 december 2012 @ 20:18
quote:
0s.gif 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 toch :N
qu63maandag 3 december 2012 @ 20:20
quote:
7s.gif Op maandag 3 december 2012 20:18 schreef DaFan het volgende:

[..]

Sven toch :N
Sorry... Lui he ;)

Heb er nu onderstaande code van gemaakt:
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
Niet fool-proof, maar doet wel wat ie moet doen :)

Gewoon jat/knip/plakwerk, maar ik snap de code wel :)
marcb1974woensdag 5 december 2012 @ 14:22
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?
Deetchwoensdag 5 december 2012 @ 14:30
quote:
0s.gif 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?
Doing-it-wrong.jpg

1=ALS(LENGTE(A1)>4;"meer dan vier tekens";"vier tekens of minder")
Eis is dat de waarde in A1 een tekst is en niet een getal.
marcb1974woensdag 5 december 2012 @ 14:39
Dat gaat dus mis. Met =lengte(cel) krijg ik keurig het aantal tekens in de cel. Zodra ik jouw formule gebruik is het antwoord altijd meer dan vier tekens, ongeacht het aantal tekens in in de cel.


Lama, mijn haakje stond verkeerd :')
draadstaligdonderdag 6 december 2012 @ 10:49
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?
qu63donderdag 6 december 2012 @ 11:19
quote:
0s.gif 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?
In C1 de volgende formule: =ALS(B1<>0;1;"") en dan doortrekken naar beneden.
Op deze manier komt er een '1' te staan in kolom C als kolom B geen 0 is.
Onderaan kan je dan kolom C optellen met som() of kolom B optellen met sommen.als()
Deetchdonderdag 6 december 2012 @ 15:52
quote:
0s.gif 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: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.
draadstaligdonderdag 6 december 2012 @ 18:21
W
quote:
3s.gif 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.
Werkt! Thnx
draadstaligdonderdag 6 december 2012 @ 18:24
En weer een nieuwe!!

Cel 1 (huidig):
35¤

Cel 2 (nieuw):
47¤

Cel 3(alternatief):


Nu wil ik indien cel 1 en 2 voorkomen de laagste hebben ten opzichte van de 3 cellen (1 komt altijd voor). Maar als cel 3 bv (zoals hierboven) een 0 bevat pakt hij de deze als laagste, terwijl hij dan eigenlijk naar 1 moet schieten. Hoe regel ik deze?

ik zat al met =als en min formule erin, maar deze pakt hij toch weer op 0.

Cel 2 en 3 bevatten dus gegevens. Indien één van deze lager is dan 1 moet hij die cel geven (2 of 3) geven. Als ze hoger zijn moet hij cel 1 geven en als er een 0 in voorkomt moet hij die overslaan.?

laat de grijze massa maar kraken :)
ralfiedonderdag 6 december 2012 @ 18:43
als A1:C1 je cellen zijn
1=MIN(ALS(A1:C1>0;A1:C1))
enteren met ctr+shift+enter
draadstaligdonderdag 6 december 2012 @ 19:16
quote:
0s.gif Op donderdag 6 december 2012 18:43 schreef ralfie het volgende:
als A1:C1 je cellen zijn
[ code verwijderd ]

enteren met ctr+shift+enter
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.
DaFandonderdag 6 december 2012 @ 19:21
quote:
0s.gif 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.
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.
draadstaligdonderdag 6 december 2012 @ 19:45
Excuus
quote:
7s.gif 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.
Sorry ik lees het net terug en ben het veels te moeilijk aan het maken.

Ik heb 3 cellen die ik met elkaar wil vergelijken en daarbij de laagste pak dus bv
cel1: 4
cel2: 0
cel3: 5

Uitkomstis 4 (cel1). probleem is alleen dat alle sommen niet naast elkaar staan (zoals hierboven) en dus het stukje a1:c1 lukt niet.

Excuus voor de verwarrende taal
DaFandonderdag 6 december 2012 @ 19:57
De formule van Ralfie klopt dan wel gewoon hoor, denk eraan dat je bevestigt met Ctrl-Shift-Enter.
einzeinzdonderdag 6 december 2012 @ 23:34
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.
qu63vrijdag 7 december 2012 @ 00:13
quote:
0s.gif 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 is leeftijden (horizontale as), de andere 2 zijn absolute en relatieve aantallen?
einzeinzvrijdag 7 december 2012 @ 00:24
quote:
0s.gif 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?
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.
qu63vrijdag 7 december 2012 @ 00:48
quote:
0s.gif 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.
Even snel in elkaar gezet: klik
einzeinzvrijdag 7 december 2012 @ 00:55
Ik zat persoonlijk meer te denken aan zoiets.

chart?cht=bhs&chs=345x240&chbh=24%2C6&chco=d41818|d92f2f|d00000|dd4747|e15f5f|e67676|ea8e8e&chxt=x%2Cy&chxl=0%3A|0|10|20|30|40|50|1%3A|%3E50|45-50|40-45|35-40|30-35|25-30|%3C25&chxs=0%2C000000%2C12%2C0%2Clt|1%2C000000%2C12%2C1%2Clt&chds=0%2C50&chd=t%3A17%2C45%2C49%2C34%2C35%2C30%2C48

In een staafdiagram dus
qu63vrijdag 7 december 2012 @ 01:09
quote:
0s.gif Op vrijdag 7 december 2012 00:55 schreef einzeinz het volgende:
Ik zat persoonlijk meer te denken aan zoiets.

[ afbeelding ]

In een staafdiagram dus
Je wil de kleur van de staafdiagram af laten hangen van het percentage?
einzeinzvrijdag 7 december 2012 @ 01:20
Nee, ik wil gewoon rangschikken per leeftijd zoals in het voorbeeld.
Eigenlijk gewoon hetzelfde resultaat bekomen als het voorbeeld, maar bij mij verspringt het telkens.
Deetchvrijdag 7 december 2012 @ 08:44
Bij mij gaat het gewoon goed. Gewoon een bar-chart maken zodat je liggende balken krijgt.
Vervolgens de Y-as opmaken in omgekeerde volgorde (reverse order)
draadstaligvrijdag 7 december 2012 @ 10:03
quote:
7s.gif 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.
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?
Deetchvrijdag 7 december 2012 @ 11:33
quote:
0s.gif 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?
Dat lijkt niet te kunnen, ook niet als je van de cellen een named range maakt.

Hieronder een functie die hetzelfde doet maar dan zonder de ctrl+shift+enter.
=SMALL(A1:C1,COUNTIF(A1:C1,0)+1)
=KLEINSTE(A1:c1;AANTAL.ALS(A1:c1;0)+1)
Landgelddinsdag 11 december 2012 @ 19:31
Ik heb een Excel vraag met betrekking tot Voorwaardelijke opmaak
Ik wil dat de cel automatisch een waarde ingeeft (1 - 2 - 3) als een andere waarde wordt ingegeven.

Voorbeeld:

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.

Met kleuren weet ik hoe ik dit moet doen, met cijfers kom ik er niet uit. Weet ongeveer waar ik moet zoeken maar weet niet hoe ik dit kan ingeven. Met kleuren lukt het wel. Heb Excel 2010.
DaFandinsdag 11 december 2012 @ 19:39
Dat is niet voorwaardelijke opmaak.
Kijk naar de ALS() functie.
Landgelddinsdag 11 december 2012 @ 21:00
quote:
7s.gif Op dinsdag 11 december 2012 19:39 schreef DaFan het volgende:
Dat is niet voorwaardelijke opmaak.
Kijk naar de ALS() functie.
Oke, eens kijken. Kan ik die raadplegen via de functie module?
DaFandinsdag 11 december 2012 @ 23:10
quote:
0s.gif Op dinsdag 11 december 2012 21:00 schreef Landgeld het volgende:

[..]

Oke, eens kijken. Kan ik die raadplegen via de functie module?
Jawel. En via de help. En anders hier maar kan krijg je het voorgekauwd en leer je niks ;)
DarkSaviorwoensdag 12 december 2012 @ 12:25
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?
qu63woensdag 12 december 2012 @ 12:41
quote:
0s.gif 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?
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.
DarkSaviorwoensdag 12 december 2012 @ 13:02
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?
qu63woensdag 12 december 2012 @ 13:09
quote:
0s.gif 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?
Opslaan als?
DarkSaviorwoensdag 12 december 2012 @ 13:11
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.
qu63woensdag 12 december 2012 @ 13:19
quote:
0s.gif 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.
Ja, .csv's kunnen niet omgaan met functies, die hebben alleen data.
Deetchwoensdag 12 december 2012 @ 13:59
quote:
0s.gif 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?
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.
In andere gevallen moet je idd een macro opnemen omdat je zelf het lijstscheidingteken dan moet aangeven.
Deetchwoensdag 12 december 2012 @ 14:00
quote:
0s.gif Op woensdag 12 december 2012 13:19 schreef qu63 het volgende:

[..]

Ja, .csv's kunnen niet omgaan met functies, die hebben alleen data.
en ook maar 1 tabblad
Twentsche_Roswoensdag 12 december 2012 @ 15:43
Antwoord aan Landgeld…
(mijn quotefunctie werkt niet)

Ik heb een Excel vraag met betrekking tot Voorwaardelijke opmaak
Ik wil dat de cel automatisch een waarde ingeeft (1 - 2 - 3) als een andere waarde wordt ingegeven.

Voorbeeld:

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.

Met kleuren weet ik hoe ik dit moet doen, met cijfers kom ik er niet uit. Weet ongeveer waar ik moet zoeken maar weet niet hoe ik dit kan ingeven. Met kleuren lukt het wel. Heb Excel 2010.

Hier het antwoord:

Stel je 1e getal zit in vak a1
Zet dan in vak b1
=AFRONDEN.NAAR.BOVEN(+A1/10;0)
elkravodonderdag 13 december 2012 @ 18:42
Ik hoop dat iemand mij kan helpen dit makkelijk op te lossen - het zijn eigenlijk 2 "problemen".

Ik heb een map met allemaal dezelfde soort Excel bestanden - een stuk of 160.

Alle bestanden hebben de volgende bestandsnaam:

Boodschappen 2011 winkel 001.xls
Boodschappen 2011 winkel 002.xls
Boodschappen 2011 winkel 008.xls
etc. etc.

1) Bij alle bestandsnamen zou 2011 willen vervangen door 2012. Hoe kan ik dit makkelijk doen? Ik kan niets anders bedenken dan alles handmatig hernoemen, kan dit simpeler?

2011+spatie verwijderen als optie mag ook als dat makkelijker is.

2) Moeilijker probleem.
- van al deze excelbestanden is het eerste blad beveiligd (alleen bepaalde cellen kunnen ingevuld worden daardoor). Op dit eerste blad staat in een door beveiliging geblokkeerde cel de datum 31-12-2011. Deze moet ik dus in alle 160 excel sheets vervangen worden door 31-12-2012.

Per excelsheet moet ik dan deze openen - sheet unprotecten - wachtwoord intypen - datum wijzigen - sheet protecten - wachtwoord ingeven - wachtwoord nog een keer ingeven - opslaan.

Ik heb een macro geprobeerd via een personal.xls - maar de macro onthoudt denk ik geen wachtwoorden; hij stopt bij de eerst wachtwoord opgave. Het wachtwoord is trouwens voor alle sheets hetzelfde.

Kan ik deze actie efficienter doen, zonder dit 160 keer - blad voor blad te moeten doen?

Alvast bedankt voor de tips.
Landgelddonderdag 13 december 2012 @ 21:17
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.
Janneke141donderdag 13 december 2012 @ 21:22
quote:
0s.gif 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.
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?
jakeesvrijdag 14 december 2012 @ 01:21
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!
jakeesvrijdag 14 december 2012 @ 01:46
quote:
0s.gif 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!
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!
Deetchvrijdag 14 december 2012 @ 08:17
quote:
0s.gif 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?
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.
Sowieso moet degene die ooit heeft bedacht dat de functies vertaald moesten worden een nekschot krijgen.

Kleine extra uitleg over IF
=IF(A1<10,1) geeft een 1 als de waarde kleiner dan 10 is. Als de waarde groter is (of gelijk aan) 10 dan krijg je FALSE te zien. Als je achter de 1 een komma zet kun je daar een uitdrukking neer zetten die getoond moet worden als A1 groter is dan 10.
=IF(A1<10,1,"groter dan 10")

Je kunt meerdere IFs ook combineren door eerste te checken op 1 voorwaarde en als die voorwaarde niet waar is kun je op de plek van de "groter dan 10" hierboven een tweede IF neerzetten, dit kan tot 7 niveaus.

Met het < of > teken sla je de grenswaarden nog over. <10 betekent exclusief 10. Dus je moet de grenzen ook ergens meenemen.
Ik ga er even vanuit dat er een 1 moet staan als de waarde 10 of kleiner is en een 2 als de waarde 20 of kleiner is maar groter dan 10.

Samenvattend zou dit de formule moeten zijn:
=IF(A1<=10,1,IF(A1<=20,2,3))
• als A1 kleiner of gelijk aan 10 dan 1
• als A1 niet kleiner of gelijk aan 10 dan check of A1 kleiner of gelijk aan 20 en dan 2
• alle andere gevallen 3
Deetchvrijdag 14 december 2012 @ 08:58
quote:
0s.gif 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!
Je kunt een eigen functie maken. Kopieer en plak onder staande code in een visual basic module van je spreadsheet.
Vervolgens kun je de formule gebruiken net als een normale formule.
=ConcatIf(A1,B1:B20,-1)

Deze kijkt of A1 voorkomt in de cel links (daar is de -1) voor van B1:B20 en als dat zo is wordt de tekst erachtergevoegd (met een , er tussen)

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
qu63zaterdag 15 december 2012 @ 01:18
Wat is nou de makkelijkste en snelste manier om cellen op te schonen van rare tekens en spaties voor en na? Code die ik nu heb loopt al een half uur over 2 kolommen met 1986 regels..

Enige eis is dat de formules die ik nu al heb blijven staan, dat was ik bij m'n eerste code even vergeten.. *slik*
snabbizaterdag 15 december 2012 @ 01:42
1) zorg dat de calculatie uit staat wanneer je je cellen muteert
2) gebruik een reguliere expressie om je replace uit te voeren
qu63zaterdag 15 december 2012 @ 01:48
quote:
0s.gif 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
calculatie was ik vergeten ja..

Ik had nu deze code draaien:
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

-edit-

Onderstaande code deed de hele sheet (50 kolommen van 1986 rijden) binnen 1 minuut:
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


[ Bericht 29% gewijzigd door qu63 op 15-12-2012 02:07:03 ]
snabbizaterdag 15 december 2012 @ 23:42
Gebruik For Each R In Selection.SpecialCells(xlTextValues)
Hiermee selecteer je per definitie alleen de cellen met een waarde/zonder formule en hoeft je code dus niet de if te bevatten.
Deetchmaandag 17 december 2012 @ 08:50
Handig zeg die HasFormula, gaat in het "lijstje"
qu63maandag 17 december 2012 @ 12:09
quote:
3s.gif Op maandag 17 december 2012 08:50 schreef Deetch het volgende:
Handig zeg die HasFormula, gaat in het "lijstje"
Die van snabbi is alleen handiger, scheelt weer een if-loop :)
qu63maandag 17 december 2012 @ 13:59
Hmm.. Het is niet mogelijk om met vergelijken() de 2e, 3e, etc hit te laten zien, toch? Iemand een idee hoe ik dat wel kan doen? De lijst waarin gezocht moet worden kan niet aangepast worden, het rijnummer wat er uit komt moet namelijk gebruikt worden om gegevens uit een andere kolom op te zoeken..

-edit-

Heb al iets anders gevonden:
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))
En bevestigen met ctrl+shift+enter.

Deze geeft nu het rijnummer weer van het bedrijf in C2 (en verder) uit het andere bestand :)

[ Bericht 55% gewijzigd door qu63 op 17-12-2012 14:42:45 ]
Deetchmaandag 17 december 2012 @ 14:43
Met een hulpkolom helmaal vooraan (ivm VLOOKUP) zou je een heel eind moeten komen. Hierin zet je de volgende formule:

=(B1)&" #" &COUNTIF($B$1:B1,B1)

De tweede keer dat de tekst "banaan" voorkomt in kolom B komt er in de hulpkolom "banaan #2" te staan.

Op die manier zou je ook de vijfde keer banaan kunnen door een vlookup te doen in de hulp kolom

In D2 zet je de zoeknaam
In D3 de hoeveelste je wilt vinden (1,2 3, etc

Om dan de corresponderende waarde uit kolom C weer te geven:
In D4:=vlookup(D2 & " #" & D3,a1:z100,3)
Deetchmaandag 17 december 2012 @ 14:44
en vol, next

DIG / [Excel] Het grote Excel vragen topic #35