IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Désactiver calcul auto d'une feuille [XL-2003]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    28
    Points
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 28
    Points : 14
    Par défaut Désactiver calcul auto d'une feuille
    Bonjour, je souhaiterais savoir si il était possible de désactiver le calcul automatique mais d'une feuille uniquement.

    En effet, j'ai un fichier avec plein de feuilles que les salariés d'une entreprise utilisent tous les jours pour mouvementer les stocks. Sur ce fichier j'ai créé une feuille avec plein de formules qui vont chercher des infos dans toutes les feuilles afin de connaître la valeur de nos stocks.
    Le problème c'est que ça ralenti leur travail a la moindre donnée qu'ils rentrent dans les autres feuille alors que j'ai besoin d'actualiser la feuille bilan seulement mensuellement.
    Mais il faudrait que le calcul reste automatique sur les autres feuilles.

    Sinon, je me disait que je pourrais supprimer la feuille et créer une macro qui réécrit toutes les formules de la feuille bilan qu'on activerais tous les mois, mais bon ça va me prendre trois plombes.
    Ou alors faut que je vois si c'est possible de mettre ça sur une feuille à part...

    Des idées ?

    merci déjà de m'avoir lu

  2. #2
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Points
    2 662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Par défaut
    Salut,

    Malheureusement, l'activation des calculs se fait sur l'application, donc pas possible de mettre une seule feuille en calcul manuel.

    Par contre tu lances toi même une piste, tu peux facilement déplacer la feuille incriminée dans un nouveau classeur (click droit sur l'onglet\Déplacer ou copier)

    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    357
    Points
    417
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2008
    Messages : 357
    Points : 417
    Par défaut
    Bonjour,

    Tu peux aussi désactiver les calculs auto et demander un calcul sélectif par macro

    Ex: Recalculer la feuille en-cours après chaques modifications

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Range)
    ActiveSheet.Calculate
    End Sub

  4. #4
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Points
    2 662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Par défaut
    Mais c'est bien sûr, on voit que c'est vendredi j'ai vraiment besoin d'un week-end reposant !
    Bon ben là dessus, je vais me cacher...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    28
    Points
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 28
    Points : 14
    Par défaut
    super !! merci beaucoup pour les réponses

    je pense que ça devrait résoudre mon prob, je met ça en place dès lundi et jvous tiens au courant

    Bon week end

  6. #6
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 341
    Points
    1 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 341
    Points : 1 577
    Par défaut
    Bonjour,

    j'ai de gros classeurs aussi, et je désactive systématiquement le calcul automatique par programmation, afin d'avoir une vitesse d'exécution toujours au mieux:

    Dans le module ThisWorkbook:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Workbook_Activate()
    /.../  
      Application.Calculation = xlCalculationManual
    /.../
    End Sub
    et bien sûr:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Workbook_Deactivate()
    /.../  
      Application.Calculation = xlCalculationAutomatic
    /.../
    End Sub
    [/CODE]

    Ainsi, a chaque fois que j'utilise ce classeur (il s'active donc), le mode de calcul passe en manuel, je force les calculs de cellules quand je veux par programmation, et lorsque je passe éventuellement à un autre classeur ouvert (le classeur se désactive), le mode de calcul est à nouveau en automatique.
    Evidemment, s'il faut absolument ne gérer que le calcul d'une feuille parmi d'autre, il faut user du même mécanisme à l'activation et désactivation de cette feuille.

    En espérant que cela réponde à votre question...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    28
    Points
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 28
    Points : 14
    Par défaut
    Mais c'est génial ça !! ça va me permettre d'accélerer bien d'autres classeurs

    Merci beaucoup à tous pour les réponses ça marche nikel

    Résolu

  8. #8
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 341
    Points
    1 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 341
    Points : 1 577
    Par défaut
    Bonjour,

    puisqu'on en est dans les systèmes d'accélération, n'oubliez pas le fameux Application.ScreenUpdating = False avant de remplir des cellules avec des valeurs, suivi de Application.ScreenUpdating = True, lorsque toutes les manipulations sont terminées, et que l'on veut afficher le rendu.

    Mais peut être connaissez-vous déjà cette astuce...

    A bientôt

  9. #9
    Membre averti
    Inscrit en
    Août 2009
    Messages
    817
    Points
    314
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Points : 314
    Par défaut Petite amélioration pour bloquer une seule feuille
    Il peut être intéressant de ne bloquer que la feuille de saisie.
    en sortant de la saisie pour aller voir le résultat, il est intéressant que le calcul soit réactivé.
    J'ai réalisé cela en ajoutant ces deux sub.
    En ajoutant des IF, on doit pouvoir agir sur plusieurs feuilles.
    Avantage, cela recalcule quant on change de feuille et quand on change de classeur.
    Il faut bien combiner le worbook activate/deactivate et le worksheet activate/deactivate pour avoir l'effet désiré.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Dim mafeuille As String
    mafeuille = ActiveSheet.Name
    If mafeuille = "mafeuille de saisie" Then
    Application.Calculation = xlCalculationManual
    End If
    End Sub
     
    Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
      Application.Calculation = xlCalculationAutomatic
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Saisie heure et date en auto dans une feuille
    Par AAWOOPY56 dans le forum Excel
    Réponses: 16
    Dernier message: 16/04/2012, 16h29
  2. [VBA-E97]Code pour déprotéger une feuille de calcul
    Par blaiso dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/04/2007, 12h30
  3. Contrôles (CheckBox) sur une feuille de calcul
    Par yogyx dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/12/2006, 10h54
  4. [VBA-E] calculs automatique sur une seule feuille
    Par repié dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/03/2006, 12h53
  5. Réponses: 8
    Dernier message: 17/05/2002, 10h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo