Sub AutoFill()
Dim x As Long
Dim y As Long
Dim lastrow As Long
Dim lastcolumn As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
lastcolumn = ActiveSheet.UsedRange.Column - 1 + ActiveSheet.UsedRange.Columns.Count
lastrow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
For x = 2 To lastrow
If Cells(x, 2).Value = "" Then
Cells(x, 2).Value = Cells(x - 1, 2).Value
Cells(x, 3).Value = Cells(x - 1, 3).Value
Cells(x, 5).Value = Cells(x - 1, 5).Value
End If
Next x
Application.ScreenUpdating = True
End Sub
Avec le code ci-dessus Mes cellules sont remplies, mais la dernière ligne se remplit jusqu'à la fin de la feuille Excel. Dans la feuille Excel, la colonne D
est déjà renseignée. La colonne B
C
& E
doit être remplie automatiquement. Quels devraient être les changements dans le code?Cellule de remplissage automatique dans Excel VBA Macro
pourquoi 'ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count' ?? http: //stackoverflow.com/questions/71180/how-can-i-find-last-row- that-contains-data-in-the-excel-sheet-with-a-macro – cyboashu
Votre code fonctionne selon vos besoins sur mon pc. [Check] (https://www.dropbox.com/s/kg380esjoyxb0o9/autofill_sample.xlsm?dl=0) – skkakkar
Pour lastRow, je comparerais plutôt vos trois colonnes, et j'obtiendrais la dernière rangée à partir de là. '' UsedRange', d'après mon expérience, n'utilise pas toujours la gamme que je m'attendais. 'lastRow = Max (cellules (rows.count, 2) .End (xlUp) .Row, cellules (rows.count, 3) .End (xlUp) .Row, cells (rows.count, 5) .End (xlUp) .Row' * ou * 'LastRow = Cells.Find (" * ", searchorder: = xlByRows, searchdirection: = xlPrevious) .Row' – BruceWayne