Bonjour,
Suite à l'échange de mon ordinateur de travail, passage d'un windows 7 pro à windows 10 mais conservation d'Excel 2016 32 bits, plus aucune macro ne fonctionne. Je vous ai mis les 2 captures de l'erreur qui apparait. Puisque aucune macro ne fonctionne, il doit s'agir d'un outils qu'il manque à windows ou excel. Pouvez vous m'aider ?
Exemple avec celle si:
Sub Macro1()
Const MesFeuilles = "BFC;BPL;CENTRE;EST;IDF NORD;IDF SUD;MONTPELLIER;M-PYRENEES;NORD;NORMANDIE;PACA;SDO;SUD EST;BFC DI;BPL DI;CENTRE DI;EST DI;IDF NORD DI;IDF SUD DI;MONTPELLIER DI;M-PYRENEES DI;NORD DI;NORMANDIE DI;PACA DI;SDO DI;SUD EST DI"
Const MesDI = "BFC DI;BPL DI;CENTRE DI;EST DI;IDF NORD DI;IDF SUD DI;MONTPELLIER DI;M-PYRENEES DI;NORD DI;NORMANDIE DI;PACA DI;SDO DI;SUD EST DI"
Const MesBP = "BFC;BPL;CENTRE;EST;IDF NORD;IDF SUD;MONTPELLIER;M-PYRENEES;NORD;NORMANDIE;PACA;SDO;SUD EST"
Dim xfeuil, t0 As Double
'Heure départ
t0 = Timer
Application.ScreenUpdating = False
' passage en calcul sur ordre
Application.Calculation = xlCalculationManual
'si error, on saute à FIN: pour remette le calcul en automatique
On Error GoTo FIN
' Rafraichir tableau croisé dynamique
Sheets("BP par DR et par CF").PivotTables("Tableau croisé dynamique4").PivotCache.Refresh
Sheets("BP par DR et par Site").PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
' on recalcule le classeur
Calculate
' Décocher vide
For Each xfeuil In Split(MesFeuilles, ";")
Sheets(xfeuil).Range("$A$8:$P$44").AutoFilter Field:=2
Sheets(xfeuil & ".").Range("$A$8:$P$44").AutoFilter Field:=2
Next xfeuil
' Filtre du plus petit au plus grand au % de réalisation
For Each xfeuil In Split(MesBP, ";")
With Sheets(xfeuil)
.AutoFilter.Sort.SortFields.Clear
.AutoFilter.Sort.SortFields.Add Key:=Range("M8:M44"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With .AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
With Sheets(xfeuil & ".")
.AutoFilter.Sort.SortFields.Clear
.AutoFilter.Sort.SortFields.Add Key:=Range("M8:M500"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With .AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
Next xfeuil
For Each xfeuil In Split(MesDI, ";")
With Sheets(xfeuil)
.AutoFilter.Sort.SortFields.Clear
.AutoFilter.Sort.SortFields.Add Key:=Range("L8:L44"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With .AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
With Sheets(xfeuil & ".")
.AutoFilter.Sort.SortFields.Clear
.AutoFilter.Sort.SortFields.Add Key:=Range("L8:L500"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With .AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
Next xfeuil
' Décocher vide
For Each xfeuil In Split(MesFeuilles, ";")
Sheets(xfeuil).Range("$A$8:$P$44").AutoFilter Field:=2, Criteria1:="<>"
Sheets(xfeuil & ".").Range("$A$8:$P$500").AutoFilter Field:=2, Criteria1:="<>"
Next xfeuil
FIN:
If Err.Number > 0 Then MsgBox "Erreur n° " & Err.Number & vbLf & Err.Description
Application.Calculation = xlCalculationAutomatic
Application.Goto Sheets("Validation").Range("a1"), True
MsgBox Format(Timer - t0, "0.0 \ sec.")
End Sub
Suite à l'échange de mon ordinateur de travail, passage d'un windows 7 pro à windows 10 mais conservation d'Excel 2016 32 bits, plus aucune macro ne fonctionne. Je vous ai mis les 2 captures de l'erreur qui apparait. Puisque aucune macro ne fonctionne, il doit s'agir d'un outils qu'il manque à windows ou excel. Pouvez vous m'aider ?
Exemple avec celle si:
Sub Macro1()
Const MesFeuilles = "BFC;BPL;CENTRE;EST;IDF NORD;IDF SUD;MONTPELLIER;M-PYRENEES;NORD;NORMANDIE;PACA;SDO;SUD EST;BFC DI;BPL DI;CENTRE DI;EST DI;IDF NORD DI;IDF SUD DI;MONTPELLIER DI;M-PYRENEES DI;NORD DI;NORMANDIE DI;PACA DI;SDO DI;SUD EST DI"
Const MesDI = "BFC DI;BPL DI;CENTRE DI;EST DI;IDF NORD DI;IDF SUD DI;MONTPELLIER DI;M-PYRENEES DI;NORD DI;NORMANDIE DI;PACA DI;SDO DI;SUD EST DI"
Const MesBP = "BFC;BPL;CENTRE;EST;IDF NORD;IDF SUD;MONTPELLIER;M-PYRENEES;NORD;NORMANDIE;PACA;SDO;SUD EST"
Dim xfeuil, t0 As Double
'Heure départ
t0 = Timer
Application.ScreenUpdating = False
' passage en calcul sur ordre
Application.Calculation = xlCalculationManual
'si error, on saute à FIN: pour remette le calcul en automatique
On Error GoTo FIN
' Rafraichir tableau croisé dynamique
Sheets("BP par DR et par CF").PivotTables("Tableau croisé dynamique4").PivotCache.Refresh
Sheets("BP par DR et par Site").PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
' on recalcule le classeur
Calculate
' Décocher vide
For Each xfeuil In Split(MesFeuilles, ";")
Sheets(xfeuil).Range("$A$8:$P$44").AutoFilter Field:=2
Sheets(xfeuil & ".").Range("$A$8:$P$44").AutoFilter Field:=2
Next xfeuil
' Filtre du plus petit au plus grand au % de réalisation
For Each xfeuil In Split(MesBP, ";")
With Sheets(xfeuil)
.AutoFilter.Sort.SortFields.Clear
.AutoFilter.Sort.SortFields.Add Key:=Range("M8:M44"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With .AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
With Sheets(xfeuil & ".")
.AutoFilter.Sort.SortFields.Clear
.AutoFilter.Sort.SortFields.Add Key:=Range("M8:M500"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With .AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
Next xfeuil
For Each xfeuil In Split(MesDI, ";")
With Sheets(xfeuil)
.AutoFilter.Sort.SortFields.Clear
.AutoFilter.Sort.SortFields.Add Key:=Range("L8:L44"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With .AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
With Sheets(xfeuil & ".")
.AutoFilter.Sort.SortFields.Clear
.AutoFilter.Sort.SortFields.Add Key:=Range("L8:L500"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With .AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
Next xfeuil
' Décocher vide
For Each xfeuil In Split(MesFeuilles, ";")
Sheets(xfeuil).Range("$A$8:$P$44").AutoFilter Field:=2, Criteria1:="<>"
Sheets(xfeuil & ".").Range("$A$8:$P$500").AutoFilter Field:=2, Criteria1:="<>"
Next xfeuil
FIN:
If Err.Number > 0 Then MsgBox "Erreur n° " & Err.Number & vbLf & Err.Description
Application.Calculation = xlCalculationAutomatic
Application.Goto Sheets("Validation").Range("a1"), True
MsgBox Format(Timer - t0, "0.0 \ sec.")
End Sub