XL 2010 RESOLU Erreur due a une référence de cellule non vide

ymanot

XLDnaute Occasionnel
Bonjour le forum
Bonjour les barbatrucs
Bonjour thierry
Bonjour job75

J'ai besoin de lancer une série de calculs sur la feuille"récapitulatif" malheureusement la macro qui permet le tri de mes données doit se lancer avant le calcul et du coup provoque des erreurs de formules. Quelqu'un est il en mesure de trouver une solution à ce problème?



Merci
 

Pièces jointes

  • repart classe 2020 pour excel download.xlsm
    82.2 KB · Affichages: 6
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Ymanot,
Serait il possible et suffisant de passer en calcul manuel lors de l'ouverture du fichier, puis repasser en auto à la fin de la macro ?
Et par sécurité passer en mode manuel en quittant le fichier.
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.Calculation = xlCalculationManual
With Sheets("tri 3E").[A1].CurrentRegion
    If Application.CountIf(.Columns(1), Sh.Name) = 0 Then
        Application.Calculation = xlCalculationAutomatic
        Exit Sub
    End If
    Application.ScreenUpdating = False
    Sh.Cells.Delete 'RAZ
    .AutoFilter 1, Sh.Name 'filtre automatique
    .Copy Sh.[A1] 'copier-coller
    .AutoFilter
End With
Sh.Columns.AutoFit 'ajustement largeurs
Application.Calculation = xlCalculationAutomatic
Calculate
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
     Application.Calculation = xlCalculationManual
End Sub
 

ymanot

XLDnaute Occasionnel
Bonsoir
et merci de vous être arrété.
La macro générée par job75 se lance toute seule à l'activation de la page ce qui est génial. Mais mes calculs ne peuvent se faire qu'après le tri éffectué par la macro puisqu'il s agit d'une répartition dans différentes pages. Et seulement après je doit faire une forme d'inventaire.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Ymanot,
Vous avez testé ma macro ?
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)

' on passe en calcul manuel'
Application.Calculation = xlCalculationManual

On effectue le tri
....
....
' on repasse en calcul automatique'
Application.Calculation = xlCalculationManual
End Sub
A voir si c'est suffisant.
Mais testez au moins, j'avais compris la problèmatique.
 

ymanot

XLDnaute Occasionnel
oui biensur j ai testé mais ca annule le calcul dans la feuille récap.
pour information j ai testé en créant une macro auto apres la modification et cela fonctionne.
Mais je vais donc devoir en creer 1 par ligne, je me demande s'il n'existe pas plus simple.
ci joint ce que j ai crée. Si vous pensez pouvoir simplifier l'operatioin?
La modification apporté se trouve sur la feuille "recapitulatif" le bouton macro travaille sur les plages jaunes travail comportement,
travail fait reference a la colonne L et comportement la colonne O.
dans mon exemple apres avoir été sur la page "3e7" le recap disparait en feuille "recap" mais la macro réactive le calcul. Je souhaiterai que ce processus de lancement e fasse automatiquement sans avoir a generer 8 boutons.
merci
 

Pièces jointes

  • repart classe 2020 pour excel download.xlsm
    89.3 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Peut être une solution serait de passer par des fonctions perso, elles resteront indépendantes de vos tris. J'en ai créé trois pour voir.
VB:
Function CompteESP()
    CompteESP = Application.CountIf(Sheets("3e3").Range("I:I"), "ESP2")
End Function
Le gros avantage c'est qu'elle n'appelle aucune plage donc ne sont pas perturbées par les tri, puisque tout est fait en VBA.
S'il n'y a pas trop de formules, c'est simple et rapide.
A tester.
 

Pièces jointes

  • repart classe 2020 pour excel download (4).xlsm
    97.7 KB · Affichages: 6

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 217
Membres
103 158
dernier inscrit
laufin