Macro remplacement de texte
Bonjour,
J'aimerais créer une macro qui s'active dès que l'on utilise une certaine page d'un classeur, qui supprime une partie de cette feuille et qui écrive un texte à la place.
Voici mon code :
Sub Auto_Open()
If DateDiff("d", Now, "31/12/18") > 0 Then
Range("P15:S18").Select
Selection.ClearContents
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
Range("P15:Q18").Select
ActiveCell.FormulaR1C1 = "Veuillez contacter la maintenance"
Range("P15:Q18").Select
Selection.Font.Bold = True
Selection.Font.Italic = True
Selection.Font.Size = 16
Selection.VerticalAlignment = xlVAlignCenter
Selection.Font.ColorIndex = 3
Selection.Interior.Color = RGB(174, 240, 194)
Selection.Borders.Weight = 4
Selection.Borders.Color = RGB(255, 0, 0)
Else
MsgBox "Veuillez contacter la maintenance"
End If
End Sub
Sub Auto_Close()
If DateDiff("d", Now, "31/12/18") > 0 Then
Cependant, je n'ai pas l'impression que la macro détecte bien quand elle doit s'activer.
En effet, quand je remplace la date par le 20/07/18, rien ne se passe :/
Merci d'avance
Bonjour,
vous devez passer par les macros "de la feuille" et choisir l'événement "Activate"
La sub ainsi créée sera lancée lors de l'activation de la feuille.
Pour le "Close" il faudra prendre l"événement "Desactivate".
@ bientôt
LouReeD
Bonjour, Salut LouReed !
Bon !
D'abord, il serait bien de mettre le code cité dans un post sous balises Code !
2e remarque : les macros Auto_Open et autres Auto_... sont des vieilleries datant d'avant la mise en place des procédures d'évènements (apparues avec Excel 97 si mes souvenirs sont bons). Elles sont à remplacer par les procédures évènementielles correspondantes, mais comme l'a souligné LouReed, encore faut-il choisir les bons évènements...
En outre, les procédures Auto_... doivent être placées dans un module standard !
Par contre les procédures d'évènements sont elles, à mettre dans les modules de feuille ou du classeur selon le cas...
Sur le code : il n'est pas vraiment rationnel d'utiliser Now, qui renvoie la date et l'heure, au lieu de Date lorsqu'on opère sur une différence de dates !
Toujours sur le code : ce qui suit est du code enregistré, absolument pas épuré, qui demeure donc à réécrire, les Select et Selection sont à éliminer, et la plupart des lignes sont inutiles.
Encore sur le code : en sélectionnant P15:Q18... après avoir fusionné P15:S18
Enfin, la notion de Page n'a de réalité que lorsqu'il s'agit d'impression. Ne pas confondre Page et Feuille, subdivision d'un classeur...
Cordialement.
