Besoin d'aide sur formule VBA

Marine -  
 Marine -
Bonjour,

Ce petit message en espérant que quelqu'un pourra me venir en aide.
Ma question porte sur Excel VBA.
Voilà, j'ai une bonne maîtrise d'Excel mais je débute en macro VBA. J'utilise donc beaucoup l'enregistreur de macro mais celui-ci m'obligeà revoir le code trés souvent...
J'ai donc un classeur Excel qui comporte tjrs le même nombre de colonnes mais dont le nombre de lignes peut varier.
Mon soucis est que dans mon tableau Excel j'insére une colonne pour calculer l'âge, le calcul se fait bien mais vu que sur le fichier qui m'a permis de créer cette macro j'ai 4114 lignes, la formule de ma macro s'éxécute tjrs sur ces 4114 lignes même lorsque mon tableau fait 50 lignes.
En bref, je souhaite modifier mon code afin que celui-ci recopie la formule uniquement jusque la dernière ligne pleine de mon tableau.
Le cas échéant je suis obligée de changer le code à chaque fois en fonction du nombre de ligne du tableau ou doit s'éxécuter la macro (s'il fait 20 lignes, je dois mettre 20, s'il en fait 65536, je mets 65536, etc..).
Selection.AutoFill Destination:=Range("AB2:AB4114")
Range("AB2:AB4114").Select
J'espère que quelqu'un aura la solution. Grand merci par avance.
Marine.

Voici le bout de code concerné :


Sub test()
'
' test Macro
' Macro enregistrée le 25/12/2009 par Marine
'

'
Columns("AB:AB").Select
Selection.Insert Shift:=xlToRight
Range("AB1").Select
ActiveCell.FormulaR1C1 = "Age"
Range("AB2").Select
ActiveCell.FormulaR1C1 = "=DATEDIF(RC[-1],TODAY(),""y"")"
Range("AB2").Select
Selection.NumberFormat = "#,##0"" ans"""
Selection.AutoFill Destination:=Range("AB2:AB4114")
Range("AB2:AB4114").Select
End Sub
A voir également:

2 réponses

lami20j
 
Salut,

Si j'ai bien compris les dates de naissance se trouvent dans la colonne AA à partir de la ligne 2

Essaie comme ça

Sub test()
'
' test Macro
' Macro enregistrée le 25/12/2009 par Marine
'

'
Columns("AB:AB").Select
Selection.Insert Shift:=xlToRight
Range("AB1").Select
ActiveCell.FormulaR1C1 = "Age"
Range("AB2").Select
ActiveCell.FormulaR1C1 = "=DATEDIF(RC[-1],TODAY(),""y"")"
Range("AB2").Select
Selection.NumberFormat = "#,##0"" ans"""
Selection.AutoFill Destination:=Range("AB2:AB" & Range("AA2").End(xlDown).Row)

End Sub
0
Marine
 
Bonjour et merci. Cela fonctionne à merveille. Je savais que je trouverai ici quelqu'un de sympa pour m'aider.
Merci encore de m'avoir répondu et de ton aide, o combien précieuse ! Bonnes fêtes.
Marine.
0