Identification dernière ligne
Bonjour,
Je ne trouve pas alors je vous demande un peu d'aide.
Ce que je fais:
1/ je travaille un peu mes données dans la sheet FEUILLE1 (on va dire 10 000 lignes)
2/ j'appliquer un filtre sur ces données (il reste 2 000 lignes)
3/ je copie ces données filtrées dans une nouvelle sheet FEUILLE2 (on a donc 2000 lignes dans cette nouvelle feuille)
4/ j'ajoute quelques colonnes dans la FEUILLE2
5/ j'opère quelques opérations dans cette FEUILLE2
PB: quand l'opération dans cette FEUILLE2 s'appuie sur la lastrow, le calcul se fait sur les 10 000 lignes.
L'identification de la last row dans la FEUILLE2 semble du coup erronée.
Voici le code:
Code:
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
| Sub AIS_ENG()
lastRow = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Row
Dim i As Long, Cible As String, VL As Variant, Path As String, filename As String
Sheets("FEUILLE1").Select
' suite d'instruction dont je vous passe les détails...
' application d'un tri pour sélectionner certaines données
Worksheets("FEUILLE1").Range("A:T").AutoFilter Field:=1, Criteria1:="LAST", Operator:=xlFilterValues
' ajout de la sheet FEUILLE2
Sheets.Add(After:=Worksheets("FEUILLE1")).Name = "FEUILLE2"
' copier / coller des données filtrées depuis la sheet FEUILLE1
Worksheets("FEUILLE1").Range("B:E").SpecialCells(xlCellTypeVisible).Copy
Worksheets("FEUILLE2").Range("A1").PasteSpecial Paste:=xlPasteValues
Worksheets("FEUILLE1").AutoFilterMode = False
' ajout de colonnes supplémentaires dans feuille2
Sheets("FEUILLE2").Select
Cells(1, 6).Value = "CODE1"
Cells(1, 7).Value = "CODE2"
Cells(1, 10).Value = "DATE"
' remplissage colonne CODE1
For i = lastRow To 2 Step -1
Cells(i, 6) = Mid(Cells(i, 3), 15, 3)
Next i
' remplissage colonne CODE2
VL = Application.IfError(Application.VLookup(Range("A2:A" & lastRow), Sheets("FEUILLE1").Range("B:L"), 11, 0), "")
Range("G2:G" & lastRow).Value = VL
' remplissage colonne DATE
VL = Application.VLookup(Range("A2:A" & lastRow), Sheets("FEUILLE1").Range("B:N"), 13, 0)
For i = lastRow To 2 Step -1
If CStr(Cells(i, 1).Value) Like "*V" Then
Cells(i, 10).Value = VL
Else
Cells(i, 10).Value = "Null"
End If
Next i
End Sub |
D'avance merci pour votre retour.
Camzo