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 
	 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		