• Initiateur de la discussion Initiateur de la discussion Vario29
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

V

Vario29

Guest
Bonjour,

Par l’intermédiaire d’un macro, je copie un tableau mensuel vers une sauvegarde annuelle. Ce fichier sauvegarde annuelle est donc constitué de deux onglets :
- Onglet chiffres : Cet onglet contient toutes les sauvegardes mensuelles importés par l’intermédiaire d’un macro.
- Onglet synthèse : Un onglet avec de nombreuses formules de calcul afin des données chiffrées sur l’année (fonction somme prd).

Le seul problème que j’ai c’est que lors de l’importation du fichier et lors de la création de filtres dans onglet chiffres, il recalcule automatiquement !!!! et c’est long !!!!...à chaque modification, il lance un calcul !!!!

Peut-on bloquer ce recalcule ? et peut-on le générer par nous même ?

Merci d’avance pour vos réponses,
 
Re : Bloquer recalcul

Bonsoir Vario29, bonsoir Borismy, bonsoir à tous,

Si c'est dans la macro que le temps de réponse est long, il faut mettre en début et fin de macro:

Code:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
.
.
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

@+

Gael
 
Re : Bloquer recalcul

Salut,

Voici ma commande macro qui existe grâce à l'aide des membres du forum,

Comment je peux le modifier pour bloquer le recalcule ?

Merci pour votre aide,


Sub DADS()
Dim FichS As Workbook
Dim FichD As Workbook
Dim rs As Range
Dim rd As Range
Dim Chemin$
With Application
.ScreenUpdating = False
.DisplayAlerts = False
Set FichS = ThisWorkbook
Set rs = _
Range("C2:N" & Range("A65000").End(xlUp).Row)

Chemin = "F:\PAIE\COTISATIONS\COTISATIONS QCOM\Cotisations

2009\Cotisations-Excel\DADS.xls"
Workbooks.Open Chemin

Set FichD = ActiveWorkbook
Set rd = _
FichD.Sheets("Chiffres").Range("A65000").End(xlUp).Offset(1, 0)

rs.Copy rd
With FichD
.Save
.Close
End With
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub
 
Re : Bloquer recalcul

Bonjour Vario29, bonjour à tous,

Ci-joint une proposition avec une logique un peu différente et l'option de calcul en manuel.

Code:
Sub DADS()
Dim rs() As Variant
Dim Chemin$
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = False
rs = Range("C2:N" & Range("A65000").End(xlUp).Row)
Chemin = "F:\PAIE\COTISATIONS\COTISATIONS QCOM\Cotisations 2009\Cotisations-Excel\DADS.xls"
Workbooks.Open Chemin
ActiveWorkbook.Sheets("Chiffres").Range("A65000").End(xlUp).Offset(1, 0).Resize(UBound(rs, 1), UBound(rs, 2)) = rs
ActiveWorkbook.Save
ActiveWorkbook.Close

Application.DisplayAlerts = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

J'ai testé la procédure qui fonctionne bien chez moi.

@+

Gael
 
Re : Bloquer recalcul

Bonjour Vario29, bonjour à tous,

Si le temps de réponse est meilleur, je pense que c'est essentiellement du au mode de calcul en manuel. Pour vérifier, tu peux supprimer cette instruction et comparer le temps de réponse des 2 codes.

La différence entre les 2 est plutôt une simplification en supprimant les "With" imbriqués. Sinon sur le plan de la méthode, j'ai remplacé le "Copier-Coller" par la mise en mémoire du range dans un tableau (rs):

Code:
rs = Range("C2:N" & Range("A65000").End(xlUp).Row)

puis la copie du contenu du tableau dans une zone de même taille:

Code:
.Resize(UBound(rs, 1), UBound(rs, 2)) = rs

".resize" refinit les limites de la zone en utilisant Ubound(rs,1) qui est la taille de la première dimension du tableau (nombre de lignes) et Ubound(rs,2) pour la deuxième dimension (nbre de colonnes).

C'est plus par habitude de travail car je ne suis pas sûr que ce soit plus rapide que le copier-coller 🙄

Pour raccourcir encore un peu, tu peux écrire:

Code:
ActiveWorkbook.Close savechanges=true

@+

Gael
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour