macro pour appliquer une formule au nombre de lignes

Arnaudenbesoindaide

XLDnaute Nouveau
Bonjour,

Je suis débutant en macro et j'ai donc opté pour la macro enregistrée afin d'automatiser un fichier hebdomadaire de performance de livraisons.

La macro tourne, il n'y a pas de problème. En revanche, je me suis aperçu que j'ai fait une erreur au tout début de la macro. Je m'explique:

Je souhaite, dans l'onglet "recap par Vin", tirer mes lignes de formules présentes de la colonne "S" à la colonne "AC" jusqu'en bas du fichier. L'objectif est d'appliquer ces formules au nombre de lignes présentes dans les colonnes "A" à "R", sachant que ce nombre varie toutes les semaines. A noter que les données présentes dans les colonnes "A" à "R" sont collées toutes les semaines.

La macro que j'ai enregistrée tire bien les formules pour le données que j'ai collé la semaine dernière, mais ça va planter pour cette semaine et les semaines suivantes en raison du nombre de lignes qui sera différent.

Pour illustrer le début de la macro ( désolé, je ne peux pas vous mettre le fichier en PJ, trop lourd même zippé...):

Sub graph()
'
' graph Macro
'
' Touche de raccourci du clavier: Ctrl+k
'
Sheets("recap par VIN").Select
Range("S2:AC2").Select
Selection.AutoFill Destination:=Range("S2:AC5993")
Range("S2:AC5993").Select

Merci de l'aide que vous pourrez éventuellement m'apporter (je me tire les cheveux!!) :=)

Arnaudenbesoindaide
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : macro pour appliquer une formule au nombre de lignes

Bonsoir Arnaud et bienvenu, bonsoir le forum,

Peut-être comme ça :
Code:
Sub graph()
Dim dl As Long
 
With Sheets("recap par VIN")
    .Select
    dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row
    .Range("S2:AC2").Select
    Selection.AutoFill Destination:=.Range("S2:AC" & dl)
    .Range("S2:AC" & dl).Select
End With
End Sub
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : macro pour appliquer une formule au nombre de lignes

Bonjour Arnaud,


remplace ceci:
Code:
Sheets("recap par VIN").Select
    Range("S2:AC2").Select
    Selection.AutoFill Destination:=Range("S2:AC5993")
par:
Code:
Sheets("recap par VIN").Select
    Range("S2:AC2").Select
    Selection.AutoFill Destination:=Range("S2:AC" & Range("A65535").End(xlUp).Row)
à+
Philippe

Édit: Bonjour Robert
 

kjin

XLDnaute Barbatruc
Re : macro pour appliquer une formule au nombre de lignes

Bonsoir et bienvenue,
Si on se réfère à la dernière ligne de la colonne R pour connaitre la taille du tableau...
Code:
Dim dernièreligne&
With Sheets("recap par VIN")
    dernièreligne = .Range("R65000").End(xlUp).Row 'en remontant
    'dernièreligne = .Range("R2").End(xlDown).Row 'en descedant s'il n'y a pas de vide
    .Range("S2:AC2").AutoFill Destination:=.Range("S2:AC" & dernièreligne), Type:=xlFillDefault
End With

Edit : bouh, ça se poussecul au portillon
...:)

A+
kjin
 
Dernière édition:

Discussions similaires

Réponses
7
Affichages
319

Statistiques des forums

Discussions
314 202
Messages
2 107 159
Membres
109 759
dernier inscrit
Exceller11