Prendre en considération la dernièe ligne dans une macro

aziz_alg80 Messages postés 382 Date d'inscription   Statut Membre Dernière intervention   -  
aziz_alg80 Messages postés 382 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Avec vous un débutant en VBA...

Afin d'automatiser le traitement d'un certain nombre de données extraites d'un logiciel chaque jours sous forme de fichier Excel, j'ai pu enregistrer une macro qui enregistre (entre autres) la saisie dans la colonne "E" (avec en-tête E1: Montant) de la formule " =C1*D1"

Après la saisie de cette formule dans E1 j'ai double cliqué sur son coin inférieur droit pour que ça se recopie sur l'ensemble des lignes

J'ai eu sur l'éditeur de code cette instruction :

ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]" ' la sisie de la formules
Range("E2").Select ' la sélection de E1
Selection.AutoFill Destination:=Range("E2:E16") ' la recopie avec le coin inférieur droit ( la dernière ligne étant ligne 16.)

En fait, les fichiers que j'extrais chaque jour comprennent entre 6000 et 8000 lignes.

Ma question est :

comment introduire la dernière ligne dans ma macro pour chaque fichier afin de balayer toutes les lignes sans plus ni moins?

autrement :

Que dois-je insérer dans ma macro pour que mon traitement touche exactement mes données sans que je sorte de la plage ni que j'élimine d'autres?

J'espère avoir été clair, et merci pour votre attention.


Configuration: Windows / Firefox 70.0
A voir également:

1 réponse

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Dernier cellule non vide colonne E:

derlig = Range("E" & Rows.Count).End(xlUp).Row
0
aziz_alg80 Messages postés 382 Date d'inscription   Statut Membre Dernière intervention   22
 
Merci bien pour ton intervention.
Finalement le code est :

Sub Macro_DCD()
Dim derlig As Integer

Range("A1").Select
derlig = Range("A" & Rows.Count).End(xlUp).Row

Range("E1").Select
ActiveCell.FormulaR1C1 = "Montant"

Range("E2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
Range("E2").Select
Selection.AutoFill Destination:=Range("E2:E" & derlig)
Range("F1").Select

End Sub


Encore une fois merci
0