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

  • Initiateur de la discussion Initiateur de la discussion Akortys
  • 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 !

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:
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.
 
- 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
1
Affichages
685
Réponses
9
Affichages
1 K
Retour