Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Anders (software)

MSExcel, berekeningen van een bepaalde range

pannemanski
13 antwoorden
  • In MSExcel weet ik hoe ik i.p.v. een geheel workbook alleen een sheet kan berekenen, dan toets ik SHIFT-F9. Op deze manier bereken ik dus alleen de sheet.
    Bestaat er ook een mogelijkheid om alleen een bepaalde range van cellen te berekenen ? (en de rest niet)
  • Als je de range selecteerd kan je rechtsonderin een voorbeeld zien van de sum. Je kan dit ook aanpassen door met de linkermuisknop rechtsonderin te klikken (Als je Numlock aan staat zie je NUM vermeldt staan rechtsonderin, links daarvan).
  • Dat is me duidelijk, maar ik bedoel …

    Als ik F9 druk, wordt het gehele workbook opnieuw herberekend
    Als ik SHIFT-F9 druk wordt de geselecteerde (op dat moment zichtbare) worksheet herberekend, en niet het gehele workbook

    Nu selecteer ik een range van cellen (bijv. A1:C99), kan ik dan ook alleen die cellen uit laten rekenen ?

    Groet, Pannemanski
  • [quote:e1d2ef738c="pannemanski"]Nu selecteer ik een range van cellen (bijv. A1:C99), kan ik dan ook alleen die cellen uit laten rekenen ?[/quote:e1d2ef738c]
    Ja, door nadat je de berekening op handmatig hebt gezet, een macro uit te voeren.

    Voor een willekeurige selectie (dus eerst een bereik selecteren):
    Sub macro1()
    Selection.Calculate
    End Sub

    Voor een bepaalde selectie (dus zonder te selecteren):
    Sub macro2()
    Range("A1:C99").Calculate
    End Sub
  • Ja,
    Dat moet me gaan lukken, vervolgens tracht ik een sneltoets aan die macro te koppelen.

    Bij voorbaat dank, Pannemanski
  • [quote:cfa4fa0eed="pannemanski"]vervolgens tracht ik een sneltoets aan die macro te koppelen.[/quote:cfa4fa0eed]
    Of een knop in het menu plaatsen en daar die macro aan toewijzen.
    Je hoeft dan slechts 1 x op die knop te klikken om de macro uit te voeren.
    Als je daar nog hulp bij nodig hebt, meld het maar!
  • Eerst zelf proberen. Overigens, met de macro gaat de berekning niet altijd goed. Misschien omdat er nog een add-in berekning aanhangt die de boel weer verknoeid.

    Manan nieuwe ronde

    groet, Pannemanski
  • [quote:b3ccbc28df="pannemanski"]Eerst zelf proberen. Overigens, met de macro gaat de berekning niet altijd goed. Misschien omdat er nog een add-in berekning aanhangt die de boel weer verknoeid.[/quote:b3ccbc28df]
    Dat weet ik niet.
    Maar wel opletten met bv. deze opdracht:
    Range("A1:C99").Calculate
    Die wordt uitgevoerd in het blad dat op moment van uitvoeren geselecteerd is. Als die berekening in slechts 1 blad mag gebeuren, dan best de naam van het blad er bij vermelden, dus (bv.):
    Worksheets("Blad2").Range("A1:C99").Calculate
  • Zover als het nu is,

    De (macro-)opdracht range.calculate is gekoppeld aan een button in het menu en dat werkt dan ook.
    Maarrrrr, open ik een ander workbook, dan is de macro verdwenen en daarmee de werking van de button.

    gr. Pannemanskie
  • Als je de macro opslaat in de persoonlijke werkmap Persnlk.xls , dan heb je hem in elke (oude en nieuwe) werkmap ter beschikking.
    Persnlk.xls bevindt zich doorgaans in de map XLSTART.
    Het kan zijn dat Persnlk.xls nog niet bestaat. Als dat zo is, dan kun je best het volgende doen:
    Maak een Excelbestand dat uitsluitend de bewuste macro (incl. knop) bevat.
    Sla dat bestand - met als naam Persnlk.xls - op in de map:
    C:\Documents and Settings\Jouw gebr.naam in jouw computer\Application Data\Microsoft\Excel\XLSTART

    Daarna Persnlk.xls en Excel afsluiten.
    Bij opnieuw starten van Excel op de gebruikelijke manier, zou de macro aanwezig moeten zijn.

    Bovenstaande plaats van XLSTART geldt voor een computer met Windows xp en Excel 2002/20003. Kun je XLSTART niet meteen vinden, zoek er dan naar via: Start - Zoeken - Bestanden en mappen.
  • Dat is gelukt maarrrrrrrrr, moet de macro dan in een aparte module ?

    Overigens, als ik gebruik maak van de knop die aan de macro hangt, wordt de file Persnlk.xls geopend.
    Dat is niet de bedoeling, ergens ga ik nog de fout in

    Groet, en tot zover bedankt, ik ben een stukje verder hiermee.
  • Ik was enkele weken in het buitenland, vandaar mijn late reactie. Het verbaast me overigens dat hier nog niemand anders heeft gereageerd, zou het CT!-forum zo weinig bezocht/gelezen worden? Dit terzijde, terug naar het onderwerp.
    Ik heb proberen na te gaan wat de oorzaak is van je probleem. Het blijkt nu dat er een verschil is tussen het zelf aanmaken van het bestand Persnlk.xls en het door Excel zelf laten aanmaken van Persnlk.xls . Dat laatste verdient kennelijk de voorkeur, zo is mij gebleken (ik heb het hier over Excel 2002, maar voor Excel 2003 en 2000 zal waarschijnlijk hetzelfde gelden; voor Excel 2007 weet ik het niet). Doe het volgende:
    - VERWIJDER het huidige Persnlk.xls-bestand;
    - Start Excel;
    - Je gaat nu een dummy-macro aanmaken, alleen maar met de bedoeling om Excel het bestand Persnlk.xls te laten aanmaken. Dat gaat als volgt:
    - Start de macro-recorder, in het menu t/m Excel 2003 via: "Extra" - "Macro" - "Nieuwe macro opnemen" (je kan natuurlijk ook de werkbalk "Visual Basic" tevoorschijn halen als je dat wil en daarmee werken). Er verschijnt dan een venster waarin een naam wordt voorgesteld voor de macro (Macro1) én waarin wordt gevraagd: "Macro opslaan in:….". Je moet daar kiezen: "Persoonlijke werkmap". Klik dan op Ok en daarna op "Opname stoppen" (via "Extra" - "Macro" - "Opname stoppen" of via de knop op de VB-werkbalk). Het bestand Persnlk.xls is nu aangemaakt.
    - Ga naar de VB-editor en klik aan de linkerkant in de projectverkenner op het plusteken vóór VBA-project (Persnlk.xls), klik daaronder op het plusteken vóór "Modules", en klik dan 1 keer op "Module1". Je ziet dan aan de rechterkant de lege macro staan die je hebt aangemaakt. Verwijder alle tekst die staat tussen "Sub macro1()" en "End sub" en plaats er de tekst van je eigen macro voor in de plaats. Je hebt nu ook meteen een antwoord op je vraag of je macro in een module moet: ja, die plaats je best in een module, maar in diezelfde module mogen ook andere macro's staan (dwz: macro's die je altijd beschikbaar wil hebben en daarom in Persnlk.xls moeten staan. Macro's die je enkel in 1 bestand wil gebruiken, plaats je in een module behorend tot dat bestand).
    - Sluit de VB-editor via het kruisje rechtsboven, je komt dan terug in je werkblad. Maak daar (als je die nog niet hebt) IN HET MENU een knop (je weet toch hoe dat moet?) en verbind die knop (via "Macro toewijzen") met "Persnlk.xls!Macro1".
    - Sla je bestand op en sluit Excel. Er zal worden gevraagd of je de wijzigingen in Persnlk.xls op wil slaan, daarop moet je uiteraard bevestigend antwoorden.
    - Je bent nu klaar, de macro is in al je Excelbestanden beschikbaar. Het probleem dat je in je laatste bericht hierboven beschreef, zou zich nu niet meer moeten voordoen. Bij mij werkt het op deze manier in elk geval prima.
    Succes er mee, laat aub even weten of het is gelukt.
  • Het is me helemaal gelukt volgens Uw beschrijving.
    Werkt als een speer.
    Op dit moment reken ik nog niet waarden die van extern komen.
    Zodra die er weer zijn, en ik m.b.v. het knopje een deel kan uitrekenen is de test volledig geslaagd.

    Nogmaals bedankt.

    Groet, Pannemanski

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.