1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
   | Sub ReporterV2()
 
Dim dest As Worksheet, origine As Worksheet
Dim LastLig As Long, NewLig As Long
Dim c As Range
Dim valeur As String
Dim vérification As Variant
 
Set origine = Workbooks("2010 STD Activities status.xls").Sheets("2010")
valeur = InputBox("Entrée période", "Choix de la période")
If valeur <> "" Then
    Application.ScreenUpdating = False
    With origine
        .AutoFilterMode = False
        LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
        With .Range("A4:X" & LastLig)
            .AutoFilter field:=17, Criteria1:=valeur
            .AutoFilter field:=24, Criteria1:=">0"
            .AutoFilter field:=9, Criteria1:="STD"
        End With
     vérification = Getrangegoal("A:A",,)
        If .Range("A4:A" & LastLig).SpecialCells(xlCellTypeVisible).Count > 1 Then
            Set dest = Worksheets("std")
            NewLig = dest.Cells(dest.Rows.Count, "A").End(xlUp).Row + 1
            For Each c In .Range("A5:A" & LastLig).SpecialCells(xlCellTypeVisible)
                If c.Offset(0, 23).Font.Color = vbBlue Then
                    dest.Cells(NewLig, 1).Value = .Cells(c.Row, 2).Value
                    dest.Cells(NewLig, 2).Value = .Cells(c.Row, 7).Value
                    dest.Cells(NewLig, 3).Value = .Cells(c.Row, 8).Value
                    dest.Cells(NewLig, 6).Value = .Cells(c.Row, 10).Value
                    dest.Cells(NewLig, 8).Value = .Cells(c.Row, 12).Value
                    dest.Cells(NewLig, 17).Value = .Cells(c.Row, 17).Value
                    dest.Cells(NewLig, 13).Value = .Cells(c.Row, 24).Value
                    dest.Cells(NewLig, 9).Value = .Cells(c.Row, 9).Value
                    dest.Cells(NewLig, 10).Value = .Cells(c.Row, 29).Value
                    dest.Cells(NewLig, 4).Value = UCase(dest.Cells(NewLig, 1).Value) & UCase(dest.Cells(NewLig, 2).Value)
                    dest.Cells(NewLig, 4).Value = Replace(Cells(NewLig, 3).Value, " ", "")
                    NewLig = NewLig + 1
                End If
            Next c
            Set dest = Nothing
            .AutoFilterMode = False
        End If
    End With
End If
End Sub | 
Partager