Help VBA Excel

Status
Niet open voor verdere reacties.

AnoukMannaerts

Gebruiker
Lid geworden
15 mei 2014
Berichten
19
Momenteel werk ik aan een bestand (zie bijlage) dat volgende handelingen zou moeten uitvoeren:


- Bij het ingeven van afkorting zou VBA automatisch op zoek moeten gaan naar deze afkorting
- Wanneer deze afkorting gevonden wordt, met VBA automatisch de gegevens van de velden UL en breuk uitlezen en onthouden
- Daarna zou hij de som van (UL/Breuk)*10000 moeten plaatsen in het tabblad 'aantal uren leerkracht' en dit in de twee cellen naast de afkorting.


Momenteel heb ik een keuzelijst gemaakt zodat de invoer van een foute afkorting onmogelijk is. Verder heb ik alle afkortingen in een Array geplaatst zodat Excel deze automatisch kan uitlezen.

Kan iemand mij helpen?Bekijk bijlage Opdrachten per klas +4 collega's.zip

Momenteel heb ik ook op het laatste tabblad al een korte formule ingevoerd die de som UL/Breuk*10000 gaat berekenen.
Echter is dit nu zo ingesteld dat de gegevens eerst via een inputbox worden ingevoerd. Dit is niet de bedoeling. Wat wel de bedoeling is , is dat Excel deze gegevens zelf uit de verschillende werkbladen gaat halen.
Verder wordt de uitkomst nu afgedrukt in een MSgBox en de uitkomst zou in de Cel C naast de juiste afkorting moeten komen.

Zoals jullie merken ben ik nogal een leek, maar ik doe m'n best

Bekijk bijlage Opdrachten per klas +4 collega's (2).zip
 
Laatst bewerkt door een moderator:
Over welke UL heb je het ?
Ik zie steeds verschillende kolommen met UL erin.
Ik zou een totaal andere opzet maken:

Voor iedere dcoent een rij en voor iedere klas een kolom in hetzelfde werkblad.
Dan kun je per docent invoeren hoeveel uren hij/zij aan iedere klas besteedt.
Dan is het optellen van het totaal aantal uren per docent kinderspel. en het aantal lesuren per klas eveneens.
En heb je ook geen afkortingenlijst nodig.

Op basis hiervan kun je allelei soorten overzichten maken : per klas, per docent, per leerjaar, per docentengroep.
 
Laatst bewerkt:
Bekijk bijlage flowchart.docxIk ben dit programma aan het uitwerken voor de school waar ik werk en dit is het bestand dat ze willen gebruiken.
Eigenlijk is de bedoeling dat alle vakken van titularis ingevuld worden (met een afkorting van een bepaalde leerkracht). Daarna moet excel alle afkortingen opzoeken en uitrekenen welke opdrachtbreuk ze hebben.

Ik heb een soort van stappenplan gemaakt misschien dat dit meer duidelijkheid brengt..

Ik zit echt even vast .. maar zoals je al aangeeft is dit geen gemakkelijke opgave
 
Hat is een gemakkelijke opdracht als je de basisgegevens maar goed structureert, zoals ik al aangaf.
 
Laatst bewerkt:
Mij lijkt dat er eerst gegevens moeten worden ingevoerd in de tabel.
Verwijder de door jou toegevoegde rij 2.
Zolang je niet uitlegt wat UL is, ncoh wat de betekenis is van een breuk is 'helpen' lastig.
 
Mij lijkt dat er eerst gegevens moeten worden ingevoerd in de tabel.
Verwijder de door jou toegevoegde rij 2.
Zolang je niet uitlegt wat UL is, noch wat de betekenis is van een breuk is 'helpen' lastig.
 
UL staat voor uren per leerkracht
Breuk is het totaal aantal uren dat de leerkracht werkt.

Voorbeeld leerkracht X moet 22 uren werken om voltijds aan het werk te zijn . De uren zijn verdeelt over x - aantal klassen: dat maakt bijvoorbeeld 2/22 + 3/22 + 5/22 ...

Bij totaal moet dan een som gemaakt worden van (UL/Breuk)*10000 + (Ul/Breuk)*10000

Als voorbeeld heb ik de eerste rij ingevuld zie bijlage.

Bekijk bijlage 0_Opdrachten per klas +4 collega's (1).xlsm
 
Het kan bijvoorbeeld voorkomen
Dat leerkracht x een aantal uren op de breuk van 22 maakt en een aantal uren op de breuk van 20 maakt afhankelijk van de graad dat hij les geeft. vandaar dat rij twee aanwezig moet zijn. De totale uitkomst herleid ik naar 10000 om makkelijk te controleren of leerkracht X voltijds werkt.
 
Het is toch overbodig voor iedere klas bij iedere docent het voltijdscriterium in te voeren.
Dat is een kenmerk dat bij de docent hoort. Maak daar desnoods kolom C voor vrij.
Per klas hoef je alleen het aantal uren dat de docent daar verzorgt in te voeren.
O ja, hier wordt alles verdeeld met een d.
 
Ben een beetje verder gekomen door volgende code toe te passen op mijn bestand

Public Sub FindText()
'Run from standard module, like: Module1.
'Find all data on all sheets!
'Do not search the sheet the found data is copied to!
'List a message box with all the found data addresses, as well!
Dim ws As Worksheet, Found As Range
Dim myText As String, FirstAddress As String
Dim AddressStr As String, foundNum As Integer

myText = InputBox("Enter text to find")

If myText = "" Then Exit Sub

For Each ws In ThisWorkbook.Worksheets
With ws
'Do not search sheet4!
If ws.Name = "AfkortingenLeerkrachten" Then GoTo myNext
If ws.Name = "AantalUrenPerLeerkracht" Then GoTo myNext

Set Found = .UsedRange.Find(what:=myText, LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)

If Not Found Is Nothing Then
FirstAddress = Found.Address

Do
foundNum = foundNum + 1
AddressStr = AddressStr & .Name & " " & Found.Address & vbCrLf

Set Found = .UsedRange.FindNext(Found)

'Copy found data row to sheet4 Option!
'Found.EntireRow.Copy _
'Destination:=Worksheets("Sheet4").Range("A65536").End(xlUp).Offset(1, 0)
Loop While Not Found Is Nothing And Found.Address <> FirstAddress
End If

myNext:
End With

Next ws

If Len(AddressStr) Then
MsgBox "Found: """ & myText & """ " & foundNum & " times." & vbCr & _
AddressStr, vbOKOnly, myText & " found in these cells"
Else:

MsgBox "Unable to find " & myText & " in this workbook.", vbExclamation
End If
End Sub
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan