Workbook_open uniquement dans modèle

Cuicui

XLDnaute Nouveau
Bonjour à tous,

Je suis confronté à un problème concernant la macro workbook_open ().

Je cherche un moyen pour qu'elle ne s'applique qu'à mon modèle et non à tous les fichiers que je crée à partir de celui ci.

Ma macro est la suivante :

Private Sub Workbook_Open()

Range("D4").Value = CLng(Date) & "_" & Format(Time(), "HHMMSS")
Sheets("INFORMATION").Select

End Sub


N'ayant pas trouvé de solutionsn je m'en remet donc à vous.*

Merci d'avance.

Cuicui
 

Dranreb

XLDnaute Barbatruc
Re : Workbook_open uniquement dans modèle

Bonsoir.
Si la cellule D4 de la feuille active au moment de l'enregistrement du modèle est vide ou contient un texte reconnaissable du genre "N°JOUR_HHMMSS" vous pouvez vérifier si elle n'est pas dans cet état et dans ce cas effectuer Exit Sub
P.S. Remarque: il vaudrait mieux préciser le CodeName de la feuille devant .Range("D4"]
À +
 
Dernière édition:

ERIC S

XLDnaute Barbatruc
Re : Workbook_open uniquement dans modèle

Bonjour

une solution peut être de regarder si D4 est vide

un problème néanmoins, tu ne slélectionne information qu'après avoir écrit dans D4....sue quelle feuille??????

donc sinon

if sheets("xxx").range("D4").value="" then
...
...
endif

ne s'exécutera que que si la cellule est vide, donc à l'ouverture du modèle

tu peux aussi tester le nom du fichier

edit: salut DRANREB et bonne fin de WE
 

mromain

XLDnaute Barbatruc
Re : Workbook_open uniquement dans modèle

Bonjour à tous, Une solution serait peut-être de contrôler le format du fichier. La fonction suivante renvoie un booléen :
  • TRUE si le classeur passé en paramètre est un modèle.
  • FALSE dans le cas contraire.
VB:
Public Function IsTemplate(wbk As Workbook) As Boolean     IsTemplate = wbk.FileFormat = XlFileFormat.xlOpenXMLTemplate Or _         wbk.FileFormat = XlFileFormat.xlOpenXMLTemplateMacroEnabled Or _         wbk.FileFormat = XlFileFormat.xlTemplate Or _         wbk.FileFormat = XlFileFormat.xlTemplate8 End Function
Du coup, il faudrait modifier la procédure à l'ouverture du classeur comme suit :
VB:
Private Sub Workbook_Open()  If IsTemplate(ThisWorkbook) Then     Range("D4").Value = CLng(Date) & "_" & Format(Time(), "HHMMSS")     Sheets("INFORMATION").Select End If  End Sub
A+
 

Cuicui

XLDnaute Nouveau
Re : Workbook_open uniquement dans modèle

Bonjour à tous,

Tout d'abord merci pour la rapidité de vos réponses.

Par flemmardise, j'ai essayé la solution la plus simple : celle de d'ERIC S et cela marche parfaitement :)

Un grand merci à Eric ainsi qu'aux autres bien évidemment.

Bon dimanche à vous et à bientôt pour un nouveau problème :)
 

Discussions similaires

Réponses
19
Affichages
2 K

Statistiques des forums

Discussions
312 492
Messages
2 088 926
Membres
103 984
dernier inscrit
maliko67