Microsoft 365 vba - appliquer un formula local sur une plage filtrée

douguy

XLDnaute Junior
Bonjour à tous

J'ai besoin de vos lumières éclairées pour un cas sur une macro.

J'ai un tableau avec des valeurs importées d'un autre onglet
J'ai un autre tableau au dessus pour appliquer des variations aux valeurs importées précedement
j'utilise le code ci dessous qui fonctionne ( à défaut d'être élégant )
Très simplement je fais un formula local pour toute les cellule de la première ligne puis autofill jusqu'en bas.

maintenant si j'applique des filtres sur le tableau j'aimerais améliorer ce code pour que l'autofill ne se fasse que sur les lignes filtrées en excluant les lignes masquées.
j'ai trouvé cette conversation https://excel-downloads.com/threads/vba-excel-parcourir-zone-filtree.25640/
qui semble pouvoir s'adapter mais je ne sais pas comment! une idée?

Un grand merci à vous qui regarderez

VB:
Sub calculvariables()

Application.ScreenUpdating = False

Worksheets("mix jt-mois").Visible = True

Dim cel As Range
For Each cel In Range(ActiveCell.Offset(1, 0), Cells(65536, ActiveCell.Column))
If cel.EntireRow.Hidden = False Then
cel.Select
Exit Sub
End If
Next cel

'applique la formule de variation en A26 AQ26
Range("H26").FormulaLocal = "='mix jt-mois'!H3+INDEX('Mix Cible'!$H$15:$Y$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!H$25;'Mix Cible'!$H$14:$Y$14;0))"
Range("i26").FormulaLocal = "='mix jt-mois'!i3+INDEX('Mix Cible'!$H$15:$Y$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!i$25;'Mix Cible'!$H$14:$Y$14;0))"
Range("j26").FormulaLocal = "='mix jt-mois'!j3+INDEX('Mix Cible'!$H$15:$Y$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!j$25;'Mix Cible'!$H$14:$Y$14;0))"
Range("k26").FormulaLocal = "='mix jt-mois'!k3+INDEX('Mix Cible'!$H$15:$Y$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!k$25;'Mix Cible'!$H$14:$Y$14;0))"
Range("l26").FormulaLocal = "='mix jt-mois'!l3+INDEX('Mix Cible'!$H$15:$Y$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!l$25;'Mix Cible'!$H$14:$Y$14;0))"
Range("m26").FormulaLocal = "='mix jt-mois'!m3+INDEX('Mix Cible'!$H$15:$Y$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!m$25;'Mix Cible'!$H$14:$Y$14;0))"
Range("n26").FormulaLocal = "='mix jt-mois'!n3+INDEX('Mix Cible'!$H$15:$Y$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!n$25;'Mix Cible'!$H$14:$Y$14;0))"
Range("o26").FormulaLocal = "='mix jt-mois'!o3+INDEX('Mix Cible'!$H$15:$Y$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!o$25;'Mix Cible'!$H$14:$Y$14;0))"
Range("p26").FormulaLocal = "='mix jt-mois'!p3+INDEX('Mix Cible'!$H$15:$Y$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!p$25;'Mix Cible'!$H$14:$Y$14;0))"
Range("q26").FormulaLocal = "='mix jt-mois'!q3+INDEX('Mix Cible'!$H$15:$Y$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!q$25;'Mix Cible'!$H$14:$Y$14;0))"
Range("r26").FormulaLocal = "='mix jt-mois'!r3+INDEX('Mix Cible'!$H$15:$Y$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!r$25;'Mix Cible'!$H$14:$Y$14;0))"
Range("s26").FormulaLocal = "='mix jt-mois'!s3+INDEX('Mix Cible'!$H$15:$Y$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!s$25;'Mix Cible'!$H$14:$Y$14;0))"
Range("t26").FormulaLocal = "='mix jt-mois'!t3+INDEX('Mix Cible'!$H$15:$Y$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!t$25;'Mix Cible'!$H$14:$Y$14;0))"
Range("u26").FormulaLocal = "='mix jt-mois'!u3+INDEX('Mix Cible'!$H$15:$Y$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!u$25;'Mix Cible'!$H$14:$Y$14;0))"
Range("v26").FormulaLocal = "='mix jt-mois'!v3+INDEX('Mix Cible'!$H$15:$Y$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!v$25;'Mix Cible'!$H$14:$Y$14;0))"
Range("w26").FormulaLocal = "='mix jt-mois'!w3+INDEX('Mix Cible'!$H$15:$Y$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!w$25;'Mix Cible'!$H$14:$Y$14;0))"
Range("x26").FormulaLocal = "='mix jt-mois'!x3+INDEX('Mix Cible'!$H$15:$Y$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!x$25;'Mix Cible'!$H$14:$Y$14;0))"
Range("y26").FormulaLocal = "='mix jt-mois'!y3+INDEX('Mix Cible'!$H$15:$Y$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!y$25;'Mix Cible'!$H$14:$Y$14;0))"

