[RESOLU] Formule matricielle qui change après déclenchement de macro

Akortys

XLDnaute Occasionnel
Bonjour,

Dans un tableau ("DonneesFour") j'ai une colonne avec la formule matricielle suivante pour chaque cellule :
=SI(ESTERREUR(SI(CountFour!$M44="";0;1/NB.SI.ENS(CountFour!$N$3:$N$564;CountFour!$N44;CountFour!$M$3:$M$564;CountFour!$M44)));0;SI(CountFour!$M44="";0;1/NB.SI.ENS(CountFour!$N$3:$N$564;CountFour!$N44;CountFour!$M$3:$M$564;CountFour!$M44)))

Dés que je passe une de mes macro, il faut que je repasse sur chaque cellule de la colonne pour effectuer :
Restaurer en tant que formule de colonne calculée.

Si je le fais ca passe bien, mais je voudrais qu'il ne me modifie pas le calcul lorsque ma macro passe.

La macro en question :
Sub FormeFournisseur()

Sheets("brut").Select
Cells.Select
Selection.Copy
Sheets("TriBrut").Select
Cells.Select
ActiveSheet.Paste
ActiveWindow.SmallScroll ToRight:=14
Columns("R:R").Select
Application.CutCopyMode = False
Selection.Cut
Columns("A:A").Select
Selection.Insert Shift:=xlToRight
Range("B10").Select

Dim maplage As Range, x As Long, y As Long, z As Integer
'Set maplage = Range("Tribrut").Offset(1, 0).Resize(Range("Tribrut").Rows.Count - 1, Range("Tribrut").Columns.Count)
Set maplage = Worksheets("Tribrut").Cells(1, 1).CurrentRegion
Set maplage = maplage.Offset(1, 0).Resize(maplage.Rows.Count - 1, maplage.Columns.Count)

With Worksheets(Range("DonneesFour").Parent.Name)
y = .ListObjects("DonneesFour").Range.Row + 1
z = .ListObjects("DonneesFour").Range.Column
x = .ListObjects("DonneesFour").ListRows.Count + y - 1

.Rows(y & ":" & x).Delete Shift:=xlUp
x = .ListObjects("DonneesFour").ListRows.Count + y
maplage.Copy Destination:=.Cells(x, z)
End With

Sheets("CountFour").Select
ActiveWorkbook.Worksheets("CountFour").ListObjects("DonneesFour").Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("CountFour").ListObjects("DonneesFour").Sort. _
SortFields.Add Key:=Range("DonneesFour[[#All],[Code PGI]]"), SortOn:= _
xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("CountFour").ListObjects("DonneesFour").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Worksheets("BILAN").Activate
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh

End Sub

Merci d'avance.
 
Dernière édition:

Akortys

XLDnaute Occasionnel
Re : [RESOLU] Formule matricielle qui change après déclenchement de macro

RE

J'ai trouvé une solution seul, certainement pas la meilleure mais elle fonctionne.

En fait c'est cette partie du code qui modifie mes cellules :
Sheets("CountFour").Select
ActiveWorkbook.Worksheets("CountFour").ListObjects("DonneesFour").Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("CountFour").ListObjects("DonneesFour").Sort. _
SortFields.Add Key:=Range("DonneesFour[[#All],[Code PGI]]"), SortOn:= _
xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("CountFour").ListObjects("DonneesFour").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

J'effectue un tri sur mon tableau ce qui pose problème.
Du coup j'effectue le tri avant import dans la colonne et ça fonctionne.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 203
Membres
103 157
dernier inscrit
youma