Ga naar inhoud

alpha

Lid
  • Items

    1.124
  • Registratiedatum

  • Laatst bezocht

Alles dat geplaatst werd door alpha

  1. Kleine correctie. Jouw sorteermacro wordt uitgevoerd zodra er ook maar 1 rij verrplaatst wordt, dus ook als er bv. 3 rijen verplaatst moeten worden. Dat zou wel eens tot problemen aanleiding kunnen geven (2 macro's die tegelijkertijd worden uitgevoerd). PC-Helpf Carembole60.xlsm
  2. Als je in je formule in plaats van C103 bedoelt: E103, dan zou de formule zo kunnen luiden: =ALS(EN(E103>=E99/1,9;D103>=500);"Wettelijk";"Onwettelijk")
  3. E103 komt helemaal niet in je formule voor, dus daar kan de formule dan sowieso geen invloed op uitoefenen.
  4. NEE, dat is geen regel van mij. Het gaat om deze regel die ik hierboven plaatste: Do While IsDate(Range("f" & rij).Value) Ik heb de punt nu weggehaald, dus zo moet hij er uitzien. Die punt kan later worden teruggeplaatst als in de macro naar een blad word verwezen; die regel komt dan tussen 'With en End With'. Door die punt hoef je de naam van het blad niet te herhalen. Duik maar eens goed in de Excel-VBA-Helpfile, daar staat ALLES in, een boek heb je niet nodig. Maar voordat je aan vba begint moet je Excel zonder vba zeer goed beheersen (en dan vooral de functies), daar ontbreekt het bij velen aan. En als je met vba begint, kun je best met zeer eenvoudige dingen beginnen (dus niet met iets zoals hier, hoewel dat ook niet erg moeilijk is), anders komt er te veel ineens op je af. In de helpfile van Excel-vba vind je alle vba-mogelijkheden, vaak met eenvoudige voorbeelden erbij. NB: Voordat je in de macro gaat kopiëren moet je eerst kijken of de cel, wat datum betreft, aan de voorwaarde voldoet. En als die daaraan voldoet, dan pas kopiëren.
  5. Ik dacht de vragensteller een korte opleiding te geven, maar dat heeft nu nog weinig zin als iemand met een complete oplossing komt. Toch Noyota, leert iemand meer door zelf dingen uit te zoeken (eventueel met aanwijzingen) dan door zonder meer complete oplossingen van anderen over te nemen. Ik zeg dit niet als kritiek, iedereen doet op dit forum wat hij of zij wil, en ik geef soms ook wel complete oplossingen. Overigens Noyota, vind ik je oplossing wel héél erg omslachtig door cel per cel in het tweede blad over te nemen. Dat kan veel sneller met een kopieeropdracht (1 coderegel). En cellen met een X vullen is ook helemaal niet nodig, je kunt het betreffende bereik eenvoudig met 1 coderegel leegmaken zonder die X. De aanwijzingen voor zo'n oplossing staan in mijn bericht hierboven. Daarin moet overigens de punt vóór Range("f" & rij) verwijderd worden.
  6. Bekijk nog eens je bestand dat je hier op het forum plaatste, dan zul je zien dat dat niet het geval is, want in kolom E zit geen vw. opmaak (maar die kun je er wel in plaatsen natuurlijk). Heb je die opdracht (en de andere die ik vermeldde) al bestudeerd in de helpfile van Excel? Ik schreef: doorloop kolom F om te kijken of er datums zijn die aan de voorwaarde (datum kleiner of gelijk aan huidige datum) voldoen. In jouw geval moet dus F2 t/m F4 doorlopen worden. Dat het t/m F4 is, dat weet Excel alleen als je dat vooraf vastlegt (door de laatste rij met gegevens te bepalen, maar om het eenvoudig te houden laat ik dat hier achterwege). Je kunt ook kolom F doorlopen totdat er geen datum meer in staat (dat is geen sluitende oplossing als er rijen zijn zonder datum in kolom F, maar daar is een mouw aan te passen). De rijen met datums in kolom F doorlopen kan dan bv. zo: sub test() rij = 2 'Doe zo lang er een datum in de cel ("F" & rij) staat Do While IsDate(.Range("f" & rij).Value) 'Hier moet komen: Als de celwaarde kleiner of gelijk is aan de huidige datum, 'kopieer dan de kolommen A t/m AF naar het tweede blad en wis in het eerste blad 'de kolommen E t/m AF. Probeer dat zelf. rij = rij + 1 Loop End Sub
  7. In kolom E zie ik geen vw. opmaak en in de kolommen waarin wel vw. opmaak staat is die niet juist. Voorbeeld: in F2 geef jij als vw. opmaak: =F2:F4<(vandaag()+60). Dat kan niet, vóór het kleiner-dan-teken mag slechts 1 cel staan. Je moet dit bij álle cellen wijzigen waarin je vw. opmaak hebt ingesteld. En als een cel waarin een datum kan komen ook leeg kan zijn, dan moet je in de vw. opmaak ook het leeg zijn van die cel(len) opnemen. In je bestand zie ik dat je macro's uit een boek van Wim de Groot hebt overgenomen, dat is uiteraard prima. Ik heb zelf dat boek niet (ik heb mijn handen vol aan de helpfile van Excel), maar ik heb zojuist op internet de inhoudsopgave van dat boek bekeken en dan denk ik toch dat je de vraag die je hier stelt zou moeten kunnen oplossen, het gaat nl. om basisvaardigheden. Ik zal aangeven hoe je je probleem kunt aanpakken. 1. Doorloop in het eerste blad kolom F vanaf rij 2 tot zover er gegevens in de F-kolom staan. Dat kan bv. met een for-next-opdracht, maar ook met Do-While, Do-Until, While-Wend. 2. Controleer bij elke datum die in kolom F wordt gevonden of die kleiner of gelijk is aan de huidige datum; dat kan met If...Then. Is aan de voorwaarde voldaan, kopieer dan (met Copy...) van die rij de kolommen A t/m AF (de gehele rij mag ook) naar de eerste lege rij van het tweede blad (dat is rij 2). De volgende keer dat je kopieert moet dat uiteraard rij 3 zijn, dus je gebruikt een variabele die je vóór elke kopieeropdracht met 1 ophoogt. 3. Tot slot moet je dan in het eerste blad van de gekopieerde rij de inhoud van de kolommen E:AF wissen. Dat is alles, dus zeer weinig opdrachten. Als je de code in ThisWorkbook plaatst tussen Private Sub Workbook_Open() en End Sub ), dan wordt telkens als je het bestand opent gecontroleerd of er een rij aan de voorwaarde voldoet en die rij wordt dan meteen gekopieerd. Natuurlijk wordt dan ook automatisch jouw sorteermacro in het eerste blad uitgevoerd omdat er door te kopiëren in kolom K wat gewijzigd is. Door het wissen van de kolommen E:AF in 1 of meer rijen zul je zien dat de vw. opmaak ook in lege cellen zijn werk doet, vandaar mijn opmerking hierboven om daar wat aan te doen. Succes ermee!
  8. Je moet in het venster "Apps en onderdelen" aan de linkerkant "Standaard-apps" kiezen. Dan scroll je aan de rechterkant naar beneden, naar "Webbrowser", en daar kies je (tijdelijk) een andere browser (als je die op je computer hebt staan uiteraard). Het is niet zeker dat dan je probleem is opgelost, maar het zóu kunnen...
  9. Over dat onderwerp is op internet heel veel uitleg te vinden. In plaats van dat hier te kopiëren, kan ik je best daarnaar verwijzen. Zoek bv. met Google naar 'vlookup pictures'.
  10. Aanvulling op bericht van stegisoft: het kan soms helpen om 'even' te wisselen van standaardbrowser. Kies Start - Instellingen - Apps - Standaard-apps (je krijgt dan het venster dat stegisoft hierboven laat zien), en kies bij webbrowser tijdelijk een andere browser. De melding van 'annulatie wegens systeembeperkingen' verschijnt nl. nogal eens na installatie van de browser 'Google Chrome'.
  11. Ik denk niet dat je die items kunt uitlijnen. Maar als je in de array de overtollige spaties verwijdert, dan ziet het er al heel wat beter uit.
  12. Dat kan met een kleine macro, bv. op deze manier: - Kopieer onderstaande code. - Druk ALT-F11 (=Alt-toets ingedrukt houden terwijl je op F11 drukt). - Druk in de rechterkolom op de rechtermuisknop en kies "Plakken". - Plaats de cursor op een willekeurige plaats in de macro en klik bovenaan in het menu op het groene pijltje-naar-rechts (je kunt ook een knop in bv. blad1 plaatsen waarmee je de macro uitvoert). De macro beveiligt alle bladen. Wil je nu bv. alleen de bladen 2 t/m 5 beveiligen, dan wijzig je de regel For x = 1 To Worksheets.Count in: For x = 2 to 5 . Sub beveilig() Dim x As Integer For x = 1 To Worksheets.Count Worksheets(x).Protect Password:="Evelien83" Next x End Sub
  13. @vuberke, Als je elders dezelfde vraag plaatst, dan wordt je geacht daarvan mededeling te doen op het forum waar je je vraag eerder plaatste, zodat mensen die je vraag proberen te beantwoorden geen nodeloos werk doen. Dat is gewoon "een regel die in het maatschappelijk verkeer betaamt" (= een algemene regel van fatsoen) die iedereen wordt geacht te kennen (bedenk hoe je het zelf zou vinden als je lang aan een antwoord op een vraag zou hebben gewerkt, als je er nadien achter komt dat dezelfde vragensteller de vraag ook elders heeft geplaatst en als die daar is beantwoord). Dit forum zegt hierover in zijn forumregels (citaat): Indien onze medewerkers vaststellen dat een vraag op meerdere fora is gepost, kan uw vraag tijdelijk en/of definitief "on hold" worden gezet. Dubbel werk voor onze "vrijwilligers" en bovendien kunnen verschillende adviezen elkaar doorkruisen. Geen goede methode om een probleem op te lossen. Onze medewerkers zullen u van deze tijdelijke en/of definitieve blokkering op de hoogte stellen. (einde citaat). Voor de duidelijkheid: bovenstaande schrijf ik op eigen titel, want ik ben hier geen moderator en ben niet bij de organisatie van dit forum betrokken. Om terug te komen op je vraag hier: als je de nodige tijd had genomen en goed had bestudeerd wat in dit topic als reactie op je vraag is geschreven, dan had je zelf je probleem verder kunnen oplossen (de aanwijzingen waren duidelijk, je hoefde bijna alleen maar te kopiëren). Onthoud: Excel leer je niet door klakkeloos oplossingen van anderen te kopiëren, maar door er zelf langdurig mee bezig te zijn. Die tijd moet je ervoor nemen. De website "gratiscursus.be" is inderdaad niet meer bereikbaar, de reden weet ik niet.
  14. vuberke heeft zijn heil op een ander forum gezocht. Jammer dat hij hier niets geleerd heeft.
  15. alpha

    SNEL/LAK

    Je hoeft 'snel' of 'lak' toch niet per se te kopiëren, het zijn nota bene 3 letters, die zijn gemakkelijk in te toetsen....
  16. alpha

    SNEL/LAK

    Gegevensvalidatie reageert op manueel invoeren van gegevens, niet op kopiëren.
  17. alpha

    SNEL/LAK

    "Buiten de gegevensvalidatie om" schreef ik, dus NIET vba en gegevensvalidatie samen, 1 van de 2 ! Als je "met de persoon die al aangeduid is" de naam in de B-kolom bedoelt, dan kun je die in VBA opnemen met bv. range("B17").value. Maar als je het venster van gegevenvalidatie weglaat, dan moet je in vba ook de controle op meer dan 1x 'lak' en 'snel' opnemen, dus veel meer werk. Als ik jou was zou ik gegevensvalidatie niet laten vallen.
  18. alpha

    SNEL/LAK

    In de tekst bij gegevenvalidatie kan dat niet. Dat is een standaardvenster. 'ingebouwd' in Excel. Het kan wel buiten de gegevensvalidatie om, maar dan moet je uiteraard een beroep doen op vba.
  19. alpha

    SNEL/LAK

    Als je iedere gebruiker persoonlijk wil aanspreken met zijn/haar naam, dan moet je de gegevensvalidatietekst voor elke cel afzonderlijk aanpassen.
  20. alpha

    SNEL/LAK

    Zoals ik al schreef: in het menu bij gegevensvalidatie. Heb je dat n.a.v. mijn vorige berichten niet bekeken/bestudeerd? Niet zonder meer. Als je dat wil, zou je naast die nummers een hulpkolom (die je verbergt) kunnen invoegen en waarin je de loonnummers blijvend opslaat. Om zo'n nummer dan snel terug te plaatsen in de A-kolom heb je toch weer vba nodig.
  21. Het is maar hoe je het bekijkt
  22. Misschien wil je dit: Sub macro1() Dim mijnwaarde As Integer, mijncel As String mijnwaarde = InputBox("Welke waarde (bv. 3)?") mijncel = InputBox("Welke cel (bv. K70)?") Sheets("Lijst").Range(mijncel) = mijnwaarde End Sub Daar horen eigenlijk ook nog opdrachten bij om te controleren of wel gegevens worden ingevoerd overeenkomstig de vraag en ook voor wat er moet gebeuren als daaraan niet is voldaan.
  23. Ja: - Selecteer en kopieer in CN_FILE2017.xls de bewuste cellen - Open CN_FILE2018.xls, selecteer en plak de gekopieerde cellen in de geselecteerde cellen van CN_FILE2018.xls Als je wil kopiëren door het klikken op een knop, dan zit achter die code altijd vba om de kopieeropdracht uit te voeren. Ook hiervoor geldt dat dat in Excel niet kan met een formule in een werkblad, wel m.b.v. vba.
  24. Het doel van je exercitie is mij niet duidelijk met al dat geswitch tussen variabelen. Zonder een bestand met gegevens is het ook moeilijk oordelen. Wel te zeggen is dat twee zaken niet kloppen: je declareert zowel fcelwaarde1 als faanmelding1 als string en vervolgens wil je ze als range gebruiken. Dat kan natuurlijk 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.