Range("z26").FormulaLocal = "='mix jt-mois'!AR3*(1+INDEX('Mix Cible'!$Z$15:$AQ$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!Z$25;'Mix Cible'!$Z$14:$AQ$14;0)))"
Range("aa26").FormulaLocal = "='mix jt-mois'!As3*(1+INDEX('Mix Cible'!$Z$15:$AQ$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!aa$25;'Mix Cible'!$Z$14:$AQ$14;0)))"
Range("ab26").FormulaLocal = "='mix jt-mois'!At3*(1+INDEX('Mix Cible'!$Z$15:$AQ$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!ab$25;'Mix Cible'!$Z$14:$AQ$14;0)))"
Range("ac26").FormulaLocal = "='mix jt-mois'!Au3*(1+INDEX('Mix Cible'!$Z$15:$AQ$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!ac$25;'Mix Cible'!$Z$14:$AQ$14;0)))"
Range("ad26").FormulaLocal = "='mix jt-mois'!Av3*(1+INDEX('Mix Cible'!$Z$15:$AQ$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!ad$25;'Mix Cible'!$Z$14:$AQ$14;0)))"
Range("ae26").FormulaLocal = "='mix jt-mois'!Aw3*(1+INDEX('Mix Cible'!$Z$15:$AQ$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!ae$25;'Mix Cible'!$Z$14:$AQ$14;0)))"
Range("af26").FormulaLocal = "='mix jt-mois'!Ax3*(1+INDEX('Mix Cible'!$Z$15:$AQ$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!af$25;'Mix Cible'!$Z$14:$AQ$14;0)))"
Range("ag26").FormulaLocal = "='mix jt-mois'!Ay3*(1+INDEX('Mix Cible'!$Z$15:$AQ$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!ag$25;'Mix Cible'!$Z$14:$AQ$14;0)))"
Range("ah26").FormulaLocal = "='mix jt-mois'!Az3*(1+INDEX('Mix Cible'!$Z$15:$AQ$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!ah$25;'Mix Cible'!$Z$14:$AQ$14;0)))"
Range("ai26").FormulaLocal = "='mix jt-mois'!bz3*(1+INDEX('Mix Cible'!$Z$15:$AQ$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!ai$25;'Mix Cible'!$Z$14:$AQ$14;0)))"
Range("aj26").FormulaLocal = "='mix jt-mois'!bb3*(1+INDEX('Mix Cible'!$Z$15:$AQ$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!aj$25;'Mix Cible'!$Z$14:$AQ$14;0)))"
Range("ak26").FormulaLocal = "='mix jt-mois'!bc3*(1+INDEX('Mix Cible'!$Z$15:$AQ$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!ak$25;'Mix Cible'!$Z$14:$AQ$14;0)))"
Range("al26").FormulaLocal = "='mix jt-mois'!bd3*(1+INDEX('Mix Cible'!$Z$15:$AQ$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!al$25;'Mix Cible'!$Z$14:$AQ$14;0)))"
Range("am26").FormulaLocal = "='mix jt-mois'!be3*(1+INDEX('Mix Cible'!$Z$15:$AQ$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!am$25;'Mix Cible'!$Z$14:$AQ$14;0)))"
Range("an26").FormulaLocal = "='mix jt-mois'!bf3*(1+INDEX('Mix Cible'!$Z$15:$AQ$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!an$25;'Mix Cible'!$Z$14:$AQ$14;0)))"
Range("ao26").FormulaLocal = "='mix jt-mois'!bg3*(1+INDEX('Mix Cible'!$Z$15:$AQ$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!ao$25;'Mix Cible'!$Z$14:$AQ$14;0)))"
Range("ap26").FormulaLocal = "='mix jt-mois'!bh3*(1+INDEX('Mix Cible'!$Z$15:$AQ$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!ap$25;'Mix Cible'!$Z$14:$AQ$14;0)))"
Range("aq26").FormulaLocal = "='mix jt-mois'!bi3*(1+INDEX('Mix Cible'!$Z$15:$AQ$21;EQUIV($C26;'Mix Cible'!$C$15:$C$21;0);EQUIV('Mix Cible'!aq$25;'Mix Cible'!$Z$14:$AQ$14;0)))"

'tire le range A26 Aq26 vers le bas
Range("h26:aq26").AutoFill Destination:=Range("h26:aq613"), Type:=xlFillformula

'copie le format de mix-JT et applique an A24:Aq613
    Sheets("mix jt-mois").Select
    Range("H3:aq590").Select
    Selection.Copy
    Sheets("Mix Cible").Select
    Range("H26").Select
    Selection.PasteSpecial Paste:=xlPasteFormats
      
    Worksheets("mix jt-mois").Visible = False
    
Call calcul
[/CODE]
 

vgendron

XLDnaute Barbatruc
Bonjour
la question est:
pourquoi tu ne veux pas appliquer la formule sur les lignes masquées?
vu qu'elles sont masquées.. qu'est ce que ca peut bien faire que tu appliques une formule?
Sinon, sans ton fichier, on ne va pas pouvoir t'aider plus..
 

Discussions similaires

Réponses
1
Affichages
1 K

Membres actuellement en ligne

Statistiques des forums

Discussions
314 708
Messages
2 112 097
Membres
111 416
dernier inscrit
philipperoy83