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

aziz_alg80 Messages postés 427 Statut Membre -  
aziz_alg80 Messages postés 427 Statut Membre -
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. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Dernier cellule non vide colonne E:

    derlig = Range("E" & Rows.Count).End(xlUp).Row
    0
    1. aziz_alg80 Messages postés 427 Statut Membre 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