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
[/CODE]
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