Új hozzászólás Aktív témák

  • Delila_1

    Topikgazda

    válasz Pulsar #5702 üzenetére

    Ötször hajtod végig az összes adaton a makrót, pedig egyszer is elég lenne. A feltételek vizsgálata is időigényes művelet. Amit lehet, be kell zsúfolni egy ciklusba.
    A 3 feltétel közül kettő azonos, ezeket elég 1-szer vizsgálni soronként.
    Kétféle módon írtam át, az egyikben If-ek figyelik az adatokat, a másikban a többszörös elágazásra szolgáló Select Case.

    Sub visual_11()
    Sheets("IDE_MASOLD").Select
    filteregy = Range("Data!C23").Text
    Dim sor, q, w, x, y, z, adat
    q = 0: w = 0: x = 0: y = 0: z = 0
    For sor = 1 To ActiveSheet.UsedRange.Rows.Count
    adat = Cells(sor, 13)
    If Cells(sor, 4) = filteregy And Cells(sor, 17) = "Visual Inspection - OOW" Then
    If adat = " 1-10" Then q = q + 1
    If adat = "11-20" Then w = w + 1
    If adat = "21-30" Then x = x + 1
    If adat = "31-60" Then y = y + 1
    If adat = "61- " Then z = z + 1
    End If
    Next
    Sheets("Data").Cells(25, 2) = q
    Sheets("Data").Cells(26, 2) = w
    Sheets("Data").Cells(27, 2) = x
    Sheets("Data").Cells(28, 2) = y
    Sheets("Data").Cells(29, 2) = z
    End Sub


    Sub visual_Case()
    Sheets("IDE_MASOLD").Select
    filteregy = Range("Data!C23").Text
    Dim sor, q, w, x, y, z, adat
    q = 0: w = 0: x = 0: y = 0: z = 0

    For sor = 1 To ActiveSheet.UsedRange.Rows.Count
    If Cells(sor, 4) = filteregy And Cells(sor, 17) = "Visual Inspection - OOW" Then
    adat = Cells(sor, 13)
    Select Case adat
    Case " 1-10"
    q = q + 1
    Case "11-20"
    w = w + 1
    Case "21-30"
    x = x + 1
    Case "31-60"
    y = y + 1
    Case "61- "
    z = z + 1
    End Select
    End If
    Next
    Sheets("Data").Cells(25, 2) = q
    Sheets("Data").Cells(26, 2) = w
    Sheets("Data").Cells(27, 2) = x
    Sheets("Data").Cells(28, 2) = y
    Sheets("Data").Cells(29, 2) = z
    End Sub

    Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

Új hozzászólás Aktív témák