• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Gegevens naar specifiek tabblad kopiëren met vba

Status
Niet open voor verdere reacties.

JoostHuizing

Gebruiker
Lid geworden
11 aug 2011
Berichten
25
Goedemiddag,

Ben alweer even niet meer bezig geweest met VBA en heb op basis van wat zaken die ik o.a. hier heb gevonden en in andere documenten heb verwerkt wat geprobeerd, maar zit denk niet in de juiste richting. Hopelijk kunnen jullie mij op weg helpen. Zie door de bomen het bos met de match en vlookup e.d. niet meer :)

Ik ben bezig met het maken van een urenregistratie en wil de uren die iemand voor een week schrijft (tabblad Urenregistratie per week), wegschrijven in een tabblad per medewerker (Urenreg. p. maand - "Naam medewerker") waar de totalen van alle weken komen te staan.
Ik heb daar een paar dingen voor ogen:
- VBA kiest het juiste tabblad op basis van de naam van de medewerker (B2 in tabblad Urenregistratie per week);
- Wanneer iemand bij een dag de uren invult, dan schrijft hij het totaal van die week (in kolom C) weg naar het tabblad Urenreg. p. maand - "Naam medewerker" (In dit geval Eelco en Joost al aangemaakt);
- Hierbij moet hij volgens mij zoeken naar de regel waarin het onderwerp uit kolom A met elkaar matcht en op basis van weeknummer (B4 in Urenregistratie per week) moet hij de juiste kolom selecteren in Urenreg. p. maand - "Naam medewerker".

Ik weet niet of ik goed zit met het selecteren van het juiste tabblad, of ik de matches en vlookup's goed heb en of ik wel op een juiste manier heb aangegeven uit welke cel vba de waarde moet halen. Kortom: HELP! :d

De code die ik nu heb is:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application.ScreenUpdating = False
Dim week As Range
Dim werkblad As Range
If Not Intersect(Target, Range("D8:H" & Rows.Count)) Is Nothing Then
    week = Range("B4")
    werkblad = Sheets("Urenreg. p. maand - " & [B2])
    With Sheets(werkblad)
        .Cells(WorksheetFunction.VLookup(Target.Offset(0, "A"), .Range("A24:A" & Rows.Count), 1, 1), WorksheetFunction.Match(week, .Range("D23:BD23"), 0)) = Target.Offset(0, "C")
    End With
End If
End Sub

Bekijk bijlage Test.xlsm

Alvast bedankt voor jullie hulp!

Groeten,

Joost
 
Wel een mooie opzet gevonden de code berekent inderdaad netjes het weeknummer. Om je een andere richting in te "duwen" verzamel alle urenstaatjes van iedereen in één tabel en ga van daaruit verder werken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan