Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

rendre l'exécution d'un code, silencieux (visuellement parlant)

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

pascal21

XLDnaute Barbatruc
PHP:
Sub sauvegardes()

On Error Resume Next
With Sheets("Evenements trimestriels")
.Activate
.Range("A5:I300").Select
    Application.CutCopyMode = False
    Selection.Copy
   End With
Ligne = Sheets("Sauvegardes évenements").[A65000].End(xlUp).Offset(2, 0).Row
Sheets("Sauvegardes évenements").Cells(Ligne, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
      
With Sheets("Récap.")
.Activate
 .Range("a1:k1,a5:k500").Select
 Application.CutCopyMode = False
    Selection.Copy
Sheets("Sauvegardes récap.").[A65000].End(xlUp).Offset(2, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
   

With Sheets("Récap.")
.Activate
.Range("a1").Select
Selection.Copy
Sheets("analyses").[A65000].End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
      
      
  With Sheets("Récap.")
.Activate
 .Range("k4").Select
 Selection.Copy
Sheets("analyses").[A65000].End(xlUp).Offset(0, 3).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
          
        
    With Sheets("Récap.")
.Activate
  .Range("e2").Select
 Selection.Copy
Sheets("analyses").[A65000].End(xlUp).Offset(0, 4).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
            
      
     With Sheets("Récap.")
.Activate
  .Range("l1").Select
 Selection.Copy
Sheets("analyses").[A65000].End(xlUp).Offset(0, 7).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
           
       
     With Sheets("Récap.")
.Activate
  .Range("m1").Select
 Selection.Copy
Sheets("analyses").[A65000].End(xlUp).Offset(0, 8).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
           
       
     With Sheets("Récap.")
.Activate
       .Range("g2").Select
 Selection.Copy
Sheets("analyses").[A65000].End(xlUp).Offset(0, 9).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
      End With
      End With
   End With
   End With
   End With
   End With
   End With
   With Sheets("récap.")
   .Activate
   .Range("k4").Value = ClearContents
   End With
   
      With Sheets("Evenements trimestriels")
   .Activate
   .Range("A5:a300,c5:d300,i5:i300").Select
    Application.CutCopyMode = False
 Selection.ClearContents
 
  
  .Range("b2").Value = Now
  .Range("a5").Select
     End With
   
    
  End Sub
bonsoir le forum
j'ai ce code dans un module qui fonctionne bien
j'aimerais deux choses
1er le simplifier si possible et nécessaire
2eme; rendre son éxecution 'silencieuse' j'entends pas là, que le changement de feuilles ne soit pas visible à l'écran
si vous avez une idée, je prends
 
Re : rendre l'exécution d'un code, silencieux (visuellement parlant)

Bonjour,

Pour le "silence Visuel" ...
Code:
Application.ScreenUpdating = False
en début de code et
Code:
Application.ScreenUpdating = True
en fin de code

A +
🙂
 
Re : rendre l'exécution d'un code, silencieux (visuellement parlant)

Re,

Quant au code lui même ... on dirait l'enregistreur de macros ...
avec tous les Select ... qui devraient être éliminés, ce qui va améliorer la performance du code ...

A +
🙂
 
Re : rendre l'exécution d'un code, silencieux (visuellement parlant)

bonsoir
ce n'est pas de l'enregistreur c'est bien moi qui l'est écrit
j'ai déja vu de nombreuses fois qu'il fallait éviter les 'select sans comprendre par quoi remplacer
ha!! et merci pour le code ça rends mon 'usine à gaz' de 2.5 Mo un peu plus fluide
 
Dernière édition:
Re : rendre l'exécution d'un code, silencieux (visuellement parlant)

bonsoir
ce n'est pas de l'enregistreur c'est bien moi qui l'est écrit
j'ai déja vu de nombreuses fois qu'il fallait éviter les 'select sans comprendre par quoi remplacer

Bonsoir,

A titre d'exemple :
Code:
With Sheets("Evenements trimestriels") 
.Activate 
.Range("A5:I300").Select 
    Application.CutCopyMode = False 
    Selection.Copy
peut être remplacé par :
Code:
With Sheets("Evenements trimestriels")
.Range("A5:I300").Copy

A +
🙂
 
Re : rendre l'exécution d'un code, silencieux (visuellement parlant)

Bonne année à tous
Code:
Sub sauvegardes()
On Error Resume Next
Application.ScreenUpdating = False
Sheets("Evenements trimestriels").Range("A5:I300").Copy
Sheets("Sauvegardes évenements").[A65000].End(xlUp).Offset(2, 0).PasteSpecial Paste:=xlPasteValues
      
With Sheets("Récap.")
    .Range("a1:k1,a5:k500").Copy
    Sheets("Sauvegardes récap.").[A65000].End(xlUp).Offset(2, 0).PasteSpecial Paste:=xlPasteValues
   
    .Range("a1").Copy
    Sheets("analyses").[A65000].End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
      
    .Range("k4").Copy
    Sheets("analyses").[A65000].End(xlUp).Offset(0, 3).PasteSpecial Paste:=xlPasteValues
          
    .Range("e2").Copy
    Sheets("analyses").[A65000].End(xlUp).Offset(0, 4).PasteSpecial Paste:=xlPasteValues
      
    .Range("l1").Copy
    Sheets("analyses").[A65000].End(xlUp).Offset(0, 7).PasteSpecial Paste:=xlPasteValues
           
    .Range("m1").Copy
    Sheets("analyses").[A65000].End(xlUp).Offset(0, 8).PasteSpecial Paste:=xlPasteValues

    .Range("g2").Copy
    Sheets("analyses").[A65000].End(xlUp).Offset(0, 9).PasteSpecial Paste:=xlPasteValues
   
   .Range("k4").ClearContents
End With
   
With Sheets("Evenements trimestriels")
    .Activate
    .Range("A5:a300,c5:d300,i5:i300").ClearContents
    .Range("b2").Value = Now
    .Range("a5").Select
End With
   
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
ATTENTION : je ne l'ai pas testé !
On error resume next me gêne : en cas d'erreur, faire comme si de rien n'était et continuer => après, on a des données aberrantes, et on s'étonne !

With sert de mise en préfixe et colle tout ce qui suit à chaque instruction commençant par un caractère de liaison ("." ou "!"). pas la peine de le répéter à chaque fois.

Tu calcules Ligne pour une unique instruction dans "Sauvegardes évenements", alors que tu recalcules pour chaque instructions la même ligne pour "analyses" ???
La calculer une seule fois me semblerait plus judicieux (et ferait "gagner du temps", mais aux fréquences actuelles...)

Application.CutCopyMode = False => élimine les tirets clignotant de la plage copiée => une seule fois suffit, juste avant de sortir

Les indentations sont utiles pour organiser ton code et en faciliter la lecture, pas pour "faire beau". Regarde comme je les utilises : on sait dans quelle instruction With on est, d'un coup d'œil
A+
 
Dernière édition:
Re : rendre l'exécution d'un code, silencieux (visuellement parlant)

Bonjour à tous,
Un autre exemple pour éviter select, rien à voir avec le code de pascal21

Code:
.../...
Range(ShtR.Cells(DerLiR - 1, 1), ShtR.Cells(DerLiR - 1, 6)).Select
                With Selection.Borders(xlEdgeBottom)
                    .LineStyle = xlContinuous
                    .Weight = xlHairline
                    .ColorIndex = xlAutomatic
                End With
.../...

remplacé par

Code:
.../...
With Range(ShtR.Cells(DerLiR - 1, 1), ShtR.Cells(DerLiR - 1, 6)).Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlHairline
        .ColorIndex = xlAutomatic
End With
.../...

Ainsi, une fois le code exécuté, la plage sélectionné n'apparait plus dans ta feuille de calcul.
Sauf si tu as un autre select derrière évidemment 🙄

Klin89
 
Dernière édition:
- 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
10
Affichages
791
Réponses
18
Affichages
597
Réponses
2
Affichages
398
Réponses
17
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…