Avatar billede mfj1 Nybegynder
28. januar 2003 - 22:11 Der er 14 kommentarer og
1 løsning

Kan makroen vælge bestemte data

Jeg har en fil >>Opgørelse<< med et ark >>Opgørelse2003<<.
Ved hjælp af følgende Makro hentes der ugentligt i løbet af året data fra en række lukkede filer/mapper:

Stub OPGØRELSE_Makro()
    s = "Opgørelse" ' faneblad
    Application.ScreenUpdating = False
      For tæller = 1 To 52 'uger
        For c = 2 To 4 ' kolonner
            For r = 8 To 27 ' rækker
                    a = Cells(r, c).Address
                    p = "O:\AS\Ugeseddel_30_52\Uge" & Format(tæller, "00")
                    f = Format(tæller, "00") & "sim2002.xls"
                    Cells(r, c + tæller + tæller + tæller - 1) = GetValue(p, f, s, a) 'path, file, sheet and ref
            Next r
        Next c
      Next tæller
End Sub

De data Makroen indsamler bliver indsat i Arket >>Opgørelse2003<<
For uge01 bliver dataene indsat i D8:F27
I kolonne D indsættes Projektnr, i kolonne E indsættes Normaltimer og i F Overtimer.
Og det samme gentager sig i uge02 hvor dataene bliver indsat i G8:I27.
I hele arket bliver for alle 52 uger indsat data i D8:FC27.

Jeg har en lille Makro det uge for uge summer Normaltimerne og Overtimerne.

Men nu kommer mit STORE problem, jeg vil gerne kunne summe alle Normaltimerne og alle Overtimerne når Projektnr begynder med b.
Eksempel:

Projektnr  Normaltimer  Overtimer
b123456        30                      21
234567          45                      12
333456          32                      11
b333456        55                        0

Her skulle Makroen i A14 kunne skrive >>85<< og i A15 >>21<<
Er der nogen eksperter der kan hjælpe.

mfj1
28. januar 2003 - 22:20 #1
har du også data i A8-C27 ?
28. januar 2003 - 22:21 #2
for den sagsskyld også i rækkerne 1-7 ? - jeg skal hurtigt fixe den, hvis du sender mig arket. fd@win-consult.com - fortrolighed en selvfølge.
28. januar 2003 - 22:28 #3
Sorry - jeg kan ikke læse - behøver ikke noget - denne her skulle kunne gøre det -  prøv ad:

Sub ProjektSum()
    Dim lCount As Long
    Dim dNormTid As Double
    Dim dOverTid As Long
   
    dNormTid = 0
    dOverTid = 0
    For lCount = 8 To 27
        With Cells(lCount, 4)
            If UCase(Left(.Value, 1) = "B") Then
                dNormTid = dNormTid + CDbl(.Offset(1, 0).Value)
                dOverTid = dvoerTid + CDbl(.Offset(3, 0).Value)
            End If
        End With
    Next lCount
   
    MsgBox "Normaltimer: " & Format(dNormTid, "#,##0.00") & vbCrLf & vbCrLf & _
          "Overtimer: " & Format(dOverTid, "#,##0.00"), _
          vbInformation + vbOKOnly, "Information om B-projekter"
End Sub
Avatar billede mfj1 Nybegynder
28. januar 2003 - 22:40 #4
Flemmingdahl
Filen er sendt
28. januar 2003 - 22:45 #5
Prøv bare overstående først.
Avatar billede mfj1 Nybegynder
28. januar 2003 - 22:58 #6
Flemmingdahl
Det funger, men der vises kun 0,00 Normaltimer og 0,00 Overtimer i MsgBox selv om der står timer ud for Projektnr.
mfj1
Kan resultatet ikke vises fast i celle A14 og B15?
28. januar 2003 - 23:09 #7
Sub ProjektSum()
    Dim lCount As Long
    Dim dNormTid As Double
    Dim dOverTid As Long
   
    dNormTid = 0
    dOverTid = 0
    For lCount = 8 To 27
        With Cells(lCount, 4)
            If UCase(Left(.Value, 1)) = "B" Then
                dNormTid = dNormTid + CDbl(.Offset(0, 1).Value)
                dOverTid = dvoerTid + CDbl(.Offset(0, 2).Value)
            End If
        End With
    Next lCount
   
    MsgBox "Normaltimer: " & Format(dNormTid, "#,##0.00") & vbCrLf & vbCrLf & _
          "Overtimer: " & Format(dOverTid, "#,##0.00"), _
          vbInformation + vbOKOnly, "Information om B-projekter"
