Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Simplifier une macro et Activate ou Select

3 réponses
Avatar
garnote
Bonjour,Bonjour,

En sortant de mon banc de neige, j'ai reçu cette macro
qu'on me demandait de simplifier :

Sub efface()
Sheets("CUJ").Select
ActiveWindow.SmallScroll Down:=-66
Range("A3:C22,A26:C46,A50:C70").Select
Range("A50").Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-63
Range("A3").Select
Sheets("CYU").Select
ActiveWindow.SmallScroll Down:=-15
Range("A3:C22,A26:C46,A50:C70").Select
Range("A50").Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-57
Range("A3").Select
Sheets("TPJ").Select
Range("A3:C22,A26:C46,A50:C70").Select
Range("A50").Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-45
Range("A3").Select
Sheets("THL").Select
Range("A3:C22,A26:C46,A50:C70").Select
Range("A50").Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-54
Range("A3").Select
Sheets("CUJ").Select
Range("A3").Select
End Sub

J'ai fait mon possible et ça donne exactement
le même résultat, n'est-il pas ?

Sub Effacer()
Application.ScreenUpdating = False
For Each F In Sheets(Array("CUJ", "CYU", "TPJ", "THL"))
F.Select
Range("A3:C22,A26:C46,A50:C70").ClearContents
Range("A3").Activate
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 1
Next F
Sheets("CUJ").Activate
Application.ScreenUpdating = True
End Sub

Questions :
1) Peut-on faire plus court pour impressionner la galerie ? ;-)
2) Dans la macro « Effacer », qu'est qui est préférable :
Select ou Activate ?
3) Et c'est quoi la nuance, dans ce contexte, entre
Select et Activate ?

Voir le fichier joint pour vous simplifier la vie :
http://www.cijoint.fr/cjlink.php?file=cj200901/cijxQ7Wf9o.xls


Serge

3 réponses

Avatar
michdenis
La question c'est de savoir ce que doit faire la macro:
si c'est seulement pour effacer des plages de cellules

Sub Effacer()
Dim F As Worksheet
For Each F In Sheets(Array("CUJ", "CYU", "TPJ", "THL"))
F.Range("A3:C22,A26:C46,A50:C70").ClearContents
Next
End Sub





"garnote" a écrit dans le message de groupe de discussion :
#

Bonjour,Bonjour,

En sortant de mon banc de neige, j'ai reçu cette macro
qu'on me demandait de simplifier :

Sub efface()
Sheets("CUJ").Select
ActiveWindow.SmallScroll Down:=-66
Range("A3:C22,A26:C46,A50:C70").Select
Range("A50").Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-63
Range("A3").Select
Sheets("CYU").Select
ActiveWindow.SmallScroll Down:=-15
Range("A3:C22,A26:C46,A50:C70").Select
Range("A50").Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-57
Range("A3").Select
Sheets("TPJ").Select
Range("A3:C22,A26:C46,A50:C70").Select
Range("A50").Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-45
Range("A3").Select
Sheets("THL").Select
Range("A3:C22,A26:C46,A50:C70").Select
Range("A50").Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-54
Range("A3").Select
Sheets("CUJ").Select
Range("A3").Select
End Sub

J'ai fait mon possible et ça donne exactement
le même résultat, n'est-il pas ?

Sub Effacer()
Application.ScreenUpdating = False
For Each F In Sheets(Array("CUJ", "CYU", "TPJ", "THL"))
F.Select
Range("A3:C22,A26:C46,A50:C70").ClearContents
Range("A3").Activate
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 1
Next F
Sheets("CUJ").Activate
Application.ScreenUpdating = True
End Sub

Questions :
1) Peut-on faire plus court pour impressionner la galerie ? ;-)
2) Dans la macro « Effacer », qu'est qui est préférable :
Select ou Activate ?
3) Et c'est quoi la nuance, dans ce contexte, entre
Select et Activate ?

Voir le fichier joint pour vous simplifier la vie :
http://www.cijoint.fr/cjlink.php?file=cj200901/cijxQ7Wf9o.xls


Serge
Avatar
garnote
Elle doit faire exactement la même chose que
la macro « efface ».
Effacer les données des feuilles du Array,
sélectionner A3 de chacune de ces feuilles
et faire défiler chaque feuille du dit Array en A1.


"michdenis" a écrit dans le message de news:
La question c'est de savoir ce que doit faire la macro:
si c'est seulement pour effacer des plages de cellules

Sub Effacer()
Dim F As Worksheet
For Each F In Sheets(Array("CUJ", "CYU", "TPJ", "THL"))
F.Range("A3:C22,A26:C46,A50:C70").ClearContents
Next
End Sub





