[RESOLU] [VBA] Rechercher et Remplacer sur formules pour creation fichier par semaine

Skeeper_Gendher

XLDnaute Nouveau
Bonjour à tous,

Voici mon premier poste concernant VBA. Je vais essayer d'être aussi clair et précis que possible. Je précises que je suis autodidacte, toute amélioration sera appréciée.
Mon but : Je souhaites créer automatiquement un fichier par semaine à partir d'un fichier modèle.
A partir de quoi : Sur mon fichier modèle, j'ai des formules allant chercher des données dans des classeurs différents. Ces formules font références à l'année en cours et au numéro de semaine renseigné dans la cellule D10.
Comment : Ma macro va donc changer la date fixe dans mes formules (2015) pour la remplacer par celle de l'année en cours. Puis je vais faire une boucle sur toutes mes cellules contenants des formules dans une plage donnée, en fonction de mon numéro de semaine -1 noté en D10.
Voici mon premier jet.

Code:
Sub CreatSem()
'
'
Dim c As String
'
Test = Range("D10")
c = Mid(ThisWorkbook.Path, 1, InStrRev(ThisWorkbook.Path, "\"))
'
'
If Dir(c & Year(Date), 16) = "" Then MkDir (c & Year(Date))
'
Application.ScreenUpdating = False
'
  For Each Cell In Range("A1:K75").SpecialCells(xlCellTypeFormulas)
    If Test < 11 Then Cell.Replace What:="01", Replacement:="0" & Test - 1 Else Cell.Replace What:="01", Replacement:=Test - 1
    Cell.Replace What:="2015", Replacement:=Year(Date)
  Next Cell
'
Application.ScreenUpdating = True
'
End Sub

Mon problème à l'heure actuelle, c'est que mon "rechercher/remplacer" pratiqué manuellement met 3:18 minutes + 3:20 minutes à se faire et celui de la macro 18:46 minutes. Certes je rajoutes des conditions sur le code par rapport à la version manuelle, mais je me demande surtout si je n'ai pas une boucle qui ralenti le tout. Merci de votre aide.

PS: je ne suis qu'au début de mon code, je n'ai pas encore fait de test sur l'enregistrement du fichier semaine par semaine. Je souhaites traiter les problème un par un :)
 
Dernière modification par un modérateur:

CPk

XLDnaute Impliqué
Re : [VBA] Rechercher et Remplacer sur formules pour creation fichier par semaine

Flûte, je n'y ai pas pensé de prime abord. essayez de chronométrer votre macro en ayant désactivé le calcul automatique si ce n'est pas déjà fait...

A placer en début de code
Application.Calculation = xlCalculationManual
 
Dernière modification par un modérateur:

Skeeper_Gendher

XLDnaute Nouveau
Re : [VBA] Rechercher et Remplacer sur formules pour creation fichier par semaine

Et que fait le calcul automatique ? Pourquoi le désactiver réduirai le temps d'application de ma macro ? Et faut-il le réactivé à la fin de ma macro ? Merci d'avance pour vos réponses !
 

CPk

XLDnaute Impliqué
Re : [VBA] Rechercher et Remplacer sur formules pour creation fichier par semaine

Quand vous entrez une formule dans excel, exemple C1=A1+B1. Dès que vous changez une valeur (a ou b) excel affiche le nouveau résultat en c. Il calcul donc "automatiquement" le résultat. Votre macro remplace des informations dans des formules, donc excel recalcul à chaque fois la feuille voire le classeur entier. Ce qui engendre sûrement se temps de traitement trop long.

un peu de lecture
https://www.excel-downloads.com/threads/vba-calcul-automatique.97748/
 

Skeeper_Gendher

XLDnaute Nouveau
Re : [VBA] Rechercher et Remplacer sur formules pour creation fichier par semaine

Bonjour,

J'ai enfin pu tester vos solutions. Et bien victoire sans appel pour le calcul manuel ! A peine 3 minutes pour faire les deux "rechercher / remplacer" avec la macro + calcul manuel, contre plus de 6 minutes pour faire les deux "R / R" en manuel et j'ai stoppé l'application après 30 minutes de macro + calcul auto.

Merci beaucoup, je vais pouvoir me lancer sur la seconde partie de mon code ;) (Je reviendrais peut-être revenir vous embêter si je bloque derrière, mais je pense que ça devrait allez. Merci encore!
 

Discussions similaires