End Sub
Avatar billede mfj1 Nybegynder
28. januar 2003 - 23:18 #8
Flemmingdahl
Det funger, men der vises kun resultater for uge01/kolonne E og F
Der er data i både uge02 og uge03.
mfj1
29. januar 2003 - 00:30 #9
Denne her gennemløber alle ugerne, men når den løber ned i rækkerne for den enkelte uge, så stopper den i denne kolonne, hvis ikke den finder et projektnr. og fortsætter så i næste uge.

Sub ProjektSum()
    Const lWeeks As Long = 53
    Const lRowStart As Long = 8
    Const lRowEnd As Long = 27
    Dim lCount As Long
    Dim lCols As Long
    Dim lRows As Long
    Dim dNormTid As Double
    Dim dOverTid As Long
   
    dNormTid = 0
    dOverTid = 0
    For lCount = 0 To lWeeks - 1
        lCols = lCount * 3 + 4
        For lRows = lRowStart To lRowEnd
            With Cells(lRows, lCols)
            If Not (.Value = "") Then
                    If UCase(Left(.Value, 1)) = "B" Then
                        dNormTid = dNormTid + CDbl(.Offset(0, 1).Value)
                        dOverTid = dvoerTid + CDbl(.Offset(0, 2).Value)
                    End If
            Else
                Exit For
            End If
            End With
        Next lRows
    Next lCount
   
    MsgBox "Normaltimer: " & Format(dNormTid, "#,##0.00") & vbCrLf & vbCrLf & _
          "Overtimer: " & Format(dOverTid, "#,##0.00"), _
          vbInformation + vbOKOnly, "Information om B-projekter"
End Sub
Avatar billede mfj1 Nybegynder
29. januar 2003 - 07:55 #10
Flemmingdahl
Jeg har prøvet at teste din sidste Makro, den funger fint og tæller alle de almindelige timer op perfekt, de over timer jeg har skrevet ind i uge 1, 2, 3, 4 og 5 tælles ikke med, men overtimer skrevet ind i uge 41 er talt med.
Jeg sender filen retur.
29. januar 2003 - 09:43 #11
hmm - ja - kan du se stavefejlen på denne linie ?
dOverTid = dvoerTid + CDbl(.Offset(0, 2).Value)

dOverTid = dOverTid + CDbl(.Offset(0, 2).Value)
Avatar billede mfj1 Nybegynder
29. januar 2003 - 10:00 #12
Flemmingdahl
Nu funger det pefekt, det hjælper når der byttes om på v og o i rækkefølgen.

Mange tak for hjælpen.
mfj1.
Avatar billede mfj1 Nybegynder
29. januar 2003 - 10:25 #13
Flemmingdahl
Det funger, tilføjer flere end de 27 overtimer og nomaltimer tælles de ikke med, men sletter jeg f.eks. 3 timer viser den, som den skal at nu er der 24 timer.
Ændre jeg nogle af de tal der er indtastet i de celler der er talt med tæller Makroen de nye værdier med. Det er underligt??
mfj1
Avatar billede mfj1 Nybegynder
29. januar 2003 - 14:21 #14
nu funger Makroen perfekt i alle situationer, jeg tog simpel hen og smed den over i en ny  opgørelse fil.

Tak, for hjælpen.
mfj1
29. januar 2003 - 14:41 #15
Fino :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester