Bonjour,
J'ai une macro assez simple qui sur mon PC s'éxécute rapidement et sur d'autres PC boucle avec un processeur qui monte/descend et oblige mes camarades à arreter Excel. J'aimerai savoir si cela est purement du au PC et sa configuration technique ou si juste en activant des compléments Excel mes collègues pourront résoudre le problème ?
Voici mon code qui prend un TCD en colle les valeurs / et ajouter des données, rien de bien complexe :
Sub RecupResultat()
'
' Supprime les Données déjà présentent dans l'onglet Résultat
Sheets("Resultat").Select
Cells.Select
Selection.Delete Shift:=xlUp
' Recupere le TCD et le copie
Sheets("Extraction Client").Select
ActiveSheet.PivotTables("TCDClient").PivotSelect "", xlDataAndLabel, True
Selection.Copy
' le colle dans l'onglet Resultat
Sheets("Resultat").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Insère une colonne et insère le mois et l'année
Columns("A:A").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
For k = 3 To Range("B" & Rows.Count).End(3).Row
x = Cells(k, 2)
Cells(k, 1) = Month(x) & "-" & Year(x)
Next
'insère le total
Columns("C:C").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
For k = 3 To Range("B" & Rows.Count).End(3).Row
Cells(k, 3).FormulaR1C1 = "=SUM(RC[1]:RC[23])"
Next
'copie/collage spécial du total
Columns("C:C").Select
Selection.Copy
Columns("C:C").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Insère le jour de la semaine (1= lundi et 7 = Dimanche)
Columns("C:C").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
For k = 3 To Range("B" & Rows.Count).End(3).Row
Cells(k, 3).FormulaR1C1 = "=WEEKDAY(RC[-1],2)"
Next
'Copie/collage Spécial
Columns("C:C").Select
Selection.Copy
Columns("C:C").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'met en forme les colonnes
Columns("B:B").Select
Selection.NumberFormat = "m/d/yyyy"
Columns("A:A").Select
Selection.NumberFormat = "mmm-yy"
Range("A2").Select
ActiveCell.FormulaR1C1 = "Mois"
Range("C2").Select
ActiveCell.FormulaR1C1 = "Jour Semaine"
Range("D2").Select
ActiveCell.FormulaR1C1 = "Total"
Columns("C:Z").Select
Selection.NumberFormat = "General"
'Supprime la 1ere ligne et met en forme les titres
Rows("1:1").Select
Selection.Delete Shift:=xlUp
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Font.Bold = True
End Sub
J'ai une macro assez simple qui sur mon PC s'éxécute rapidement et sur d'autres PC boucle avec un processeur qui monte/descend et oblige mes camarades à arreter Excel. J'aimerai savoir si cela est purement du au PC et sa configuration technique ou si juste en activant des compléments Excel mes collègues pourront résoudre le problème ?
Voici mon code qui prend un TCD en colle les valeurs / et ajouter des données, rien de bien complexe :
Sub RecupResultat()
'
' Supprime les Données déjà présentent dans l'onglet Résultat
Sheets("Resultat").Select
Cells.Select
Selection.Delete Shift:=xlUp
' Recupere le TCD et le copie
Sheets("Extraction Client").Select
ActiveSheet.PivotTables("TCDClient").PivotSelect "", xlDataAndLabel, True
Selection.Copy
' le colle dans l'onglet Resultat
Sheets("Resultat").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Insère une colonne et insère le mois et l'année
Columns("A:A").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
For k = 3 To Range("B" & Rows.Count).End(3).Row
x = Cells(k, 2)
Cells(k, 1) = Month(x) & "-" & Year(x)
Next
'insère le total
Columns("C:C").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
For k = 3 To Range("B" & Rows.Count).End(3).Row
Cells(k, 3).FormulaR1C1 = "=SUM(RC[1]:RC[23])"
Next
'copie/collage spécial du total
Columns("C:C").Select
Selection.Copy
Columns("C:C").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Insère le jour de la semaine (1= lundi et 7 = Dimanche)
Columns("C:C").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
For k = 3 To Range("B" & Rows.Count).End(3).Row
Cells(k, 3).FormulaR1C1 = "=WEEKDAY(RC[-1],2)"
Next
'Copie/collage Spécial
Columns("C:C").Select
Selection.Copy
Columns("C:C").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'met en forme les colonnes
Columns("B:B").Select
Selection.NumberFormat = "m/d/yyyy"
Columns("A:A").Select
Selection.NumberFormat = "mmm-yy"
Range("A2").Select
ActiveCell.FormulaR1C1 = "Mois"
Range("C2").Select
ActiveCell.FormulaR1C1 = "Jour Semaine"
Range("D2").Select
ActiveCell.FormulaR1C1 = "Total"
Columns("C:Z").Select
Selection.NumberFormat = "General"
'Supprime la 1ere ligne et met en forme les titres
Rows("1:1").Select
Selection.Delete Shift:=xlUp
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Font.Bold = True
End Sub