OVH Cloud OVH Cloud

Ouverture d'Excel

2 réponses
Avatar
Erwann
Bonjour

Comment faire pour qu'Excel effectue une macro
ex : MsgBox "Salut"
pour chaque jour uniquement à la première ouverture d'Excel

Un truc ds ce genre

Private Sub Workbook_Open()

If Today "1e ouverture d'Excel" Then
MsgBox "Salut"
End if

End Sub

Ce qui m'intéresse, c'est surtout la traduction de la question
en langage VBA

Merci d'avance

2 réponses

Avatar
anonymousA
bonjour,

Plusieurs solutions s'offrent à toi. En voici une parmi d'autres

tu crées une macro complémentaire que tu inclus dans les macros
complémentares à ouvrir par Excel (Outils/Macros
complémentaires/Parcourir)lors de son ouverture.
Dans cette macro, tu auras une feuille appelé p.e LOG.Dans cette feuille LOG
tu auras la cellule A1 qui contiendra la date du jour

tu inclus dans le module Thisworkbook du fichier .xla

Private Sub Workbook_Open()

datejour = DateSerial(Year(Now), Month(Now), Day(Now))

With Sheets("LOG")
If Not IsEmpty(.Cells(1, 1)) Then
If DateSerial(Year(.Cells(1, 1)), Month(.Cells(1, 1)), Day(.Cells(1,
1))) = datejour Then
Else
MsgBox "1e ouverture d'Excel"
Cells(1, 1) = Now
End If
Else
Cells(1, 1) = Now
End If
ThisWorkbook.Save 'on enregistre le présent fichier pour conserver la date
' du jour en cellule A1 en prévision d'une prochaine ouverture d'une
'instance d'Excel.
End With

End Sub

la toute 1ere fois que tu chargeras la macro complémentaire , le programme
ira écrire la date du jour en cellule A1 dans ton fichier .xla et il y aura
le message car on initialisera pour la 1ere fois le fichier .
Ensuite à chaque ouverture d'une instance d'Excel, le programme vérifiera si
la date du jour correspond à celle de la cellule A1 et déclenchera ou pas le
Msgbox.

A+


Bonjour

Comment faire pour qu'Excel effectue une macro
ex : MsgBox "Salut"
pour chaque jour uniquement à la première ouverture d'Excel

Un truc ds ce genre

Private Sub Workbook_Open()

If Today "1e ouverture d'Excel" Then
MsgBox "Salut"
End if

End Sub

Ce qui m'intéresse, c'est surtout la traduction de la question
en langage VBA

Merci d'avance





Avatar
Nicolas B.
Bonjour,

Une autre possibilité, sans macro complémentaire :
Crée un nom dans ton classeur qui va contenir la date de dernière
ouverture :
InsertionNomDéfinir, Nom : DerniereOuverture, Fait référence à : =1

Puis colle cette macro dans ThisWorkbook :

Private Sub Workbook_Open()
If [DerniereOuverture] < Date Then
MsgBox "Bonjour !"
ActiveWorkbook.Names.Add "DerniereOuverture", CLng(Date)
End If
End Sub


A+
Nicolas B.

Bonjour

Comment faire pour qu'Excel effectue une macro
ex : MsgBox "Salut"
pour chaque jour uniquement à la première ouverture d'Excel

Un truc ds ce genre

Private Sub Workbook_Open()

If Today "1e ouverture d'Excel" Then
MsgBox "Salut"
End if

End Sub

Ce qui m'intéresse, c'est surtout la traduction de la question
en langage VBA

Merci d'avance