Ga naar inhoud

alpha

Lid
  • Items

    1.125
  • Registratiedatum

  • Laatst bezocht

Alles dat geplaatst werd door alpha

  1. Je kunt niet zomaar een code (hier vandaan gehaald zie ik: klik) op elk willekeurig blad van een Excelbestand toepassen. Veel hangt af van hoe jouw blad er uitziet. Als steeds na een bepaalde rij naar een volgend blad wordt overgeschakeld, moet je bepalen hoeveel rijen daarvoor naar de volgende pagina moeten worden doorgeschoven en dat hangt weer af van hoeveel rijen met gegevens bij elkaar moeten worden gehouden en hoe die rijen (al dan niet samengevoegd er uitzien). Zonder inzage in het bestand is daar weinig van te zeggen. En mét inzage moet ook nog bekend zijn wat de algemene indeling van je blad(eren) is, want bij de bepaling van wanneer de gegevens te splitsen, moet je je ergens op kunnen baseren.
  2. @Ro_mien, je zult wel begrijpen dat als drie personen met eenzelfde bestand moeten kunnen werken, dat het dan op een plaats moet staan die voor al jullie drieën toegankelijk is. Als dat niet het bedrijfsnetwerk is of kan zijn, dan moet je het ergens op internet plaatsen. Mogelijkheden genoeg: Dropbox, OneDrive, en GoogleDrive zijn heel bekende. Je kunt van die plaatsen het bewuste bestand binnenhalen op je computer, er aan werken, en het daarna terugplaatsen. Jouw collega's kunnen hetzelfde doen.
  3. Als jij er tevreden mee bent, dan is dat natuurlijk prima, maar ik zie dat je de twee aanwijzingen die ik in mijn vorig bericht gaf niet ter harte hebt genomen. Dat is je goed recht natuurlijk: vrijheid blijheid. Er staan wederom overtollige zaken in je formule en een aantal dingen kunnen korter. Ik geef twee voorbeelden: 1. Dit gedeelte: =ALS(EN(AANTALLEN.ALS(T2;"0,25";V2;"0,25")>1;EN(N2>=50;N2<145));"b";"") kun je volledig verwijderen, dat zal geen enkel effect op de uitkomst hebben. Waarom? Omdat =AANTALLEN.ALS(T2;"0,25";V2;"0,25") NOOIT groter dan 1 kan worden. Test het maar eens door om het even welke getallen in T2 en V2 in te vullen. Advies: bestudeer goed de functie AANTALLEN.ALS, die wordt in de helpfile van Excel prima uitgelegd. 2. Dit gedeelte : =ALS(EN(AANTAL.ALS(S2:V2;">=0,5")>1;OF(EN(T2>=0,5);EN(V2>=0,5));EN(N2>=55;N2<=74));"a";"") kun je inkorten tot =ALS(EN(AANTAL.ALS(S2:V2;">=0,5")>1;N2>=55;N2<=74);"a";"") enz, enz.... Dat hangt ervan af hoe je het gebruikt. In bv. =A1>1 kijk je of de cel-WAARDE van A1 groter is dan 1, dat kan waar of onwaar zijn. In =AANTAL.ALS(A1:D1;">1") kijk je naar het aantal cellen in A1:D1 dat groter is dan 1. Het heeft natuurlijk geen zin om aantal.als of aantallen.als op 1 cel toe te passen, want wat er dan ook in die ene cel staat, het aantal kan nooit groter zijn dan 1.
  4. Je mag in de bovenste rij (met de namen van de maanden) die cellen wel samengevoegd laten, maar dan moet je ervoor zorgen dat je bij de sortering (en de selectie voorafgaand aan de sortering) die bovenste rij in de selectie/sortering niet meeneemt.
  5. Werkwijze als je een oplossing met vba wil. Voor de te kiezen week heb je C2 gekozen, wis dus op dat blad alles wat onder rij 2 staat. Ervan uitgaande dat alle bladen na het blad "Totaal" (in jouw voorbeeld de bladen X, Y, en Z) dezelfde indeling hebben: 1. Bepaal in blad "X" in welke kolom van rij 1 het in het blad "Totaal" gekozen weeknummer voorkomt. Het is die kolom waaruit je in elk blad de gegevens wil ophalen. Dat kolomnummer bepalen kan met de functie Match . 2. Met de weer te geven data wil je in het blad "Totaal" starten in A5. Leg dat rij- en kolomnummer vast en maak het variabel (bv. r = 5, k = 1), zodat je die kunt ophogen (want rechts van- en onder A5 moeten ook nog gegevens komen). 3. In de bladen X, Y, en Z beginnen de gegevens in A3, leg ook dat rijnummer vast (bv. via c = 3), om te weten vanaf welke rij moet worden gestart met het ophalen van gegevens. Als kolomnummer kun je dezelfde k gebruiken als onder punt 2. 4. Leg het aantal rijen vast dat op elk blad moet worden doorlopen. In jouw voorbeeld zijn er dat 4 (Arnhem t/m Amsterdam), maar in werkelijkheid kunner er dat meer of minder zijn. Dat aantal is het rijnummer van de laatste rij met gegevens in blad "X" min 2 (want de gegevens beginnen in rij 3). 5. Doorloop de rijen en kolommen met gevens op blad X en breng die over naar het blad "Totaal". Dat kan bv. met een For-Nextlus, een Do While- of Do Until-opdracht. 6. Doe hetzelfde voor de andere bladen (in jouw voorbeeld Y en Z), daarbij rekening houdend met het feit dat je de plaatsnamen al onder punt 4 hebt gekopieerd, dus die moet je nu niet meer meenemen. Meerder bladen doorlopen (beginnend met bladnr. 2) kan met gelijksoortige opdrachten als vermeld onder punt 5. Hiermee zou het moeten lukken.
  6. Uitspraken doen op basis van een plaatje als het om Excel gaat, is lastig; je had beter het Excelbestand geplaatst. Je schrijft dat je voor het sorteren ALLES selecteert, welnu dat is waarschijnlijk de oorzaak dat je niet het gewenste resultaat krijgt. In de bovenste rij (waar de namen van de maanden in staan) heb je cellen samengevoegd, dat zorgt ervoor dat Excel niet goed kan sorteren als je die cellen in de sortering meeneemt. Verder lijkt het dat je ook A1 en A2 hebt samengevoegd. Excel sorteert per kolom of per rij, niet per twee kolommen of per twee rijen. Wat je moet doen is: - Als A1 en A2 zijn samengevoegd, die samenvoeging opheffen. - Om te sorteren de tabel selecteren zonder de eerste rij of zonder de eerste twee rijen. Doe je het inclusief rij 2, dan moet je bij het sorteren aanvinken dat de tabel kopteksten bevat. Selecteer je rij 2 niet, dan laat je dat vinkje achterwege.
  7. Waar de dollartekens moeten komen hangt af van; - of je de formule naar beneden (in dezelfde kolom) wil kopiëren; - of in dezelfde rij (naar links of rechts). Als het naar beneden is in dezelfde KOLOM: =countif(c$2:c$1700;">="&h$1)-countif(c$2:c$1700;">="&h$2) Je MAG dan ook voor de C's een dollarteken plaatsen, maar dat is niet nodig, vermits je in dezelfde kolom blijft. En je begrijpt natuurlijk wel dat als je de formule in dezelfde RIJ naar links of rechts kopieert, dat je dan de kolom onveranderlijk moet maken, dus dan wordt het: =countif($c2:$c1700;">="&$h1)-countif($c2:$c1700;">="&$h2) Ook hier geldt dat je dan ook dollartekens voor het getal 2 mag plaatsen, maar noodzakelijk is dat niet omdat je in dezelfde rij blijft en het rijnummer (2) dus niet verandert.
  8. Het ging om dat "en"-teken & Zonder dat 'en'-teken kan Excel niet "beoordelen" wat er precies bij elkaar hoort. Die functie kun je in alle Excelversies gebruiken.
  9. Je hebt een wat ongelukkig voorbeeld gekozen, want in kolom C staat geen enkele datum die na de datum in H2 komt. Niettemin kun je dan ook deze formule gebruiken: =aantal.als(c2:c1700;">="&h1)-aantal.als(c2:c1700;">="&h2) of in het Engels: =countif(c2:c1700;">="&h1)-countif(c2:c1700;">="&h2) Als je de formule naar onderliggende cellen wil kopiëren, vergeet dan niet dollartekens te plaatsen.
  10. Jouw wijzigen zijn niet allemaal juist. Dit gedeelte: ALS(EN(AANTALLEN.ALS(U2;"0,25";W2;"0,25")>1;EN(O2>=50;O2<145));"2" heeft geen enkel nut en kun je verwijderen. AANTALLEN.ALS(U2;"0,25";W2;"0,25") kan nl. nooit groter worden dan 1, dus wat er na die 1 staat, daar wordt al niet meer naar gekeken. Je moet aantallen.als (en aantal.als) ook niet voor 1 cel gebruiken. Verder kun je best alles wat hetzelfde resultaat (getal 1 t/m 5) moet opleveren in 1 opdracht onderbrengen, dan wordt je formule ook niet zo lang. Ook andere dingen kunnen nog wel korter denk ik, maar daarvoor zou ik een preciese omschrijving van het gewenste resultaat in gewoon Nederlands moeten zien (zoals in je eerste bericht).
  11. alpha

    Sommen.Als

    Vertrouwelijke gegevens kun je vervangen door andere. Is de verwerking niet erg traag met zo'n lange formule?
  12. alpha

    Sommen.Als

    Over zo'n lange formule durf ik geen uitspraak te doen zonder het betreffende bestand in te zien. En mét bestand misschien ook niet, dat kan ik vooraf niet zeggen.
  13. alpha

    Sommen.Als

    Het kan ook in 1 formule. Als 2014 in A2 staat en 2015 in A3. Als in B2 en B3 de bijbehorende aaltallen staan. Als in B4 staat (naar keuze): 2014, 2015, of All . Typ dan in de cel waarin je het resultaat wil zien: =ALS(B4="all";SOM(B2:B3);SOMMEN.ALS(B2:B3;A2:A3;B4)) Als je de bereiken namen hebt gegeven, kun je de bereiken evt. vervangen door die namen, aldus: =ALS(B4="all";SOM(Tabel2[Orders]);SOMMEN.ALS(Tabel2[Orders];Tabel2[Jaar];B4))
  14. Ja, dat bedoelde ik, ik had het woord 'niet' vergeten. Dank voor de correctie, en dat late melden: ach, zo erg is het allemaal niet.
  15. Jammer dat je dat eerder hebt laten weten, dan had ik me de moeite kunen besparen.... Natuurlijk kan die grafiek ook zonder hulpcellen, maar ik gebruikte ze juist omdat jijzelf die in je voorbeeldbestand geplaatst had.
  16. het eenvoudigst is om handmatig in de grafiek twee lijnen toe te voegen, dan moet je verder alleen maar waarden voor de boven- en ondergrens invoeren. Wat je in de userform met 'eenheid' wil aanvangen is me niet duidelijk, dus daar heb ik niets mee gedaan. Zie verder de bijlage. PC-Help elbartje.xlsm
  17. @mista_V, Ik heb jouw probleem zorgvuldig bekeken en gezien dat zo'n macro wel te maken is, maar dat zou wel veel tijd kosten. Moeilijke opdrachten zijn er evenwel niet voor nodig, maar het is wel een zeer nauwkeurig werk (dat is programmeren trouwens altijd). Normaliter is het doel van een forum om hulp te bieden aan mensen die problemen ondervinden bij wat ze aan het maken zijn. Jij (en jij niet alleen) vraagt om een complete oplossing 'from scratch'. Dat vind ik weinig zinvol, want daar leer je niks van. Programmeren leer je door het zelf te doen, niet door klakkeloos oplossingen van anderen over te nemen. Wat heb ikzelf er trouwens aan om er enkele dagen tijd aan te besteden? Ik heb ook andere dingen te doen en met dit mooie weer breng ik in het weekend mijn tijd ook liever buiten door. Dit is niet negatief bedoeld t.o.v. jouw persoon, maar een aansporing om zelf aan het werk te gaan. Het staat je natuurlijk vrij om dat advies al dan niet ter harte te nemen. In je voorbeeld van wat het resultaat zou moeten zijn van een oplossing (de kolommen F t/m H in blad2) verbaast het mij wel dat je van artikelen die uit meerdere componenten bestaan, alleen de componenten als resultaat wil. In die lijst is dus niet meer te zien bij welk (hoofd)artikel die componenten behoren. Waarom je dat zo wil weet ik niet, maar ik vind het vreemd.
  18. Typ in G2 en kopieer naar beneden: =ALS(EN(EN(A2>=55;A2<75);EN(OF(B2=0;EN(B2>=55;B2<75));EN(AANTALLEN.ALS(C2:F2;">0,25";C2:F2;"<0,5")>1;OF(EN(C2>0,25;C2<0,5);EN(D2>0,25;D2<0,5)))));"Ok";ALS(EN(EN(A2>=55;A2<75);EN(OF(B2=0;EN(B2>=55;B2<75));EN(AANTALLEN.ALS(C2:F2;">0,5")>1;OF(EN(C2>0,5);EN(D2>0,5)))));"Prima";ALS(EN(EN(A2>=75;A2<90);EN(OF(B2=0;EN(B2>=75;B2<90));EN(AANTALLEN.ALS(C2:F2;">0,25";C2:F2;"<0,5")>1;OF(EN(C2>0,25;C2<0,5);EN(D2>0,25;D2<0,5)))));"Uitstekend";ALS(EN(EN(A2>=75;A2<90);EN(OF(B2=0;EN(B2>=75;B2<90));EN(AANTALLEN.ALS(C2:F2;">0,5")>1;OF(EN(C2>0,5);EN(D2>0,5)))));"Enorm";ALS(EN(EN(A2>=90;A2<=120);EN(OF(B2=0;EN(B2>=90;B2<=120));EN(AANTALLEN.ALS(C2:F2;">0,25";C2:F2;"<0,5")>1;OF(EN(C2>0,25;C2<0,5);EN(D2>0,25;D2<0,5)))));"Grandioos";"Niet Ok")))))
  19. Je bestand en uitleg is erg onduidelijk ! Enerzijds gebruik je de naam artikel, anderzijds component. Wees duidelijk en gebruik geen twee verschillende woorden voor dezelfde zaken. In rij 2 schrijf je dat artikel 223344 uit 3 artikelen bestaat en in kolom 2 schrijf je bij dat artikel dat het er 4 zijn. Wat is het? In kolom E staan artikels en componenten door elkaar. Niet duidelijk is waarom en waarom die volgorde.
  20. Gelukkig dat je probleem is opgelost. En goed dat je dat meldt; voor lezers/hulpverleners van een forum altijd interessant om te weten.
  21. Hier kan ik je niet mee verder helpen, mogelijk anderen wel. Die code is zonder de bijbehorende bestanden niet of nauwelijks te testen en er een slag naar slaan, dat wil ik niet.
  22. Waar die nummering voor staat, dat had ik wel begrepen. Ik wilde er alleen mee zeggen dat als je gaat programmeren (hier in vba, maar het geldt voor om het even welke taal), dat je niet twee keer dezelfde naam (Nr.) moet gebruiken voor verschillende gegevens. Wat mijn tweede opmerking betreft: in jouw bladen 1 en 2 staan 24 cellen om ingevuld te worden, terwijl er in het blad Leads maar 20 staan (kolommen A t/m T). Als je dat zo wil dan is dat prima, maar het moet vooraf wel bekend zijn. Verder is het mij niet duidelijk of je met het maken van twee dezelfde bladen (1 en 2) wil aangeven dat voor elke rij in het blad "Leads" twee (dezelfde) bladen moeten worden aangemaakt of per rij slechts 1. In mijn bericht hierboven heb ik willen aangeven hoe een mogelijke oplossing aangepakt kan worden, maar daar ben ik kennelijk niet goed in geslaagd. Ik zit niet om werk verlegen, maar ik wil je eventueel wel verder helpen. Als je dat wil, stuur dan een privébericht.
  23. De macro staat toch slechts in 1 bestand ? Dan kan hij niet opgestart worden vanuit steeds wisselende bestanden. Zonder de volledige macro te zien en het bestand waarin hij staat, kan ik geen antwoord geven op je vraag. Eén opmerking nog: om via vba te kopiëren of te plakken, is het niet nodig om cellen eerst te selecteren.
  24. Probeer onderstaande code. De volgorde van de laatste twee regels lijkt vreemd, maar werkt vaak het beste. Set objExcel = CreateObject("Excel.Application") Set objWorkbook = objExcel.Workbooks.Open("D:\testfile.xlsx") objWorkbook.Activate ' (... andere code om paar velden te updaten, "Calculate" te doen,...) objExcel.ActiveWorkbook.Save objExcel.ActiveWorkbook.Close Application.Quit ThisWorkbook.Saved = True
×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.