anoniem Geplaatst: 29 november 2003 Delen Geplaatst: 29 november 2003 Hallo allemaal, Ik ben voor onze basisschool eens in Excel gedoken om daar een registratiesysteem te maken voor rekenen. Handmatig is dit een heel gedoe per toets en met de pc moet dit handiger kunnen. Ik ben nu zover dat het per toets goed gaat. De percentages worden keurig berekend en Excel geeft keurig aan hoe het niveau is. Nu wil ik dit verder gaan automatiseren en daar zit het probleem. De situatie is als volgt: In een groep zitten ca. 30 leerlingen, ze maken 6 toetsen per jaar en die 6 toetsen staan elk afzonderlijk achter een nieuw tabblad. Helemaal vooraan in de werkmap staat achter tabblad 1 de namenlijst. Deze namen neemt ie in de andere toetsen over. Zodoende hoef ik dus alleen bij een nieuwe groep éénmaal de namen in te voeren. Het probleem zit em in het volgende. Een leerling kan les krijgen volgens de standaard stof of via aangepast werk. Dit kan het hele jaar door wisselen, dus is dit een variabel gegeven. Wat ik nu gedaan heb is achter de namenlijst een kolom opgenomen waarin ik met een "S" aangeef als het om standaard rekenen gaat en een "M" als het om maatwerk gaat. In de registratielijsten zou dus op de plaats van de naam een formule moeten komen die in de namenlijst kijkt bij welke leerling er een "S" staat, deze naam zou dan overgenomen moeten worden. Datzelfde moet ook bij de registratiebladen voor het maatwerk gebeuren, alleen moeten dan alleen de namen van leerlingen waarachter een "M" staat overgenomen worden. Samenvattend: welke formule kan uit een lijst met namen alleen die namen filteren waarachter een bepaalde letter staat? Ik hoop dat er iemand is die dit weet, zelf kom ik er even niet meer uit. Ik ben als bezig geweest met een ALS functie en een Verticaal zoeken functie, maar ... Wie oh wie kan hulp bieden? Als er meer info nodig is hoor ik dat graag. Quote Link naar reactie
anoniem Geplaatst: 29 november 2003 Auteur Delen Geplaatst: 29 november 2003 [code:1:aeb6e0ddab]Sub selecteer_namen() Dim aantal As Integer Dim x As Integer, teller As Integer Dim blnaam As String, inpnaam As String, selectie As String blnaam = ActiveSheet.Name teller = 1 'Vanaf hier mogen de waardes aangepast worden aantal = 50 'aantal regels in naamblad waarin gezocht moet worden inpnaam = "Blad1" 'naam van het blad waar de namen van de leerlingen staan selectie = "m" ' de letter waar naar gezocht wordt in kolom 2 'EINDE aanpassing If inpnaam = blnaam Then Exit Sub For x = 1 To aantal Sheets(inpnaam).Activate If LCase(Cells(x, 2)) = selectie Then Cells(x, 1).Select Selection.Copy Sheets(blnaam).Activate Cells(teller, 1).Select teller = teller + 1 ActiveSheet.Paste End If Next x Sheets(inpnaam).Activate Application.CutCopyMode = False Sheets(blnaam).Activate Sheets(blnaam).Cells(1, 1).Select End Sub [/code:1:aeb6e0ddab] Een formule ken ik er niet voor maar misschien heb je iets aan deze makro. Koppel deze aan bv CTRL M en maak er nog zo een voor CTRL S Je moet dan wel de variabele [selectie] aanpassen van "m" naar "s" werking: Ga in een toets blad staan en druk op CTRL M Wim Quote Link naar reactie
anoniem Geplaatst: 29 november 2003 Auteur Delen Geplaatst: 29 november 2003 Ik ga het zo snel mogelijk uitproberen. Alvast hartelijk dank voor de zeer snelle reactie. Ik laat het zeker nog even weten of het gelukt is. Quote Link naar reactie
anoniem Geplaatst: 29 november 2003 Auteur Delen Geplaatst: 29 november 2003 Ha, helemaal geweldig. Ik heb het iets aangepast en het werkt echt helemaal zoals ik bedoelde. Nu zit ik nog met een ander probleem. Standaard heb ik een lijst met 50 leerlingplaatsen. Nu worden de nullen niet weergegeven omdat ik dat via extra - opties uitgezet heb. In de laatste kolom laat excel echter een G een V of een O zien. Die formule ziet er zo uit [code:1:36d59c0e11]=ALS(M6>=80;"G";ALS(M6>=60;"V";"O"))[/code:1:36d59c0e11] Kan ik hier iets aan toevoegen zodat het resultaat van deze formule alleen getoond wordt als er inderdaad ook een getal in M6 staat die hoger is dan 0. Als er wel een 0 staat moet de formule niet uitgevoerd worden of moet het resultaat moet in ieder geval niet getoond worden. Alvast bedankt! Quote Link naar reactie
anoniem Geplaatst: 30 november 2003 Auteur Delen Geplaatst: 30 november 2003 deze dan, [code:1:c1eb558090]=ALS(M6>0;ALS(M6>=80;"G";ALS(M6>=60;"V";"O"));"")[/code:1:c1eb558090] Wim Quote Link naar reactie
anoniem Geplaatst: 30 november 2003 Auteur Delen Geplaatst: 30 november 2003 Helemaal geweldig! Tjonge hartelijk dank, mede namens alle collega's die nu hun rekentoetsen 10 keer sneller kunnen verwerken. Groets, Roland Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen