macro automatiser : autoOpen et autoClose

  • Initiateur de la discussion Initiateur de la discussion Sene
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

Sene

Guest
mon macro autoOpen de fonctionne pas que j'ouvre le fichier. Et pour ça fonctionne que je clic sur run
est-ce qu'il faut l'enrégistrer dans un repertoire ou fichier particulier?

Sub autoOpen()

MsgBox "Ce mseeage test mon macro "

End Sub


Merci
 
Solution
Re : macro automatiser : autoOpen et autoClose

Bonjour Canard ,

Alors le code mise au propre sans optimisation, juste pour que cela fonctionne

Attention, code à copier ici :
Module.jpg

Code:
Option Explicit
Private Sub Workbook_Open()
Dim C As Integer
'
Range("D28").Select ' curseur sur D28
For C = 1 To 6
 Select Case ActiveCell.Value
 Case Is < 200
  With Selection.Font
    .Bold = True
    .Color = 2
    .TintAndShade = 0
  End With
  'incrémente le compteur C
   ActiveCell.Offset(0, 1).Select
  'ActiveCell.Offset(1, 0).Select ' déplace le curseur d'une ligne
 End Select
Next C
End Sub

Cordialement,
Salut Sene, JP, le Forum

Pour une macro automatique en Ouverture...

Nous avons déjà abordé la question dans ce Forum en ce qui concerne les les réserves quand à l'utilisation des ces veilles macros Aut😵pen ou Auto_Close... qui datent d'XL4 (attention la SPAM veille !!) et qui risquent bien de disparaitre dans une prochaine version. (voir ce fil

Si on veut les utiliser tout de même la syntax est dans un module standard :

Sub Aut😵pen ()
MsgBox "Welcome to ThisWorkBook"
End Sub

Sub Auto_Close ()
MsgBox "Bye Bye"
End Sub

Ce que nous recommandons sur XLD c'est d'utiliser les macro évènementielles suivantes qui se placent dans le Private Module de ThisWorkBook :

Donc dans le Private module "ThisWorkBook"
Private Sub Workbook_Open()
MacroOuverture 'Lancement d'un macro standard ou écriture d'un code directement ici
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
MacroFermeture 'Lancement d'un macro standard ou écriture d'un code directement ici
End Sub




Pour les MsgBox...

Si c'est un message direct comme ceci, les parenthèse sont inutiles
Sub Coucou()
MsgBox "Hello le Forum", vbExclamation, "Coucou"
End Sub

Si c'est message par retour de variables :

Sub HappyNotHappy()
Dim Msg As String
Dim Style As Single
Dim Reponse As Byte

Msg = "êtes vous content ?"
Style = vbYesNo + vbCritical

Reponse = MsgBox(Msg, Style, "CouCou")

If Reponse = 6 Then MsgBox "Moi Aussi"
If Reponse = 7 Then MsgBox "C'est dommage !"
End Sub


Bonne Soirée
@+Thierry
 
Re : macro automatiser : autoOpen et autoClose

Bonjour Thierry et le Forum
EXCEL 2007, j'ai déjà utilisé Auto_open() sans problème, mais ici que ce soit Aut😵pen() ou "Private Sub Workbook_Open()", ma macro ne veut pas démarré, alors qu'elle fonctionne à merveille si je l'éxécute fichier ouvert. J'ai bien sûr activé l'éxecution de macro.
Merci d'abréger mes souffrance !
JPV
Sub AutoOpen()
Private Sub Workbook_Open()

'
' AutoOpen Macro
'
Option Explicit
Dim C As Integer

'
Range("D28").Select ' curseur sur D28
For C = 1 To 6
Select Case ActiveCell.Value
Case Is < 200
With Selection.Font
.Bold = True
.Color = -16776961
.TintAndShade = 0
End With

' incrémente le compteur C
ActiveCell.Offset(0, 1).Select
' ActiveCell.Offset(1, 0).Select ' déplace le curseur d'une ligne
Case Else
End Select
Next C

End Sub
 
Re : macro automatiser : autoOpen et autoClose

Bonjour Canard ,

Alors le code mise au propre sans optimisation, juste pour que cela fonctionne

Attention, code à copier ici :
Module.jpg

Code:
Option Explicit
Private Sub Workbook_Open()
Dim C As Integer
'
Range("D28").Select ' curseur sur D28
For C = 1 To 6
 Select Case ActiveCell.Value
 Case Is < 200
  With Selection.Font
    .Bold = True
    .Color = 2
    .TintAndShade = 0
  End With
  'incrémente le compteur C
   ActiveCell.Offset(0, 1).Select
  'ActiveCell.Offset(1, 0).Select ' déplace le curseur d'une ligne
 End Select
Next C
End Sub

Cordialement,
 

Pièces jointes

  • Module.jpg
    Module.jpg
    31.4 KB · Affichages: 149
  • Module.jpg
    Module.jpg
    31.4 KB · Affichages: 137
Re : macro automatiser : autoOpen et autoClose

Merci pour ta réponse Camarchepas, mais effectivement ça ne marche pas, mais en plus je suis perplexe, car je n'ai pas réussi à retrouver ma macro. Je crois comprendre que tu me dis de l'enregistrer dans VBAProject, mais
1-je ne trouve pas ce Dossier que je suppose être un dossier système ?
2-Je suppose que la cause de la disparition de ma macro en est le Private Sub Workbook_Open(), et j'ignore comment afficher VBAProject et les différents composants (modules etc).
En bref, AutoOpen() ou Workbook_Open, la macro fonctionne lorsqu'on l'exécute, mais elle ne s'éxécute pas lorsqu'on appelle la feuille. Mon objectif est tout simplement d'afficher en rouge les cellules négatives ! Peut être existe-il une fonction toute faite dans EXCEl ?
Merci d'avance
JPV
 
Re : macro automatiser : autoOpen et autoClose

Bonjour camarche ! et Merci
Tout ne saute pas aux yeux dans VBA. Du coup j'ai voulu rassembler toutes mes macros dans VBAProject Workbook, (pour simplifier), mais il ne trouve plus les macros autres que l'automatique, donc j'ai fait marche arrière.
J'ai un autre problème : La ligne en rouge Bug : Erreur 13 Incompatibilité de type. J'ai du alimenter ma variable "Colonne" par une cellule dont la formule calcule la valeur (Code mis en commentaire). Je suis sûr qu'il y a plus simple et plus élégant ?
Cordialement JPV
Sub Test()
'
Dim X As Integer 'Nom de H1
Dim Y As Integer 'Nom de I1
Dim Colonne As Integer
'
Range("H1").Select 'Cellule nommée y
' Colonne = ActiveCell.Value
Colonne = "=IF(DAY(TODAY())<=15,(RC[1]*2)-1,(RC[1]*2))"
ActiveSheet.Columns("C").Rows("2:31").Offset(0, Colonne).Select
With Selection.Interior
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
 
Dernière modification par un modérateur:
Re : macro automatiser : autoOpen et autoClose

Bonsoir,
Code correctif en VBA pour utiliser la colonne 1
ActiveCell.FormulaR1C1 = "=IF(DAY(TODAY())<=15,(RC1*2)-1,(RC1*2))"

Formule écrite dans la cellule :
=SI(JOUR(AUJOURDHUI())<=15;($A5*2)-1;($A5*2))

Cordialement
Robert
 
Re : macro automatiser : autoOpen et autoClose

Bonjour Herdet et merci pour ta réponse, c'est effectivement ce que j'ai fait, mais çà m'eut paru plus immédiat de l'intégrer dans un programme qui par ailleurs et assez conséquent, mais c'est surtout pour la satisfaction de l'ersprit, je ne comprends pas ce qui ne fonctionne pas et pourquoi. Enfin merci à tous pour ce forum coopératif ! JPV
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
43
Affichages
837
Réponses
5
Affichages
178
Retour