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 47 48
| Sub newligne()
Dim fechant As Worksheet, rap As Worksheet
Dim echant As Range, c As Range, rdate As Range
Dim ligne As Integer, der As Integer
Dim archi As Date
Application.ScreenUpdating = False
Set rap = Worksheets("Rapport 1") 'pour les dates
Set fechant = Worksheets("Echantillon analyse")
Set echant = fechant.Range(fechant.Range("A4"), fechant.Range("A4").End(xlDown))
der = echant.Count
echant = Range(fechant.Cells(1, 1), fechant.Cells(der, 5))
echant.Clear 'effacement des lignes en gardant la première
Set echant = fechant.Range("A3:E3") '1ère ligne
fechant.Range("A3").Select
fechant.Range("A3").Copy
fechant.Range("A3").Calculate
fechant.Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False 'copy du 1er alea
For ligne = 4 To fechant.Cells(1, 3).Value + 2 'parcours des lignes
'copie de ligne
With echant
.Copy
fechant.Range("A" & CStr(ligne)).Select
fechant.Paste 'copy ligne
Application.CutCopyMode = False
fechant.Range("A" & CStr(ligne)).Copy 'copy alea
fechant.Range("B" & CStr(ligne)).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
'élimination des dates vides
der = rap.Range(rap.Range("D2"), rap.Range("D2").End(xlDown)).Count + 1
Set rdate = Range(rap.Cells(2, 4), rap.Cells(der, 8))
archi = Application.WorksheetFunction.VLookup(fechant.Cells(ligne, 2), rdate, 5, VRAI)
If archi = 0 Then ligne = ligne - 1
Next ligne
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.Calculate
End Sub |
Partager