OVH Cloud OVH Cloud

prédire l'avenir et voir le passé...

3 réponses
Avatar
Yvan
Bonjour à tout le monde,

on m'a posé une question assez intéressante en VBA :
- comment peut-on connaître le nom (temporaire) du prochain nouveau classeur
créé ou celui du dernier nouveau classeur créé ?

Malheureusement, je n'ai pas de réponse à apporter, alors peut-être en
avez-vous une ??

Merci d'avance,

Yvan

3 réponses

Avatar
Vincnet.
Bonjour,
Eh bien en créant par macro un nouveau classeur, non ?
(bien sûr tu crées inutilement ce nouveau classeur, mais comme tu connais
son nom, tu peux en déduire celui du prochain et celui du précédent)
--
A+

V.



Bonjour à tout le monde,

on m'a posé une question assez intéressante en VBA :
- comment peut-on connaître le nom (temporaire) du prochain nouveau classeur
créé ou celui du dernier nouveau classeur créé ?

Malheureusement, je n'ai pas de réponse à apporter, alors peut-être en
avez-vous une ??

Merci d'avance,

Yvan


Avatar
anonymousA
bonjour,

2 cas;
1-quand tu ouvres un nouveau classeur, celui-ci est par définition actif, il
te suffit dans une macro qui a déclenché la création de ce nouveau classeur
d'écrire pour obtenir le numéro de celui-ci

Nuclass=Right(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 8)

tu obtiens ainsi le N° du classeur nouvellement ouvert (en supposant que tu
es dans un Excel Français car classeur possède 8 lettres )

2-tu scrutes les classeurs dans la collection des classeurs ouverts et tu
recherches un classeur dont le nom commence par Classeur (ca suppose d'une
part que tu n'aies pas un autre classeur soit de même type ouvert car auquel
cas, il faudrait rechercher le plus grand numéro: c'est possible mais un peu
plus long car il faut faire un test, et d'autre part que tu n'aies pas un
classeur lui dûment enregistré mais dont le nom commence par Classeur)
et ensuite tu fais la même chose que dans le cas 1

For each wbk in workbooks
if left(wbk.name,8)="Classeur" then
Nuclass=Right(wbk.Name, Len(wbk.Name) - 8)
end if
exit for
next

A+


Bonjour à tout le monde,

on m'a posé une question assez intéressante en VBA :
- comment peut-on connaître le nom (temporaire) du prochain nouveau classeur
créé ou celui du dernier nouveau classeur créé ?

Malheureusement, je n'ai pas de réponse à apporter, alors peut-être en
avez-vous une ??

Merci d'avance,

Yvan


Avatar
isabelle
bonjour Yvan,

je ne suis pas sur de bien comprendre la question,
pour intercepter la création d'un nouveau classeur il faut dabord créer
un module de classe.
ensuite tu crée la connection
dans un module standard, tu met ce code puis tu l'exécute
par exemple : EventClassModule étant le nom du nouveau module de classe

Dim X As New EventClassModule
Sub InitializeApp()
Set X.App = Application
End Sub

dans le module de classe tu met ce code événementiel.

Public WithEvents App As Application

Private Sub App_NewWorkbook(ByVal Wb As Workbook)
MsgBox Application.ActiveWindow.Caption
End Sub

isabelle





Bonjour à tout le monde,

on m'a posé une question assez intéressante en VBA :
- comment peut-on connaître le nom (temporaire) du prochain nouveau classeur
créé ou celui du dernier nouveau classeur créé ?

Malheureusement, je n'ai pas de réponse à apporter, alors peut-être en
avez-vous une ??

Merci d'avance,

Yvan