Ga naar inhoud

alpha

Lid
  • Items

    1.125
  • Registratiedatum

  • Laatst bezocht

Alles dat geplaatst werd door alpha

  1. Klik in het menu van Word achtereenvolgens op: Bestand (in Word 2007 de ronde Officeknop linksboven) - Opties - Vertrouwenscentrum -> Instellingen voor Vertrouwenscentrum (knop aan de rechterkant) - Instellingen voor macro's, en vink aan: "Alle macro's inschakelen (.....)", Klik op Ok, en nogmaals op Ok.
  2. @peterlol, in je code staan een aantal aanhalingstekens verkeerd en de code ziet er bovendien nogal verwarrend uit (vind ik). Maar vertel eerst eens: werk je met Outlook, behorend tot Microsoft Office (zoals ook Word en Excel tot Microsoft Office behoren), of werk je met Outlook.com ? En een tweede vraag: met de code die je nu hebt, verschijnt de tekst die in de 'body' moet komen te staan, ook in de body, of verschijnt die bij het onderwerp van de e-mail ?
  3. Aanvulling op vorig bericht: Voordat je de macro uitvoert, moet je uiteraard wel de te kopiëren tekst selecteren.
  4. Ervan uitgaande: - dat beide Wordbestanden geopend zijn; - dat de naam van het document waarheen je wil kopiëren Docu2.docm is; kun je in het document van waaruit je kopieert deze macro gebruiken: Sub Macro1() ThisDocument.Activate Selection.Copy Documents("Docu2.docm").Activate With Selection .EndKey wdStory .TypeParagraph .PasteAndFormat wdPasteDefault End With End Sub
  5. Een eenvoudige en makkelijke oplossing is deze: de celeigenschappen op "Standaard" laten staan en een enkele apostrof invoeren vóór het getal, dus zo: '+32456687 Na invoer (= na gedrukt te hebben op Enter) zie je die apostrof niet staan.
  6. Je wil dat de uitkomst van een deling steeds een geheel getal is? Dan moet je daar bij elke deling op controleren en indien nodig de getallen behorend bij die deling opnieuw laten bepalen. Je kunt dan best de getallen van alle opgaven niet in 1 keer laten bepalen maar elk afzonderlijk. Want álle getallen opnieuw laten kiezen kan betekenen dat een andere deling dan weer niet klopt. Als het om een klein aantal opgaven gaat, kun je die aanpassing best handmatig doen. Als je het de macro wil laten doen, dan is het principe: - Controleer of de uitkomst van de deling een geheel getal is. - Is dat niet get geval: --> kies nieuwe getallen en controleer opnieuw de deling. - Is dat wél het geval: --> ga verder met de uitvoering van de macro. Je moet er dan natuurlijk ook voor zorgen dat die controle alleen bij een deling en niet bij andere bewerkingen plaatsvindt.. Een mooie opgave (want niet erg moeilijk) voor degenen die met vba geginnen.
  7. alpha

    Opmaak

    Is de tekst waarin zich de problemen voordoen misschien van internet gekopieerd? Als dat het geval is en je plakt die tekst niet "speciaal", dan komt die als HTML in het Worddocument te staan en dan kunnen problemen zoals bij jou zich gemakkelijk voordoen, vooral als je zelf nieuwe alinea's aanmaakt. Controleer eens of het helpt als je dat laatste vermijdt. Probeer anders eens het volgende (nog steeds ervan uitgaand dat de tekst van internet gekopieerd wordt): - Kies in Word: "Plakken Speciaal" --> "Opgemaakte tekst (RTF)", de opmaak blijft dan behouden, maar de HTML-code niet. Als "Opgemaakte tekst (RTF)" niet bij de plakmogelijkheden staat, dan de tekst eerst gewoon plakken, dan knippen, en daarna "speciaal" plakken als "Opgemaakte tekst (RTF)". - Je zou er ook voor kunnen kiezen om in Word de tekst te plakken als "Niet-opgemaakte tekst" of "Niet-opgemaakte Unicode-tekst", maar dan gaat alle opmaak verloren en moet je die op de gewenste plaatsen opnieuw aanbrengen. De zelf aangebrachte opmaak zal normaliter niet snel verloren gaan.
  8. Dat kan m.b.v. een inputbox, die behoort tot de basisbeginselen van vba. Option Explicit Sub macro1() Dim a As Integer, b As Integer, c As Integer, d As Integer, x As Integer With Sheets("Blad1") a = InputBox("Laagste getal kolom F ?") b = InputBox("Hoogste getal kolom F ?") c = InputBox("Laagste getal kolom H ?") d = InputBox("Hoogste getal kolom H ?") For x = 9 To 13 .Range("F" & x).Value = Application.RandBetween(a, .Range("H" & x).Value = Application.RandBetween(c, d) Next x End With End Sub
  9. @jetu, wat jij wil gaat niet op de manier zoals met de macro in jouw bestand. De reden is dat =aselecttussen() een volatilefunctie is die bij elke wijziging in het blad opnieuw wordt berekend (dus bv. ook als in kolom J de uitkomsten zouden worden ingevuld). Nu je toch een macro wil gebruiken is er een eenvoudige oplossing mogelijk door de getallen in de A- en B-kolom niet in het blad maar door de macro te laten berekenen. Als je niet de formule maar alleen de uitkomsten in de A- en B-kolom plaatst, wijzigen die niet meer als je elders in het blad wat doet. Dat kan bv. zo: Option Explicit Sub macro1() Dim x As Integer With Sheets("Blad1") For x = 9 To 13 .Range("A" & x).Value = Application.RandBetween(0, 5) .Range("B" & x).Value = Application.RandBetween(0, 5) .Range("F" & x).Value = .Range("A" & x).Value .Range("H" & x).Value = .Range("B" & x).Value Next x End With End Sub Je kunt natuurlijk de berekende getallen ook meteen in de F- en H- kolom plaatsen en de A- en B-kolom weglaten. En tenslotte kun je ook de moeilijkheidgraad van de opgaven eenvoudig aanpassen door de macro naar de hoogste en laagste waarde van de getallen in de A- en B-kolom te laten vragen.
  10. alpha

    Formula

    Stel dat in A10:A20 alle (verwachte) inkomsten/uitgaven staan. Om het totaal van al die bedragen te kennen, typ in A4: =som(A10:A20) Dat wist je waarschijnlijk al. Om te weten welke bedragen van kolom A reeds zijn verwerkt (of 'uitgevoerd' zoals jij het noemt), typ in de overeenkomstige cellen van de B-kolom bv. een x . Het totaal van de bedragen in A10:A20 die zijn verwerkt, is dan (dit kun je typen in A5): =som.als(B10:B20;"x";A10:A20) Als je in plaats van die x-en beslist een optelling wil van de cellen waarvan je de tekst hebt 'vet' gemaakt, dan kan dat wel, maar daarvoor is een functie in vba nodig, dat is veel bewerkelijker.
  11. 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.
  12. @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.
  13. 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.
  14. 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.
  15. 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.
  16. 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.
  17. 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.
  18. 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.
  19. 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.
  20. 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).
  21. alpha

    Sommen.Als

    Vertrouwelijke gegevens kun je vervangen door andere. Is de verwerking niet erg traag met zo'n lange formule?
  22. 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.
  23. 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))
  24. 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.
×
×
  • 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.