[Résolu]Problème lenteur fonction Copy Win 7

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

A

Appo666

Guest
Bonjour,

J'ai un petit soucis de lenteur avec une fonction que j'utilise. Je précise que j'utilise l'application pour la 3eme année de suite, et que c'est la première fois que je rencontre des problèmes de lenteurs aussi important.

Voici la fonction en question :
Code:
Function DupliquerOnglet(ByVal nomWorkbook As String, NomOngletADupliquer As String, NomNouvelOnglet As String)
    Application.Calculation = xlCalculationManual
    'On vire le .xls du nom du fichier
    'nomWorkbook = Replace(nomWorkbook, ".xls", "")
'nomWorkbook = "Champion050808.xls"
'MsgBox Workbooks(nomWorkbook).Sheets(NomOngletADupliquer).Name
Workbooks(nomWorkbook).Sheets(NomOngletADupliquer).Visible = True
Workbooks(nomWorkbook).Sheets(NomOngletADupliquer).Activate
    Workbooks(nomWorkbook).Sheets(NomOngletADupliquer).Select
   [SIZE="5"] [B]Workbooks(nomWorkbook).Sheets(NomOngletADupliquer).Copy after:=Sheets(NomOngletADupliquer)[/B][/SIZE]
    Application.CutCopyMode = False
    Workbooks(nomWorkbook).ActiveSheet.Name = NomNouvelOnglet
    Workbooks(nomWorkbook).Sheets(NomOngletADupliquer).Visible = False
    Workbooks(nomWorkbook).ActiveSheet.Visible = False
    DoEvents
    
End Function

J'ai mis en avant la ligne ou je rencontre un problème de lenteur, à savoir que cela prend 5 min pour dupliquer un onglet, et que j'ai environ entre 40 et 60 fois l'appel à cette fonction.

Les années précédentes, cela durait environ 1h voire 2h selon la machine. Aujourd'hui au bout de 3h30, l'import n'été toujours pas terminé.

La seule différence par rapport aux années précédentes est que j'ai changé de système d'exploitation. Je suis passé sous windows 7 ou lieu de XP.

Merci pour votre aide.

Cordialement,

Julien
 
Dernière modification par un modérateur:
Re : Problème lenteur fonction Copy Win 7

Bonjour Appo

Il faudrait nous en dire un peu plus, comme ta version d'excel, ce que contient tes feuilles en général (nombre de colonnes, de lignes), y'a t'il des formules, des formules matriceilles, y'a t'il des liaisons avec des fichiers non ouverts, pourquoi passer par une fonction pour copier un onglet ?
 
Re : Problème lenteur fonction Copy Win 7

Bonjour,

A tout hasard essayez le code suivant

Code:
Sub DupliquerOnglet(ByVal nomWorkbook As String, _
  NomOngletADupliquer As String, NomNouvelOnglet As String)
  
Dim WB As Workbook
Dim S As Worksheet
Set WB = Workbooks(nomWorkbook)
Set S = WB.Sheets(NomOngletADupliquer)


    Application.Calculation = xlCalculationManual
    'On vire le .xls du nom du fichier
    'nomWorkbook = Replace(nomWorkbook, ".xls", "")
'nomWorkbook = "Champion050808.xls"
'MsgBox Workbooks(nomWorkbook).Sheets(NomOngletADupliquer).Name


S.Visible = True
S.Activate
S.Select
S.Copy after:=Sheets(S.Index)
    Application.CutCopyMode = False
WB.ActiveSheet.Name = NomNouvelOnglet
S.Visible = False
WB.ActiveSheet.Visible = False
'    DoEvents    '??????????
    
End Sub

J'ai changé la procédure Function en procédure Sub ²comme il semble ne pas y avoir de valeur de retour ???

Cordialement.

PMO
Patrick Morange
 
Re : Problème lenteur fonction Copy Win 7

Alors ma version d'excel est Excel 2003. L'onglet à dupliquer contient une trentaine de ligne et environ 70 colonnes. Il y a des formules, des liaisons vers d'autres onglets (provenant du même fichier) et des zones nommées.

Mon fichier excel est en fait une application de gestion des budgets pour un grand groupe, et environ 8 personnes différentes utilisent le fichier avec chacun leurs propres magasins. Chaque année, chaque personne importe la liste des magasins de l'année et donc j'ai toute une procédure d'import qui importe les données d'un fichier CSV dans une base access (cela se fait avec d'autres fichiers), ensuite je vais initialiser mon fichier (via des macros) en créant un onglet par magasin (d'où la copie d'un onglet modèle) et tout plein d'autres traitements.

@PMO2 : Je vais tester ça pour voir.

EDIT : A priori pas d'amélioration avec ta fonction PMO2
 
Dernière modification par un modérateur:
Re : Problème lenteur fonction Copy Win 7

Bonjour,

Quelques news pour ceux que ca pourrait interessé. Le problème ne venait pas du changement d'OS.
Tout simplement, les problèmes de lenteurs venait du nombre de zones nommées utilisées. Comme je suis parti d'une mauvaise version, je n'avais pas la fonction de "nettoyage" des zones nommées inutilisés que nous avions implémentés l'année dernière.

Donc pour ceux qui pourrait avoir des problèmes de lenteur lors d'une copie d'onglet, faites attention aux zones nommées inutilisées qui restent et prennent de la place pour rien.

Merci.

Cordialement,

Julien
 
- 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.

Discussions similaires

R
  • Question Question
Réponses
2
Affichages
988
Rousseau Benoit
R
Z
Réponses
7
Affichages
1 K
Zifox
Z
C
Réponses
6
Affichages
1 K
Hogwarts
H
R
Réponses
0
Affichages
3 K
R
Retour