Etirer une formule sur plusieurs colonnes en VBA

  • Initiateur de la discussion Initiateur de la discussion grhum29
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

grhum29

XLDnaute Junior
Bonjour,

Je travaille actuellement sur un fichier Excel qui importe un fichier CSV dans un premier temps puis traite les données dans différents tableaux via du code VBA.

Et c'est là que mon problème commence :

J'ai un tableau avec plusieurs colonnes et lignes qui doit se remplir avec une formule écrite en VBA.


Code:
    ' Récupération des consommations moyennes des véhicules
    Set PlgRé2 = Feuil1.[A16].Resize(Feuil1.[A65000].End(xlUp).Row - 15, 7)
    PlgRé2.Columns(2).FormulaR1C1 = "=IFERROR(((SUMIFS(R2C12:R9C12,R2C3:R9C3,RC1,R2C4:R9C4,R15C)*100)/(SUMIFS(R2C10:R9C10,R2C3:R9C3,RC1,R2C4:R9C4,R15C))),""0,00"")"


Le code ci-dessus me remplit bien la colonne B mais pas les colonnes C et D donc pour le moment j'utilise le code ci-dessous pour étirer ma formule et remplir mes colonnes C et D :


Code:
    LFinD = Feuil1.[B65000].End(xlUp).Row

        Range("B16:B" & LFinD & "").Select
       Selection.AutoFill Destination:=Range("B16:D" & LFinD & ""), Type:=xlFillDefault



Le problème est que le tableau ci-dessus est un import d'un fichier CSV et donc le nombre de lignes et de colonnes à calculer dans mon 2ème tableau peut varier. C'est donc là que le code ci-dessous a des limites car je m'arrête à la colonne D.

Ma question est donc de savoir comment je peux passer en variable le nombre de colonnes où il faut que ma formule se calcule?

Je vous mets en pièce jointe un exemple pour que ce soit plus clair.

Merci de votre aide car là je bloque malgré mes recherches faites sur le net et mes différentes tentatives...

Grhum29
 

Pièces jointes

Re : Etirer une formule sur plusieurs colonnes en VBA

Bonsoir grhum29, bonsoir le forum,

peut-être en modifiant ton code comme suit :

LFinD = Sheets("Feuil1").Range("B15").End(xlDown).Row
LFinlg = Sheets("Feuil1").Range("B15").End(xlToRight).Column


Range(Cells(16, 2), Cells(LFinD, 2)).Select
Selection.AutoFill Destination:=Range(Cells(16, 2), Cells(LFinD, LFinlg)), Type:=xlFillDefault
Bonne nuit
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
1 K
Retour