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

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

1 réponse

  1. Bonjour,

    Dernier cellule non vide colonne E:

    derlig = Range("E" & Rows.Count).End(xlUp).Row
    0
    1. 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