"garnote" a écrit dans le message de groupe de discussion :
#

Bonjour,Bonjour,

En sortant de mon banc de neige, j'ai reçu cette macro
qu'on me demandait de simplifier :

Sub efface()
Sheets("CUJ").Select
ActiveWindow.SmallScroll Down:=-66
Range("A3:C22,A26:C46,A50:C70").Select
Range("A50").Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-63
Range("A3").Select
Sheets("CYU").Select
ActiveWindow.SmallScroll Down:=-15
Range("A3:C22,A26:C46,A50:C70").Select
Range("A50").Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-57
Range("A3").Select
Sheets("TPJ").Select
Range("A3:C22,A26:C46,A50:C70").Select
Range("A50").Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-45
Range("A3").Select
Sheets("THL").Select
Range("A3:C22,A26:C46,A50:C70").Select
Range("A50").Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-54
Range("A3").Select
Sheets("CUJ").Select
Range("A3").Select
End Sub

J'ai fait mon possible et ça donne exactement
le même résultat, n'est-il pas ?

Sub Effacer()
Application.ScreenUpdating = False
For Each F In Sheets(Array("CUJ", "CYU", "TPJ", "THL"))
F.Select
Range("A3:C22,A26:C46,A50:C70").ClearContents
Range("A3").Activate
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 1
Next F
Sheets("CUJ").Activate
Application.ScreenUpdating = True
End Sub

Questions :
1) Peut-on faire plus court pour impressionner la galerie ? ;-)
2) Dans la macro « Effacer », qu'est qui est préférable :
Select ou Activate ?
3) Et c'est quoi la nuance, dans ce contexte, entre
Select et Activate ?

Voir le fichier joint pour vous simplifier la vie :
http://www.cijoint.fr/cjlink.php?file=cj200901/cijxQ7Wf9o.xls


Serge



Avatar
michdenis
Je suppose que l'usager qui a pondu la macro,
ne savait pas comment effacer une plage de cellule
sans la sélectionner à l'écran. Ce sont des lignes de
code que l'enregistreur de macro écrit mais qui sont
habituellement inutiles.



"garnote" a écrit dans le message de groupe de discussion :

Elle doit faire exactement la même chose que
la macro « efface ».
Effacer les données des feuilles du Array,
sélectionner A3 de chacune de ces feuilles
et faire défiler chaque feuille du dit Array en A1.


"michdenis" a écrit dans le message de news:

La question c'est de savoir ce que doit faire la macro:
si c'est seulement pour effacer des plages de cellules

Sub Effacer()
Dim F As Worksheet
For Each F In Sheets(Array("CUJ", "CYU", "TPJ", "THL"))
F.Range("A3:C22,A26:C46,A50:C70").ClearContents
Next
End Sub





"garnote" a écrit dans le message de groupe de discussion :
#

Bonjour,Bonjour,

En sortant de mon banc de neige, j'ai reçu cette macro
qu'on me demandait de simplifier :

Sub efface()
Sheets("CUJ").Select
ActiveWindow.SmallScroll Down:=-66
Range("A3:C22,A26:C46,A50:C70").Select
Range("A50").Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-63
Range("A3").Select
Sheets("CYU").Select
ActiveWindow.SmallScroll Down:=-15
Range("A3:C22,A26:C46,A50:C70").Select
Range("A50").Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-57
Range("A3").Select
Sheets("TPJ").Select
Range("A3:C22,A26:C46,A50:C70").Select
Range("A50").Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-45
Range("A3").Select
Sheets("THL").Select
Range("A3:C22,A26:C46,A50:C70").Select
Range("A50").Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=-54
Range("A3").Select
Sheets("CUJ").Select
Range("A3").Select
End Sub

J'ai fait mon possible et ça donne exactement
le même résultat, n'est-il pas ?

Sub Effacer()
Application.ScreenUpdating = False
For Each F In Sheets(Array("CUJ", "CYU", "TPJ", "THL"))
F.Select
Range("A3:C22,A26:C46,A50:C70").ClearContents
Range("A3").Activate
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 1
Next F
Sheets("CUJ").Activate
Application.ScreenUpdating = True
End Sub

Questions :
1) Peut-on faire plus court pour impressionner la galerie ? ;-)
2) Dans la macro « Effacer », qu'est qui est préférable :
Select ou Activate ?
3) Et c'est quoi la nuance, dans ce contexte, entre
Select et Activate ?

Voir le fichier joint pour vous simplifier la vie :
http://www.cijoint.fr/cjlink.php?file=cj200901/cijxQ7Wf9o.xls


Serge