J'ouvre un nouveau classeur "DAPU.xlt" à partir d'une application externe.
A l'ouverture, le classeur se nomme "DAPU1". Je le sauve sous ce nom.
A l'ouverture du même modèle, je m'attend à ce que le nouveau classeur s'appelle "DAPU2" et non plus "DAPU1". Or, ce n'est pas le cas.
Est-il possible que le nom d'un classeur soit incrémenté à chaque ouverture du modèle sachent que la propriété Workbook.Name est en lecture seule.
Merci d'avance
LSteph
Bonjour,
Plus de dapu1 à partir du moment où tu l'as enregistré sous dapu1.xls donc lorsque tu rappelle ton dapu.xlt pour un nouveau classeur le premier classeur est nommé dapu1 essaye en ne l'enregistrant pas ils s'appelleront dapu1 ..dapu2 ...etc puis ensuite tu peux les enregistrer sous dapu1.xls dapu2.xls...etc
Sinon, tu auras le même pb s i tu ferme excel et que tu réitère ce sera à nouveau dapu1 ...
-- lSteph
On 3 sep, 14:09, defluc wrote:
Hello,
J'ouvre un nouveau classeur "DAPU.xlt" à partir d'une application exter ne.
A l'ouverture, le classeur se nomme "DAPU1". Je le sauve sous ce nom.
A l'ouverture du même modèle, je m'attend à ce que le nouveau class eur s'appelle "DAPU2" et non plus "DAPU1". Or, ce n'est pas le cas.
Est-il possible que le nom d'un classeur soit incrémenté à chaque ouverture du modèle sachent que la propriété Workbook.Name est en lecture seule.
Merci d'avance
Bonjour,
Plus de dapu1 à partir du moment où tu l'as enregistré sous dapu1.xls
donc lorsque tu rappelle ton dapu.xlt pour un nouveau classeur
le premier classeur est nommé dapu1
essaye en ne l'enregistrant pas ils s'appelleront dapu1 ..dapu2 ...etc
puis ensuite tu peux les enregistrer sous dapu1.xls dapu2.xls...etc
Sinon, tu auras le même pb s i tu ferme excel et que tu réitère ce
sera à nouveau dapu1 ...
--
lSteph
On 3 sep, 14:09, defluc <def...@scarlet.be> wrote:
Hello,
J'ouvre un nouveau classeur "DAPU.xlt" à partir d'une application exter ne.
A l'ouverture, le classeur se nomme "DAPU1".
Je le sauve sous ce nom.
A l'ouverture du même modèle, je m'attend à ce que le nouveau class eur
s'appelle "DAPU2" et non plus "DAPU1".
Or, ce n'est pas le cas.
Est-il possible que le nom d'un classeur soit incrémenté à chaque
ouverture du modèle sachent que la propriété Workbook.Name est en
lecture seule.
Plus de dapu1 à partir du moment où tu l'as enregistré sous dapu1.xls donc lorsque tu rappelle ton dapu.xlt pour un nouveau classeur le premier classeur est nommé dapu1 essaye en ne l'enregistrant pas ils s'appelleront dapu1 ..dapu2 ...etc puis ensuite tu peux les enregistrer sous dapu1.xls dapu2.xls...etc
Sinon, tu auras le même pb s i tu ferme excel et que tu réitère ce sera à nouveau dapu1 ...
-- lSteph
On 3 sep, 14:09, defluc wrote:
Hello,
J'ouvre un nouveau classeur "DAPU.xlt" à partir d'une application exter ne.
A l'ouverture, le classeur se nomme "DAPU1". Je le sauve sous ce nom.
A l'ouverture du même modèle, je m'attend à ce que le nouveau class eur s'appelle "DAPU2" et non plus "DAPU1". Or, ce n'est pas le cas.
Est-il possible que le nom d'un classeur soit incrémenté à chaque ouverture du modèle sachent que la propriété Workbook.Name est en lecture seule.
Merci d'avance
FS
Bonjour,
Il existe une possibilité d'obtenir ce que tu souhaites en bidouillant le modèle. Ton modèle doit avoir une feuille supplémentaire (qui sera détruite à l'enregistrement) pour tenir le compte des classeurs créés à partir de lui. Et tu ajoutes le code ci-dessous dans le module ThisWorkbook du modèle (la feuille supplémentaire s'appelle "Num") :
'================== Private Sub Workbook_Open() Dim x As Long, S, Wbk If ThisWorkbook.Path = "" Then x = Sheets("Num").Range("A1").Value Sheets("Num").Range("A1").Value = x + 1 ActiveWindow.Caption = "DAPU" & x + 1 With ThisWorkbook Application.DisplayAlerts = False .SaveCopyAs Application.TemplatesPath & "DAPU.xlt" Application.DisplayAlerts = True .SaveAs "DAPU" & x + 1 & ".xls", xlWorkbook ActiveWindow.Caption = .Name Application.DisplayAlerts = False .Sheets("Num").Delete Application.DisplayAlerts = True .Save End With End If End Sub '================== Note que j'ai retenu comme chemin d'enregistrement du modèle le dossier par défaut que tu obtiens en exécutant cette ligne de code
MsgBox Application.TemplatesPath
et que j'ai envoyé les enregistrements des classeurs (DAPU1.xls, DAPU2.xls, etc) dans le dossier par défaut d'Excel, obtenu par
MsgBox Application.DefaultFilePath
Tu peux adapter si besoin. Enfin, j'ai testé avec Excel 2003 et 2007 sur WinXP et je peux mettre sur cjoint un modèle exemple si besoin.
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
defluc a écrit :
Hello,
J'ouvre un nouveau classeur "DAPU.xlt" à partir d'une application externe.
A l'ouverture, le classeur se nomme "DAPU1". Je le sauve sous ce nom.
A l'ouverture du même modèle, je m'attend à ce que le nouveau classeur s'appelle "DAPU2" et non plus "DAPU1". Or, ce n'est pas le cas.
Est-il possible que le nom d'un classeur soit incrémenté à chaque ouverture du modèle sachent que la propriété Workbook.Name est en lecture seule.
Merci d'avance
Bonjour,
Il existe une possibilité d'obtenir ce que tu souhaites en bidouillant
le modèle.
Ton modèle doit avoir une feuille supplémentaire (qui sera détruite à
l'enregistrement) pour tenir le compte des classeurs créés à partir de lui.
Et tu ajoutes le code ci-dessous dans le module ThisWorkbook du modèle
(la feuille supplémentaire s'appelle "Num") :
'================== Private Sub Workbook_Open()
Dim x As Long, S, Wbk
If ThisWorkbook.Path = "" Then
x = Sheets("Num").Range("A1").Value
Sheets("Num").Range("A1").Value = x + 1
ActiveWindow.Caption = "DAPU" & x + 1
With ThisWorkbook
Application.DisplayAlerts = False
.SaveCopyAs Application.TemplatesPath & "DAPU.xlt"
Application.DisplayAlerts = True
.SaveAs "DAPU" & x + 1 & ".xls", xlWorkbook
ActiveWindow.Caption = .Name
Application.DisplayAlerts = False
.Sheets("Num").Delete
Application.DisplayAlerts = True
.Save
End With
End If
End Sub
'==================
Note que j'ai retenu comme chemin d'enregistrement du modèle le dossier
par défaut que tu obtiens en exécutant cette ligne de code
MsgBox Application.TemplatesPath
et que j'ai envoyé les enregistrements des classeurs (DAPU1.xls,
DAPU2.xls, etc) dans le dossier par défaut d'Excel, obtenu par
MsgBox Application.DefaultFilePath
Tu peux adapter si besoin.
Enfin, j'ai testé avec Excel 2003 et 2007 sur WinXP et je peux mettre
sur cjoint un modèle exemple si besoin.
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/
defluc a écrit :
Hello,
J'ouvre un nouveau classeur "DAPU.xlt" à partir d'une application externe.
A l'ouverture, le classeur se nomme "DAPU1".
Je le sauve sous ce nom.
A l'ouverture du même modèle, je m'attend à ce que le nouveau classeur
s'appelle "DAPU2" et non plus "DAPU1".
Or, ce n'est pas le cas.
Est-il possible que le nom d'un classeur soit incrémenté à chaque
ouverture du modèle sachent que la propriété Workbook.Name est en
lecture seule.
Il existe une possibilité d'obtenir ce que tu souhaites en bidouillant le modèle. Ton modèle doit avoir une feuille supplémentaire (qui sera détruite à l'enregistrement) pour tenir le compte des classeurs créés à partir de lui. Et tu ajoutes le code ci-dessous dans le module ThisWorkbook du modèle (la feuille supplémentaire s'appelle "Num") :
'================== Private Sub Workbook_Open() Dim x As Long, S, Wbk If ThisWorkbook.Path = "" Then x = Sheets("Num").Range("A1").Value Sheets("Num").Range("A1").Value = x + 1 ActiveWindow.Caption = "DAPU" & x + 1 With ThisWorkbook Application.DisplayAlerts = False .SaveCopyAs Application.TemplatesPath & "DAPU.xlt" Application.DisplayAlerts = True .SaveAs "DAPU" & x + 1 & ".xls", xlWorkbook ActiveWindow.Caption = .Name Application.DisplayAlerts = False .Sheets("Num").Delete Application.DisplayAlerts = True .Save End With End If End Sub '================== Note que j'ai retenu comme chemin d'enregistrement du modèle le dossier par défaut que tu obtiens en exécutant cette ligne de code
MsgBox Application.TemplatesPath
et que j'ai envoyé les enregistrements des classeurs (DAPU1.xls, DAPU2.xls, etc) dans le dossier par défaut d'Excel, obtenu par
MsgBox Application.DefaultFilePath
Tu peux adapter si besoin. Enfin, j'ai testé avec Excel 2003 et 2007 sur WinXP et je peux mettre sur cjoint un modèle exemple si besoin.
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
defluc a écrit :
Hello,
J'ouvre un nouveau classeur "DAPU.xlt" à partir d'une application externe.
A l'ouverture, le classeur se nomme "DAPU1". Je le sauve sous ce nom.
A l'ouverture du même modèle, je m'attend à ce que le nouveau classeur s'appelle "DAPU2" et non plus "DAPU1". Or, ce n'est pas le cas.
Est-il possible que le nom d'un classeur soit incrémenté à chaque ouverture du modèle sachent que la propriété Workbook.Name est en lecture seule.
Merci d'avance
defluc
Isabelle, j'ouvre en Delphi avec l'instruction suivante :
essaye en ne l'enregistrant pas ils s'appelleront dapu1..dapu2..
Si, je ne l'enregistre pas, il sera perdu.
N'est-il pas possible de renommer le classeur ouvert par le modèle, en incrémentant son nom après un test vérifiant si le nom existe déjà dans le dossier de sauvegarde ?
Isabelle,
j'ouvre en Delphi avec l'instruction suivante :
essaye en ne l'enregistrant pas ils s'appelleront dapu1..dapu2..
Si, je ne l'enregistre pas, il sera perdu.
N'est-il pas possible de renommer le classeur ouvert par le modèle, en
incrémentant son nom après un test vérifiant si le nom existe déjà dans
le dossier de sauvegarde ?
essaye en ne l'enregistrant pas ils s'appelleront dapu1..dapu2..
Si, je ne l'enregistre pas, il sera perdu.
N'est-il pas possible de renommer le classeur ouvert par le modèle, en incrémentant son nom après un test vérifiant si le nom existe déjà dans le dossier de sauvegarde ?
N'est-il pas possible de renommer le classeur ouvert par le modèle, en incrémentant son nom après un test vérifiant si le nom existe déj à dans le dossier de sauvegarde ?
N'est-il pas possible de renommer le classeur ouvert par le modèle, en
incrémentant son nom après un test vérifiant si le nom existe déj à dans
le dossier de sauvegarde ?
N'est-il pas possible de renommer le classeur ouvert par le modèle, en incrémentant son nom après un test vérifiant si le nom existe déj à dans le dossier de sauvegarde ?
MichDenis
Bonjour Frédéric,
Si j'étais pointilleux... le fait d'ouvrir un classeur à partir du modèle, ne signifie pas nécessairement que ce classeur sera sauvegardé. S'il ne l'était pas, comment ta procédure permet de reprendre le numéro du fichier qui a été bousillé ? T'es chanceux, je ne suis pas pointilleux !!! ;-))
"FS" a écrit dans le message de groupe de discussion :
Bonjour,
Il existe une possibilité d'obtenir ce que tu souhaites en bidouillant le modèle. Ton modèle doit avoir une feuille supplémentaire (qui sera détruite à l'enregistrement) pour tenir le compte des classeurs créés à partir de lui. Et tu ajoutes le code ci-dessous dans le module ThisWorkbook du modèle (la feuille supplémentaire s'appelle "Num") :
'================== Private Sub Workbook_Open() Dim x As Long, S, Wbk If ThisWorkbook.Path = "" Then x = Sheets("Num").Range("A1").Value Sheets("Num").Range("A1").Value = x + 1 ActiveWindow.Caption = "DAPU" & x + 1 With ThisWorkbook Application.DisplayAlerts = False .SaveCopyAs Application.TemplatesPath & "DAPU.xlt" Application.DisplayAlerts = True .SaveAs "DAPU" & x + 1 & ".xls", xlWorkbook ActiveWindow.Caption = .Name Application.DisplayAlerts = False .Sheets("Num").Delete Application.DisplayAlerts = True .Save End With End If End Sub '================== Note que j'ai retenu comme chemin d'enregistrement du modèle le dossier par défaut que tu obtiens en exécutant cette ligne de code
MsgBox Application.TemplatesPath
et que j'ai envoyé les enregistrements des classeurs (DAPU1.xls, DAPU2.xls, etc) dans le dossier par défaut d'Excel, obtenu par
MsgBox Application.DefaultFilePath
Tu peux adapter si besoin. Enfin, j'ai testé avec Excel 2003 et 2007 sur WinXP et je peux mettre sur cjoint un modèle exemple si besoin.
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
defluc a écrit :
Hello,
J'ouvre un nouveau classeur "DAPU.xlt" à partir d'une application externe.
A l'ouverture, le classeur se nomme "DAPU1". Je le sauve sous ce nom.
A l'ouverture du même modèle, je m'attend à ce que le nouveau classeur s'appelle "DAPU2" et non plus "DAPU1". Or, ce n'est pas le cas.
Est-il possible que le nom d'un classeur soit incrémenté à chaque ouverture du modèle sachent que la propriété Workbook.Name est en lecture seule.
Merci d'avance
Bonjour Frédéric,
Si j'étais pointilleux... le fait d'ouvrir un classeur à partir du
modèle, ne signifie pas nécessairement que ce classeur sera
sauvegardé. S'il ne l'était pas, comment ta procédure permet
de reprendre le numéro du fichier qui a été bousillé ?
T'es chanceux, je ne suis pas pointilleux !!!
;-))
"FS" <fs@news.group> a écrit dans le message de groupe de discussion :
OXXkBuJLKHA.4376@TK2MSFTNGP03.phx.gbl...
Bonjour,
Il existe une possibilité d'obtenir ce que tu souhaites en bidouillant
le modèle.
Ton modèle doit avoir une feuille supplémentaire (qui sera détruite à
l'enregistrement) pour tenir le compte des classeurs créés à partir de lui.
Et tu ajoutes le code ci-dessous dans le module ThisWorkbook du modèle
(la feuille supplémentaire s'appelle "Num") :
'================== Private Sub Workbook_Open()
Dim x As Long, S, Wbk
If ThisWorkbook.Path = "" Then
x = Sheets("Num").Range("A1").Value
Sheets("Num").Range("A1").Value = x + 1
ActiveWindow.Caption = "DAPU" & x + 1
With ThisWorkbook
Application.DisplayAlerts = False
.SaveCopyAs Application.TemplatesPath & "DAPU.xlt"
Application.DisplayAlerts = True
.SaveAs "DAPU" & x + 1 & ".xls", xlWorkbook
ActiveWindow.Caption = .Name
Application.DisplayAlerts = False
.Sheets("Num").Delete
Application.DisplayAlerts = True
.Save
End With
End If
End Sub
'==================
Note que j'ai retenu comme chemin d'enregistrement du modèle le dossier
par défaut que tu obtiens en exécutant cette ligne de code
MsgBox Application.TemplatesPath
et que j'ai envoyé les enregistrements des classeurs (DAPU1.xls,
DAPU2.xls, etc) dans le dossier par défaut d'Excel, obtenu par
MsgBox Application.DefaultFilePath
Tu peux adapter si besoin.
Enfin, j'ai testé avec Excel 2003 et 2007 sur WinXP et je peux mettre
sur cjoint un modèle exemple si besoin.
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/
defluc a écrit :
Hello,
J'ouvre un nouveau classeur "DAPU.xlt" à partir d'une application externe.
A l'ouverture, le classeur se nomme "DAPU1".
Je le sauve sous ce nom.
A l'ouverture du même modèle, je m'attend à ce que le nouveau classeur
s'appelle "DAPU2" et non plus "DAPU1".
Or, ce n'est pas le cas.
Est-il possible que le nom d'un classeur soit incrémenté à chaque
ouverture du modèle sachent que la propriété Workbook.Name est en
lecture seule.
Si j'étais pointilleux... le fait d'ouvrir un classeur à partir du modèle, ne signifie pas nécessairement que ce classeur sera sauvegardé. S'il ne l'était pas, comment ta procédure permet de reprendre le numéro du fichier qui a été bousillé ? T'es chanceux, je ne suis pas pointilleux !!! ;-))
"FS" a écrit dans le message de groupe de discussion :
Bonjour,
Il existe une possibilité d'obtenir ce que tu souhaites en bidouillant le modèle. Ton modèle doit avoir une feuille supplémentaire (qui sera détruite à l'enregistrement) pour tenir le compte des classeurs créés à partir de lui. Et tu ajoutes le code ci-dessous dans le module ThisWorkbook du modèle (la feuille supplémentaire s'appelle "Num") :
'================== Private Sub Workbook_Open() Dim x As Long, S, Wbk If ThisWorkbook.Path = "" Then x = Sheets("Num").Range("A1").Value Sheets("Num").Range("A1").Value = x + 1 ActiveWindow.Caption = "DAPU" & x + 1 With ThisWorkbook Application.DisplayAlerts = False .SaveCopyAs Application.TemplatesPath & "DAPU.xlt" Application.DisplayAlerts = True .SaveAs "DAPU" & x + 1 & ".xls", xlWorkbook ActiveWindow.Caption = .Name Application.DisplayAlerts = False .Sheets("Num").Delete Application.DisplayAlerts = True .Save End With End If End Sub '================== Note que j'ai retenu comme chemin d'enregistrement du modèle le dossier par défaut que tu obtiens en exécutant cette ligne de code
MsgBox Application.TemplatesPath
et que j'ai envoyé les enregistrements des classeurs (DAPU1.xls, DAPU2.xls, etc) dans le dossier par défaut d'Excel, obtenu par
MsgBox Application.DefaultFilePath
Tu peux adapter si besoin. Enfin, j'ai testé avec Excel 2003 et 2007 sur WinXP et je peux mettre sur cjoint un modèle exemple si besoin.
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
defluc a écrit :
Hello,
J'ouvre un nouveau classeur "DAPU.xlt" à partir d'une application externe.
A l'ouverture, le classeur se nomme "DAPU1". Je le sauve sous ce nom.
A l'ouverture du même modèle, je m'attend à ce que le nouveau classeur s'appelle "DAPU2" et non plus "DAPU1". Or, ce n'est pas le cas.
Est-il possible que le nom d'un classeur soit incrémenté à chaque ouverture du modèle sachent que la propriété Workbook.Name est en lecture seule.
Merci d'avance
FS
Bonjour Denis,
Comme c'est un événement plutôt difficile à prévoir, il me paraît aussi difficile à programmer. Je dirais qu'il est toujours possible de corriger le modèle à la main en l'ouvrant par FichierOuvrir (et non FichierNouveau) puis en modifiant la cellule A1 de la feuille 'Num'.
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
MichDenis a écrit :
Bonjour Frédéric,
Si j'étais pointilleux... le fait d'ouvrir un classeur à partir du modèle, ne signifie pas nécessairement que ce classeur sera sauvegardé. S'il ne l'était pas, comment ta procédure permet de reprendre le numéro du fichier qui a été bousillé ? T'es chanceux, je ne suis pas pointilleux !!! ;-))
"FS" a écrit dans le message de groupe de discussion :
Bonjour,
Il existe une possibilité d'obtenir ce que tu souhaites en bidouillant le modèle. Ton modèle doit avoir une feuille supplémentaire (qui sera détruite à l'enregistrement) pour tenir le compte des classeurs créés à partir de lui. Et tu ajoutes le code ci-dessous dans le module ThisWorkbook du modèle (la feuille supplémentaire s'appelle "Num") :
'================== > Private Sub Workbook_Open() Dim x As Long, S, Wbk If ThisWorkbook.Path = "" Then x = Sheets("Num").Range("A1").Value Sheets("Num").Range("A1").Value = x + 1 ActiveWindow.Caption = "DAPU" & x + 1 With ThisWorkbook Application.DisplayAlerts = False .SaveCopyAs Application.TemplatesPath & "DAPU.xlt" Application.DisplayAlerts = True .SaveAs "DAPU" & x + 1 & ".xls", xlWorkbook ActiveWindow.Caption = .Name Application.DisplayAlerts = False .Sheets("Num").Delete Application.DisplayAlerts = True .Save End With End If End Sub '================== > Note que j'ai retenu comme chemin d'enregistrement du modèle le dossier par défaut que tu obtiens en exécutant cette ligne de code
MsgBox Application.TemplatesPath
et que j'ai envoyé les enregistrements des classeurs (DAPU1.xls, DAPU2.xls, etc) dans le dossier par défaut d'Excel, obtenu par
MsgBox Application.DefaultFilePath
Tu peux adapter si besoin. Enfin, j'ai testé avec Excel 2003 et 2007 sur WinXP et je peux mettre sur cjoint un modèle exemple si besoin.
FS
Bonjour Denis,
Comme c'est un événement plutôt difficile à prévoir, il me paraît aussi
difficile à programmer. Je dirais qu'il est toujours possible de
corriger le modèle à la main en l'ouvrant par FichierOuvrir (et non
FichierNouveau) puis en modifiant la cellule A1 de la feuille 'Num'.
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/
MichDenis a écrit :
Bonjour Frédéric,
Si j'étais pointilleux... le fait d'ouvrir un classeur à partir du
modèle, ne signifie pas nécessairement que ce classeur sera
sauvegardé. S'il ne l'était pas, comment ta procédure permet
de reprendre le numéro du fichier qui a été bousillé ?
T'es chanceux, je ne suis pas pointilleux !!!
;-))
"FS" <fs@news.group> a écrit dans le message de groupe de discussion :
OXXkBuJLKHA.4376@TK2MSFTNGP03.phx.gbl...
Bonjour,
Il existe une possibilité d'obtenir ce que tu souhaites en bidouillant
le modèle.
Ton modèle doit avoir une feuille supplémentaire (qui sera détruite à
l'enregistrement) pour tenir le compte des classeurs créés à partir de lui.
Et tu ajoutes le code ci-dessous dans le module ThisWorkbook du modèle
(la feuille supplémentaire s'appelle "Num") :
'================== > Private Sub Workbook_Open()
Dim x As Long, S, Wbk
If ThisWorkbook.Path = "" Then
x = Sheets("Num").Range("A1").Value
Sheets("Num").Range("A1").Value = x + 1
ActiveWindow.Caption = "DAPU" & x + 1
With ThisWorkbook
Application.DisplayAlerts = False
.SaveCopyAs Application.TemplatesPath & "DAPU.xlt"
Application.DisplayAlerts = True
.SaveAs "DAPU" & x + 1 & ".xls", xlWorkbook
ActiveWindow.Caption = .Name
Application.DisplayAlerts = False
.Sheets("Num").Delete
Application.DisplayAlerts = True
.Save
End With
End If
End Sub
'================== >
Note que j'ai retenu comme chemin d'enregistrement du modèle le dossier
par défaut que tu obtiens en exécutant cette ligne de code
MsgBox Application.TemplatesPath
et que j'ai envoyé les enregistrements des classeurs (DAPU1.xls,
DAPU2.xls, etc) dans le dossier par défaut d'Excel, obtenu par
MsgBox Application.DefaultFilePath
Tu peux adapter si besoin.
Enfin, j'ai testé avec Excel 2003 et 2007 sur WinXP et je peux mettre
sur cjoint un modèle exemple si besoin.
Comme c'est un événement plutôt difficile à prévoir, il me paraît aussi difficile à programmer. Je dirais qu'il est toujours possible de corriger le modèle à la main en l'ouvrant par FichierOuvrir (et non FichierNouveau) puis en modifiant la cellule A1 de la feuille 'Num'.
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
MichDenis a écrit :
Bonjour Frédéric,
Si j'étais pointilleux... le fait d'ouvrir un classeur à partir du modèle, ne signifie pas nécessairement que ce classeur sera sauvegardé. S'il ne l'était pas, comment ta procédure permet de reprendre le numéro du fichier qui a été bousillé ? T'es chanceux, je ne suis pas pointilleux !!! ;-))
"FS" a écrit dans le message de groupe de discussion :
Bonjour,
Il existe une possibilité d'obtenir ce que tu souhaites en bidouillant le modèle. Ton modèle doit avoir une feuille supplémentaire (qui sera détruite à l'enregistrement) pour tenir le compte des classeurs créés à partir de lui. Et tu ajoutes le code ci-dessous dans le module ThisWorkbook du modèle (la feuille supplémentaire s'appelle "Num") :
'================== > Private Sub Workbook_Open() Dim x As Long, S, Wbk If ThisWorkbook.Path = "" Then x = Sheets("Num").Range("A1").Value Sheets("Num").Range("A1").Value = x + 1 ActiveWindow.Caption = "DAPU" & x + 1 With ThisWorkbook Application.DisplayAlerts = False .SaveCopyAs Application.TemplatesPath & "DAPU.xlt" Application.DisplayAlerts = True .SaveAs "DAPU" & x + 1 & ".xls", xlWorkbook ActiveWindow.Caption = .Name Application.DisplayAlerts = False .Sheets("Num").Delete Application.DisplayAlerts = True .Save End With End If End Sub '================== > Note que j'ai retenu comme chemin d'enregistrement du modèle le dossier par défaut que tu obtiens en exécutant cette ligne de code
MsgBox Application.TemplatesPath
et que j'ai envoyé les enregistrements des classeurs (DAPU1.xls, DAPU2.xls, etc) dans le dossier par défaut d'Excel, obtenu par
MsgBox Application.DefaultFilePath
Tu peux adapter si besoin. Enfin, j'ai testé avec Excel 2003 et 2007 sur WinXP et je peux mettre sur cjoint un modèle exemple si besoin.
FS
MichDenis
À la première lecture du demandeur, c'est ce sur quoi j'avais accroché quant au comment faire sans développer une usine à gaz !
Merci.
À la première lecture du demandeur, c'est ce sur quoi
j'avais accroché quant au comment faire sans développer
une usine à gaz !