Aide sur Macro excel evennementielle
Dom51
-
Dom51 -
Dom51 -
Bonjour, à tous !
Comme pas mal de monde j'ai un petit souci de syntaxe. Je suis en train d' essayer de faire une macro pour qu'a un jour donné (le Vendredi) a l'ouverture du classeur excel me propose d'imprimer telle ou telle feuille.Cela fonctionne mais nécéssite une petite amélioration :
Le classeur contient une 15 de feuilles Je suis oblige d'ouvrir une feuille par défaut (Di pair) dans laquelle j'ai place une formule WeekDay;
Le problème c'est que ce n'est pas forcément la feuille que les opérateurs utilisent et ca les perturbent qu'une autre feuille soit ouverte par défaut
La classe serait que je n'ai pas à ouvrir la feuille Di pair mais de laisser la feuille affichée à la dernière fermeture du classeur et que VBa détermine tout seul si je suis vendredi
Or je sais que la fonction WeekDay(Date,FirstDayOfWeek=vbMonday) existe dans VBA mais je n'arrive pas à l'utilisée
D'avance merci à tous!
Dom
Sub Auto_Open() ' déclanchement à l'ouverture du classeur
Sheets("Di pair").Select
If Range("U11") = 6 Then ' Condition que joursemaine = vendredi
If Weekday = 6 Then
msg = "Voulez-vous imprimer la feuille d'absence de la semaine paire ?"
confirmation = MsgBox(msg, vbYesNo + vbExclamation, "Nous sommes vendredi, vous devez afficher le planning des absences")
Else
Exit Sub
End If
If confirmation = vbYes Then
Sheets("Abs pair").PrintOut Copies:=1
Exit Sub
End If
If confirmation = vbNo Then
msg = "Voulez-vous imprimer la feuille d'absence de la semaine impaire ?"
confirmation = MsgBox(msg, vbYesNo + vbExclamation, "Nous sommes vendredi, vous devez afficher le planning des absences")
End If
If confirmation = vbYes Then
Sheets("Abs imp").PrintOut Copies:=1
End If
End Sub
Comme pas mal de monde j'ai un petit souci de syntaxe. Je suis en train d' essayer de faire une macro pour qu'a un jour donné (le Vendredi) a l'ouverture du classeur excel me propose d'imprimer telle ou telle feuille.Cela fonctionne mais nécéssite une petite amélioration :
Le classeur contient une 15 de feuilles Je suis oblige d'ouvrir une feuille par défaut (Di pair) dans laquelle j'ai place une formule WeekDay;
Le problème c'est que ce n'est pas forcément la feuille que les opérateurs utilisent et ca les perturbent qu'une autre feuille soit ouverte par défaut
La classe serait que je n'ai pas à ouvrir la feuille Di pair mais de laisser la feuille affichée à la dernière fermeture du classeur et que VBa détermine tout seul si je suis vendredi
Or je sais que la fonction WeekDay(Date,FirstDayOfWeek=vbMonday) existe dans VBA mais je n'arrive pas à l'utilisée
D'avance merci à tous!
Dom
Sub Auto_Open() ' déclanchement à l'ouverture du classeur
Sheets("Di pair").Select
If Range("U11") = 6 Then ' Condition que joursemaine = vendredi
If Weekday = 6 Then
msg = "Voulez-vous imprimer la feuille d'absence de la semaine paire ?"
confirmation = MsgBox(msg, vbYesNo + vbExclamation, "Nous sommes vendredi, vous devez afficher le planning des absences")
Else
Exit Sub
End If
If confirmation = vbYes Then
Sheets("Abs pair").PrintOut Copies:=1
Exit Sub
End If
If confirmation = vbNo Then
msg = "Voulez-vous imprimer la feuille d'absence de la semaine impaire ?"
confirmation = MsgBox(msg, vbYesNo + vbExclamation, "Nous sommes vendredi, vous devez afficher le planning des absences")
End If
If confirmation = vbYes Then
Sheets("Abs imp").PrintOut Copies:=1
End If
End Sub
Configuration: Windows XP Internet Explorer 7.0
2 réponses
-
Bonjour,
Private Sub Workbook_Open() ' déclanchement à l'ouverture du classeur Dim strFeuille As String, intConfirmation As Integer, strMsg As String strFeuille = ActiveSheet.Name Sheets("Di pair").Select If (Range("U11") = 6) Then ' Condition que joursemaine = vendredi If (Weekday(Now) = 6) Then strMsg = "Voulez-vous imprimer la feuille d'absence de la semaine paire ?" intConfirmation = MsgBox(strMsg, vbYesNo + vbExclamation, "Nous sommes vendredi, vous devez afficher le planning des absences") If (intConfirmation = vbYes) Then Sheets("Abs pair").PrintOut Copies:=1 Else If (intConfirmation = vbNo) Then strMsg = "Voulez-vous imprimer la feuille d'absence de la semaine impaire ?" intConfirmation = MsgBox(strMsg, vbYesNo + vbExclamation, "Nous sommes vendredi, vous devez afficher le planning des absences") If (intConfirmation = vbYes) Then Sheets("Abs imp").PrintOut Copies:=1 End If End If End If End If End If Sheets(strFeuille).Select End Sub '
L'utilisation de l'instruction "Exit Sub" n'est pas souhaitable, repenser votre algorithme de résolution
afin d'en utilisé le moins possible.
Lupin
Lupin -