Microsoft 365 simplifier une macro

gothc

XLDnaute Occasionnel
Bonjour j'ai besoin de votre aide pour simplifier une macro
VB:
Sub colle()
Application.ScreenUpdating = False
    Sheets("B").Select
    
    Range("h21").Select
    Selection.Copy
    Sheets("test").Select
    
    Range("b23").Activate
    ActiveSheet.Paste
    Application.ScreenUpdating = False
    Sheets("B").Select
    
    Range("h23").Select
    Selection.Copy
    Sheets("test").Select
    
    Range("D23").Activate
    ActiveSheet.Paste
End Sub
Merci
 

Magic_Doctor

XLDnaute Barbatruc
Re tout le monde,
Ou mieux en deux lignes :
VB:
Sub Colle4()
    Application.ScreenUpdating = False: Set D = Sheets("test"): Set S = Sheets("B")
    D.[b23] = S.[h21]: D.[d23] = S.[h23]
End Sub
🤣😂😅
Bonjour sylvanu,

Bel exercice de style.
Une question. Pourquoi ne pas terminer par Application.ScreenUpdating = True ?
J'ai l'impression (car vu ailleurs) que ce n'est pas nécessaire, mais j'aimerais bien savoir pourquoi.
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
@Magic_Doctor
très bonne question ;)
dans le sens ou selon les versions de Excel il n'y a pas le même comportement
sur 2007 par exemple une fois la macro fini donc après en (end sub) c'a revient a true automatiquement
sur 2013 il faut le remettre

cela dit entre nous ,pour 2 cellules dans cet exercice il n'est pas vraiment utile de déactiver le rafraîchissement
 
Bonjour le fil, le forum

Suite à ce genre de problème, rencontré aussi avec Application.DisplayAlerts sur certaines versions, j'ai pris l'habitude, il y a des années, de toujours réactiver tout ce que je désactive, en le gérant également dans mes programmes avec une routine de gestion d'erreurs pour réactiver dans tous les cas. Je trouve de toute façon cela plus propre et ça fait ceinture et bretelles.

Bien cordialement, @+
 

Discussions similaires

Statistiques des forums

Discussions
315 098
Messages
2 116 189
Membres
112 679
dernier inscrit
Yupanki