Simplifier une macro et Activate ou Select

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #18524161
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" #

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
garnote
Le #18524351
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"
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" #

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



michdenis
Le #18524681
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"
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"
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" #

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



Publicité
Poster une réponse
Anonyme