Rapport de message :*
 

Re: Appels de procédures et portée de variables

Titre du sujet : Re: Appels de procédures et portée de variables
par myDearFriend! le 13/01/2008 18:49:28

Bonjour dss,

L'évènement Workbook_BeforeSave() de l'objet ThisWorkbook me paraît une très bonne idée et même mieux que le Workbook_BeforeClose() que j'avais suggéré dans nos précédents échanges.

Tu trouveras donc ci-joint une proposition de solution partant sur cette base.

De plus, tu verras que dans cet exemple, j'ai changé la méthode de protection de ta feuille (voir Workbook_Open).
Le projet étant déjà assez complexe à l'origine, lors de nos échanges précédents je n'avais pas souhaité te perturber d'avantage et te parler encore de la protection de feuille en utilisant l'argument UserInterfaceOnly. Tu vas voir que ce mode de protection est très intéressant puisqu'il permet de protéger la feuille des manipulations utilisateur tout en permettant au code VBA d'agir sans besoin de déprotéger l'ensemble.

Par ailleurs, j'ai remplacé ta formule de calcul colonne G (durée) par le résultat d'un calcul purement VBA (voir évènement Worksheet_Change de la feuille Reservation).
Ca me parait plus judicieux pour plusieurs raisons :
[list]
[*]tout est déjà en place pour pouvoir le faire facilement par le code.
[*]le mélange formule sur feuille et code VBA n'est pas toujours souhaitable (avis personnel) et n'a pas vraiment d'intérêt ici.
[*]avec la formule, il te faudrait la prévoir également sur les lignes suivantes encore vide. Et dans ce cas, ton fichier s'alourdirait inutilement (ça pourrait également remettre en cause le code de suppression des lignes vides).
[/list]
Espérant t'avoir aidé.

Cordialement,

Nb: je n'ai pas compris pourquoi tu avais échangé la ligne :
'Vérif colonne M
    If Cells(lig, 8).Value = "OUI" Then
par ceci (qui ne fonctionne plus) :
'Vérif colonne M
        If Target.Value = "NON" Then