Macro - Excel ne répond pas

Fermé
empereurtilleul - 24 juin 2021 à 11:32
 Utilisateur anonyme - 1 juil. 2021 à 15:36
Bonjour,

J'ai une macro qui tourne en boucle H24. Sauf que régulièrement (au moins une fois par jour), le fichier plante et reste sur "Excel ne répond pas" et remarche seulement après avoir redémarré l'ordinateur. Que faire pour éviter cette erreur?

Voici mon code:
Const coul1 = 15
Const coul2 = xlNone
'Deux couleurs pour l'alternance des kits
Const cofin = "P"
'Colonne de fin pour l'affichage
Const lideb = 5
Const rouge = 3
Dim uneheure
Sub Actualiser()
'
' Définit l'intervalle avec l'heure actuelle
    uneheure = TimeSerial(Hour(Time), Minute(Time) + 15, Second(Time))
        ' Appel récursif
        Application.OnTime uneheure, "Actualiser"
        Call ActualiserStock
        Call ActualiserBDDTCD
        Call FAUXKIT
        Call actualisationtcd
        Call ActuTCD
        Call ActuBLK14
        Call ActuGENE
        Call MenuPrincipal
        'Call Affichage
        Call MenuPrincipal
        Call Sauvegarde
        
'Appel de toutes les fonctions definies
        
End Sub
Sub auto_open()
   Actualiser
End Sub
Sub auto_close()
 On Error Resume Next
 Application.OnTime uneheure, Procedure:="Actualiser", Schedule:=False
End Sub
Sub ActualiserStock()
On Error Resume Next
'
' ActualiserStock Macro
'

'
    Sheets("Stock").Select
    Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
End Sub

Sub ActuBLK14()
On Error Resume Next
'
' ActuBLK14 Macro
'

'
    Sheets("Suivi Ref Kit BLK14").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotCache.Refresh
End Sub

Sub ActuGENE()
On Error Resume Next
'
' ActuGENE Macro
'

'
    Sheets("Suivi Ref Kit GENE").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotCache.Refresh
End Sub




Sub ActualiserBDDTCD()
'
' ActualiserBDDTCD Macro
'

'
    Windows("Affichage Dynamique.xlsm").Activate
    Sheets("Stock").Select
    Columns("A:E").Select
    Selection.Copy
    Sheets("BDD TCD REF KIT").Select
    Columns("A:E").Select
    ActiveSheet.Paste
    Sheets("Stock").Select
    Columns("F:G").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("BDD TCD REF KIT").Select
    Columns("G:H").Select
    ActiveSheet.Paste
End Sub
Sub ActuTCD()
On Error Resume Next
'
' ActuTCD Macro
'

'
    Sheets("Suivi Ref Kit LOG").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotCache.Refresh
End Sub







Sub actualisationtcd()
'
' actualisationtcd Macro
' Coller extraction stock tracking Oracle, Recherchev dans fichier regroupement, actualisation TCD
'

    
    
'recherchev Macro
'
    Sheets("BDD TCD REF KIT").Select
'
   Range("AT1").Select
    ActiveCell.FormulaR1C1 = "N°regroupement"
    Range("AU1").Select
    ActiveCell.FormulaR1C1 = "OP oracle"
    Range("AV1").Select
    ActiveCell.FormulaR1C1 = "Wip job"
    Range("AW1").Select
    ActiveCell.FormulaR1C1 = "Station"
    Range("AX1").Select
    ActiveCell.FormulaR1C1 = "Description OP"
    Range("AY1").Select
    ActiveCell.FormulaR1C1 = "Buff"
    Range("AT2").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-42],Regroupement!C[-45]:C[-28],6,FALSE)"
    Range("AU2").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-43],Regroupement!C[-46]:C[-32],15,FALSE)"
    Range("AV2").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-44],Regroupement!C[-47]:C[-44],4,FALSE)"
    Range("AW2").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-45],Regroupement!C[-48]:C[-44],5,FALSE)"
    Range("Ax2").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-46],Regroupement!C[-49]:C[-28],19,FALSE)"
    Range("Ay2").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-47],Regroupement!C[-50]:C[-28],9,FALSE)"
    Range("AT2:AY2").Select
    Selection.AutoFill Destination:=Range("AT2:AY3000"), Type:=xlFillDefault
    Range("AT2:AY3000").Select
   

    
    
End Sub

Sub MenuPrincipal()
'
' MenuPrincipal Macro
'

