• 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.

grotere selectie laten berekenen via macro

Status
Niet open voor verdere reacties.

Spiesse

Gebruiker
Lid geworden
14 jul 2011
Berichten
902
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next
'overslaan cellen
'If Target.Column = 1 Then Target.Offset(0, 2).Select
'If Target.Column = 3 Then Target.Offset(0, 6).Select
        'uren omzetten
If Not Intersect(Target, Range("c2:d500000")) Is Nothing Then
    If Not IsEmpty(Target) Then
    
    If Hour(Target.Value) = 0 Or Minute(Target.Value) = 0 Then
        Application.EnableEvents = False
            If Int(Target.Value / 100) < 0.1 Then
                Target = "00:" & Target.Value
                Else
                Target = Int(Target.Value / 100) & ":" & Right(Target.Value, 2)
            End If
        Application.EnableEvents = True
        hw = (Target - Target.Offset(, -1)) * 24 - Pause(Target.Offset(, -1), Target, Range("O2:P4")) * 24
        If Target.Column = 4 Then Target.Offset(0, 8) = IIf(hw > 0, Round(hw, 2), "")
        End If
    End If
End If
If Not Intersect(Target, Range("e:e")) Is Nothing Then
    Target.NumberFormat = "General"
    Application.EnableEvents = False
    Target = CDate(Left(Format(CStr(Target.Value), "0000"), 2) & "-" & Right(CStr(Target.Value), 2) & "-" & Year(Date))
For i = Target.Row - 1 To Target.End(xlUp).Row Step -1 'code om de datum naar boven op automatisch in te vullen
If Cells(i, "e").Value = "" Then Cells(i, "e").FillUp
Next
    Application.EnableEvents = True
Application.Goto (Cells(Rows.Count, "A").End(xlUp).End(xlUp).Offset(1, 0))

End If


ActiveCell.Calculate

End Sub

hey guys,

de bovenstaande code berekent in een bestand van uurregistratie hoeveel uren verschil er zitten tussen begin- en einduur, rekening houdend met bepaalde pauzes. nu is het zo dat het bestand iets anders ingevuld wordt.

bij testen werkt de bovenstaande macro enkel met invoer per rij... in het bestand dat ik nu heb zou een meervoudige selectie moeten kunnen berekend worden... in bijgevoegd bestand vind je wat uitleg... het gaat om kolom c en d... daar zou een meervoudige selectie geplakt worden en deze zou ook moeten berekend worden...

ik vermoed dat er een aanpassing nodig is in de macro, maar god weet waar (moest mijn naam god zijn dan toch) :)

gegroet en succes? :) indien onverstaanbaar uitgelegd hoor ik het wel :)

spiesse

Bekijk bijlage testbestand barcodes uurregistratie Stijn voor EM forum.zip
 
Spiesse,

Ik begrijp helemaal niets van je probleem. Je hebt het over meervoudige selecties, maar waarvan dan?
Worden niet alle pauzes meegenomen of wat bedoel je nu eigenlijk?
Kun je het probleem niet oplossen door meerdere rijen per dag per medewerker in te voeren?

Als je wat duidelijker ben zal ik er eens naar kijken.
 
hey elsendoorn,

in principe wordt het bestand regel per regel ingevoerd. Dus wnnr, automatisch wordt de naam weergegeven door vert.zoeken. dan wordt PO nr ingegeven en ook dit wordt automatisch aangevuld uit andere tabbladen met vert.zoeken. de uren invoeren loopt via de macro: bv starttijd 0755 wordt 07:55, einduur 1645 wordt 16:45. de reden van deze macro is gewoon om de gegevens rapper in te kunnen voeren (rendement verhogen :))

nu is het zo dat de registratie binnen een paar werken via een barcodescanner zal gebeuren, en niet meer met de stylo... via de scanmethode hebben we nu een lijst met de gegevens die ingevoerd moeten worden.
als ik een selectie neem van bv 25 rijen en 2 kolommen met uurgegevens, dan loopt de macro niet... bij invoer per lijn en per cel wel

dus eigenlijk zou de macro ook moeten lopen op een selectie van meerdere rijen met meerdere cellen

is dit iets beter elsendoorn? :)
 
ik ga seffes es een nieuw bestandje posten met betere uitleg :) :) :)

het ligt aan mij guys :)

groeten
spiesse
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan