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

Fermé
aziz_alg80 Messages postés 383 Date d'inscription vendredi 12 février 2010 Statut Membre Dernière intervention 3 juin 2024 - Modifié le 12 nov. 2019 à 06:53
aziz_alg80 Messages postés 383 Date d'inscription vendredi 12 février 2010 Statut Membre Dernière intervention 3 juin 2024 - 12 nov. 2019 à 21:40
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 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 708
12 nov. 2019 à 07:42
Bonjour,

Dernier cellule non vide colonne E:

derlig = Range("E" & Rows.Count).End(xlUp).Row
0
aziz_alg80 Messages postés 383 Date d'inscription vendredi 12 février 2010 Statut Membre Dernière intervention 3 juin 2024 22
12 nov. 2019 à 21:40
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