'
    Sheets("Suivi Ref Kit LOG").Select
End Sub
Sub Sauvegarde()
On Error Resume Next
'
' Sauvegarde Macro
'

'
    ActiveWorkbook.Save
End Sub


Sub FAUXKIT()
'
' LAPRE Macro
'

'
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "OF1"
    Range("B2").Select
    ActiveCell.FormulaR1C1 = "TRACKING"
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "L*APRE"
    Range("D2").Select
    ActiveCell.FormulaR1C1 = "KIT.FAUX"
    Range("E2").Select
    ActiveCell.FormulaR1C1 = "KIT.FAUX"
    Range("G2").Select
    ActiveCell.FormulaR1C1 = "EA"
    Range("H2").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("L2").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("AM18").Select
    
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "OF1"
    Range("B2").Select
    ActiveCell.FormulaR1C1 = "TRACKING"
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "L*TR*U"
    Range("D2").Select
    ActiveCell.FormulaR1C1 = "KIT.FAUX"
    Range("E2").Select
    ActiveCell.FormulaR1C1 = "KIT.FAUX"
    Range("G2").Select
    ActiveCell.FormulaR1C1 = "EA"
    Range("H2").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("L2").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("AM18").Select
    
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "OF1"
    Range("B2").Select
    ActiveCell.FormulaR1C1 = "TRACKING"
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "C*TR*U"
    Range("D2").Select
    ActiveCell.FormulaR1C1 = "KIT.FAUX"
    Range("E2").Select
    ActiveCell.FormulaR1C1 = "KIT.FAUX"
    Range("G2").Select
    ActiveCell.FormulaR1C1 = "EA"
    Range("H2").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("L2").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("AM18").Select
    
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "OF1"
    Range("B2").Select
    ActiveCell.FormulaR1C1 = "TRACKING"
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "U*RCPT"
    Range("D2").Select
    ActiveCell.FormulaR1C1 = "KIT.FAUX"
    Range("E2").Select
    ActiveCell.FormulaR1C1 = "KIT.FAUX"
    Range("G2").Select
    ActiveCell.FormulaR1C1 = "EA"
    Range("H2").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("L2").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("AM18").Select
    
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "OF1"
    Range("B2").Select
    ActiveCell.FormulaR1C1 = "TRACKING"
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "U*BUFF"
    Range("D2").Select
    ActiveCell.FormulaR1C1 = "KIT.FAUX"
    Range("E2").Select
    ActiveCell.FormulaR1C1 = "KIT.FAUX"
    Range("G2").Select
    ActiveCell.FormulaR1C1 = "EA"
    Range("H2").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("L2").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("AM18").Select
    
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "OF1"
    Range("B2").Select
    ActiveCell.FormulaR1C1 = "TRACKING"
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "U*BUFF*EXT"
    Range("D2").Select
    ActiveCell.FormulaR1C1 = "KIT.FAUX"
    Range("E2").Select
    ActiveCell.FormulaR1C1 = "KIT.FAUX"
    Range("G2").Select
    ActiveCell.FormulaR1C1 = "EA"
    Range("H2").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("L2").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("AM18").Select
End Sub




Configuration: Windows / Chrome 91.0.4472.114
A voir également:

2 réponses

Utilisateur anonyme
27 juin 2021 à 19:18
Bonjour
Il est fort probable que ce soit un problème de "saturation" de votre machine et pas Excel qui soit en cause.
Ouvrez le Gestionnaire de Tâche pour "voir" l'activité de votre machine pendant l'usage de la macro, vous risquez d'être surpris.
Pourquoi la laisser tourner en permanence ?
Pourquoi ne pas l'ouvrir/fermer régulièrement avec le Planificateur des Tâches ?
A+
1
empereurtilleul
1 juil. 2021 à 09:11
Je pense que le cache se sature en effet.
Néanmoins, j'ai besoin que ce fichier tourne H24 (il est utilisé par des équipes qui travaillent en 3x8h).
Est-ce que c'est possible?

Merci d'avance
0
Utilisateur anonyme
1 juil. 2021 à 15:36
Bonjour
Le plantage venant de votre machine mais aussi d'Excel qui tournant en permanence la sature...

Soit tester sur une autre machine avec de meilleures capacités ou faites un batch pour fermer Excel et le rouvrir avec la macro, histoire de libérer un peu la mémoire de la machine, je ne vois que cela.
A+
0