Aide simplification et définition de macro

Jacob

XLDnaute Nouveau
Bonjour le forum,

Ne commençant à utiliser le VBA que depuis le début de semaine, j’ai enregistré des macros pour ensuite analyser ce langage et essayer de simplifier ce que me produit l’enregistreur, seulement voilà, concernant deux macro il y a deux choses que je n’arrive pas à « simplifier » ou « éviter ».

Le premier problème concerne la macro « Fait », celle-ci a pour but de masquer des lignes dont le fond est d’une certaine couleur, j’aimerais qu’elle s’exécute automatiquement, pour cela pas de soucis (Feuil1>Worksheet>Colle la macro préalablement écrite), le problème est que la macro « re »-sélectionne en permanence la zone sur laquelle elle doit s’appliquer et empêche donc toute modification. Comment éviter cela ?

Le second problème concerne la macro « Param_imp », celle-ci défini mes paramètres d’impression qui sont les suivants : Zone d’impression A2àAR120, Format A3, Orientation Paysage, Marges étroites, Ajuster toutes les colonnes à une page, qualité 600ppp. Mon problème avec cette macro est que l’ayant créée avec l’enregistreur, elle est énorme, je n’arrive pas à tout déchiffrer et la simplifier. Je pense que beaucoup de lignes sont « inutiles ». Dans le but de simplifier ce code pourriez donc SVP m’expliquer ce que signifie toutes ces lignes (ou du moins en partie) et m’aider à le simplifier.

Je vous joints un fichier exemple avec les différentes macros que j’ai enregistré/écrites.

Pour rappel : les paramètres d’impression n’ont pas à être redéfinis à chaque fois ils doivent donc être une sorte d’information constante et non modifiable.

En espérant avoir était le plus précis possible.

Merci d’avance.
 

Pièces jointes

  • SIMPLIFICATION.xlsm
    183.3 KB · Affichages: 29
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Aide simplification et définition de macro

Bonjour.

Pour le 1er point, vous aimeriez qu’elle s’exécute automatiquement chaque fois qu'il se passe quoi d'autre qu'actuellement ?
parce qu'actuellement elle s’exécute automatiquement quand vous cliquez sur la forme "Bouton 5" libéllée "Masquer lignes FAIT"

Pour le second point tachez de repérer les instructions s'appliquant aux seules propriétés de ActiveSheet.PageSetup que vous voulez définir et ne mettez que celles là dans un seul With.
 
Dernière édition:

Jacob

XLDnaute Nouveau
Re : Aide simplification et définition de macro

Bonjour Dranreb,

1er point : je souhaite que la macro s'execute automatiquement chaque fois que je rempli une ligne avec le code couleur RGB(218, 238, 243).

2ème point : je vais essayer ça !
 

Dranreb

XLDnaute Barbatruc
Re : Aide simplification et définition de macro

Apparemment le changement de couleur de fond d'une cellule n'est pas suffisant pour déclencher l'évènement Worksheet_Change de Feuil1.
Je peux vous proposer un code qui s'exécute sur un clic droit et qui met cette couleur et masque la ligne :
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
With Intersect(Me.[A:AR], Target.EntireRow)
   .Interior.Color = RGB(218, 238, 243)
   .EntireRow.Hidden = True: End With
Cancel = True
End Sub
 

Jacob

XLDnaute Nouveau
Re : Aide simplification et définition de macro

Re bonjour,

Je suis parvenu à mes fins concernant la simplification des paramètres d'impression. Si ce n'est qu'il faut que je me bataille encore un petit peu afin d'ajuster l'impression, excel m'imprime les 120 lignes alors que je n'ai besoin que des lignes remplies.

En revanche je ne comprends pas pourquoi il faut executer votre opération avec un clic droit.
 

Dranreb

XLDnaute Barbatruc
Re : Aide simplification et définition de macro

Parce que le changement de couleur du fond d'une cellule ne provoquerait pas l'exécution d'une Worksheet_Change dans le module Feuil1 (Feui1). Alors autant simplifier ça par une autre manœuvre qui, elle, entraine une exécution. Il serait possible de le faire avec un double clic si vous préférez. (Private Sub Worksheet_BeforeDoubleClick dans le module de la feuille, avec même code).
 

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 107
dernier inscrit
cdel