Microsoft 365 Changer une formule en code vba

  • Initiateur de la discussion Initiateur de la discussion Phil Du59
  • 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 !

Phil Du59

XLDnaute Junior
Bonjour le forum
Je me rends compte que les enregistrements dans mon tableau sont de plus en plus long (plusieurs secondes) et je pense que c'est à cause de la formule de tri , dans la partie DXCCs j'ai une colonne Continents et en T le tri qui se fait par rapport au tableau DXCC Worked et quand je la supprime mes enregistrements sont plus rapide , donc est il possible de remplacer les formules par un code qui ferait la même chose . Pour mes enregistrements je passe par Open Log.
Merci de votre aide, Philippe .
 

Pièces jointes

Solution
Bonjour Phil, Gbinform, Fanch,
En PJ j'ai optimisé la macro Worksheet_Activate de la feuille DXCCs, ( ainsi que la fonction "compte" pour le fun )
Sur mon PC (XL2007) le calcul de la feuille DXCCs passe de 2.28s à 0.093s , du à l'utilisation d'un second array pour les calculs intermédiaires.
A tester sur votre version XL.
( Question : Pourquoi utiliser un fichier xls avec 365, une version xlsm serait plus appropriée )
Pour le fun, j'ai :
  • converti les données de la feuille Log en un TS ( tableau structuré ) de nom T_Log
  • Mis des formules de type Excel dans les Cellules de la colonne T de la feuille DXCCs
  • Modifié le Worksheet_Activate de la feuille DXCCs
  • Modifié la sub btnAjout_Click de Userform1 pour prendre en compte la table
  • Modifié la sub CommandButton1_Click( de la feuile Log pour prendre en compte la table
 

Pièces jointes

Pour le fun, j'ai :
  • converti les données de la feuille Log en un TS ( tableau structuré ) de nom T_Log
  • Mis des formules de type Excel dans les Cellules de la colonne T de la feuille DXCCs
  • Modifié le Worksheet_Activate de la feuille DXCCs
  • Modifié la sub btnAjout_Click de Userform1 pour prendre en compte la table
  • Modifié la sub CommandButton1_Click( de la feuile Log pour prendre en compte la table
Bonjour, merci mais beug chez moi au niveau Tablo.
' tri du dictionnaire et stockage dans un tableau
Tablo = WorksheetFunction.Sort(CDic.keys, 1, 1, True)
 
"xls" est l'extension utilisée kusqu'à XL2003.
Puis fut remplacé par "xlsx" et "xlsm"
Vous faites "Enregistrer sous " puis choississez l'extension xlsm. C'est un format plus concis et plus léger.
Pour votre fichier, on passe de 155ko à 77ko :

Regarde la pièce jointe 1229459


Regarde la pièce jointe 1229458
Bonjour Sylvanu , pour faire suite , je regardais pour enregistrer avec le xlsm à la fin que je n'ai pas , mais avec juste (prenant en compte les macros) je passe de 125ko à 70,7ko . merci .
 
- 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

Discussions similaires

Réponses
2
Affichages
248
Réponses
3
Affichages
263
Retour