Classeur qui se traine !

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

WDAndCo

XLDnaute Impliqué
Bonsoir la Forum.

J'ai "bricolé" non ne rigoler pas, c'est vraiment le terme un classeur qui somme toute me conviens, mais il se traine car les codes ne sont pas "académiques". Je joint le fichier, au cas ou quelqu'un jetterais son œil expert dessus !

Bien sur je me tiens à votre disposition, pour vous donner toutes les explications de ce bricolage, qui fonctionne mais pas vite !

Dominique
 

Pièces jointes

Re : Classeur qui se traine !

Bonsoir le Forum, merci papypog

Oui, c'est quoi ces : "Application.ScreenUpdating = False / True" sa sert a quoi ?
J'ai vite parcouru le fichier, mais demain j'y regarde de plus prés.

Encore merci.
Dominique
 
Re : Classeur qui se traine !

Bonsoir, WDAndCo, papypog.

Pour poursuivre les conseils de base :
Avez-vous essayé de mettre le mode de calcul en manuel (Application.Calculation = xlCalculationManual) au début de vos procédures, et de les rétablir en automatique (Application.Calculation =xlCalculationAutomatic) en fin ?
Avez-vous tenté de supprimer les couples "Select et .Selection" superflus ?
🙂
 
Re : Classeur qui se traine !

Bonjour le Forum, merci papypog, Victor21.

J'ai bien essayé de suivre vos conseils, mais comment remettre les calculs en automatique lors de la sortie de la Macro a l'aide d'un If ?
Et certain Select ne peuvent être ôté.

Mais je pense qu'il doit y avoir autre chose, car juste une sauvegarde du classeur mets un certain temps !
La feuille : Volet VHR, tourne pas trop mal sur ma machine, mais sur celle du taf, elle lambine !
Je remets la dernière version.
 

Pièces jointes

Re : Classeur qui se traine !

Bonjour,

Je ne sais pas si cela peut être utile, j'ai remarqué que vous sélectionné soit des lignes ou des colonnes complètes alors que vous avez des données uniquement que sur une toutes petites parties, de ces lignes ou colonnes.
Est ce que vos macros effectuent vos calculs justement sur la ligne ou colonne complète?
 
Re : Classeur qui se traine !

Bonjour le Forum et papypog, Victor21, piga25

Non, mais une ligne en grande partie vide ne doit pas mettre beaucoup plus de temps à être copiée qu'une partie délimité ?
Enfin je pense, avez vous un exemple.
 
Re : Classeur qui se traine !

Bonjour,

J'ai eu le cas ou une formule me calculait sur une ligne alors que je n'avais qu'au maxi 250 colonnes et cela reproduit sur 50 lignes, cela a été 100 fois plus vite lorsque j'ai inclus que mon nombre de colonnes nécessaires pour les calculs.
Pour moi c'était une formule, mais je pense que pour une macro le problème est le même.
 
Re : Classeur qui se traine !

Bonjour le Forum

Je reviens vers vous, car toujours pour ne pas ralentir le classeur, j'ai pensé a un truc.
Voila le code qui suis décortique les noms des classeurs dans un dossier défini et en fait un BDD.
L'idée est que si le nombre de dossier est inchangé il n'est pas nécessaire de poursuivre le code, de mise en place Etc...

Donc le truc est comment connaitre le nombre de classeur dans dossier, le comparer avec le nombre en mémoire, et si il y a différence continuer le code, sinon sortir.
Votre avis cela est il possible ?
Code:
Sub ListeTablo()



  Dim DLig As Long, FolderFiles() As Variant
  Dim Tmp As String, fCount As Long
  Dim Ind
  Dim sPath As String
  ' Désinhiber certaines fonctions d'Excel
  Application.ScreenUpdating = False
  Application.EnableEvents = False
  Application.Calculation = xlCalculationManual
  
  With Sheets("Choix")
    .Activate
    DLig = .Range("R" & Rows.Count).End(xlUp).Row
    If DLig >= 2 Then
      .Range("A2:T" & DLig).ClearContents
    End If
    .Rows("1:1").AutoFilter Field:=17, Criteria1:="="
  End With
  On Error Resume Next
  ActiveSheet.ShowAllData
  On Error GoTo 0
  
  MiseEnPlaceColonnes
  
  ' Initialisation
  sPath = ThisWorkbook.Path & "\Fiche MP\"
  fCount = 0
  Tmp = Dir(sPath & "*.*")
  While Tmp <> Empty
    fCount = fCount + 1
    ReDim Preserve FolderFiles(1 To fCount)
    FolderFiles(fCount) = Tmp
    Tmp = Dir
  Wend
  
  ' Transposer le tableau dans la colonne R
  Dim L&, C&, TSpl
  
  ReDim Trésu(1 To fCount, 1 To 19)
  For L = 1 To fCount
   TSpl = Split(Replace(FolderFiles(L), ".xls", "________"), "_")
    For C = 1 To 17: Trésu(L, C) = TSpl(C): Next C
    Trésu(L, 18) = FolderFiles(L)
    Trésu(L, 19) = "Fiche " & L
    Next L
  Cells(2, 1).Resize(fCount, 19).Value = Trésu
  
  Cells(1, 28).Value = L - 1 'Le Nombre de Fichier en AB1
  
  Remiseazero
  
  ' Inhiber certaines fonctions d'Excel
  Application.ScreenUpdating = True
  Application.EnableEvents = True
  Application.Calculation = xlCalculationAutomatic
  
  Cells.Sort Key1:=Range("R1"), Order1:=xlDescending, Header:=xlYes, _
                 OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
                 DataOption1:=xlSortNormal

  Range("T1").Select
  MsgBox "La Base est à jour !" & Chr$(13) & Chr$(13) & "Avec " & Cells(1, 28).Value & " fiches de Maintenance"
End Sub
D'avance merci
Dominique
 
- 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
3
Affichages
884
  • Question Question
Microsoft 365 macro vba sumifs
Réponses
5
Affichages
750
Retour