OVH Cloud OVH Cloud

Nom de fichier tapant dans cellule du fichier

2 réponses
Avatar
chrislio
"chrislio" wrote:

Le problème c'est qu'il me demande 2 ou 3x l'enregistrement du fichier.
Peut-être que je me suis mal débrouillée...
Faut-il placer un 2ème "Private Sub" ?
Ou bien puis-je tout rentrer sous le même ?
Merci
chrislio

"papou" wrote:

Oui, il me semble que tu utilisais déjà l'évènement BeforeClose.
Non ?
Dans ce cas, il faut utiliser les mêmes lignes pour cet évènement aussi.
Cordialement
Pascal

> > "chrislio" <chrislio@discussions.microsoft.com> a écrit dans le message de
> > news: 536B4478-AF36-42E3-BC71-ED2E6104DA36@microsoft.com...
> > > Papou !!!
> > > Si je ferme excel sans cliquer sur 'Fichier/enregistrer sous" et sans
> > > cliquer sur "x" du fichier même mais sur "x" du logiciel, il ne reprend
> > > pas
> > > la référence de la cellule.
> > > Peut-on aller aussi loin dans la macro ?
> > >
> > > Merci de ton aide.
> > > chrislio
> > >
> > > "papou" wrote:
> > >
> > >> Bonjour
> > >> Tant qu'à faire, je te suggère de modifier plutôt comme ça :
> > >> Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
> > >> Boolean)
> > >> nomdefichier = Application.GetSaveAsFilename([qualite], , , "Nom de
> > >> Fichier")
> > >> If nomdefichier = False Then
> > >> Cancel = True
> > >> Else
> > >> Application.EnableEvents = False
> > >> ThisWorkbook.SaveAs nomdefichier: End If
> > >> Application.EnableEvents = True
> > >> End Sub
> > >> Cordialement
> > >> Pascal
> > >>
> > >> "chrislio" <chrislio@discussions.microsoft.com> a écrit dans le message
> > >> de
> > >> news: 1586D473-15EB-422E-822B-DAB4C7A30723@microsoft.com...
> > >> > Bonjour !
> > >> > Merci de votre aide pour la macro...lorsqu'elle se déclenche, le nom
> > >> > d'enregistrement est bien celui qu'une des cellules du fichier
> > >> > contient.
> > >> > Par contre mais si je fais "Annuler" et bien se réouvre une même
> > >> > fenêtre
> > >> > d'enregistrement et on me repropose par défault le nom du classeur.
> > >> >
> > >> > Est-ce que l'on peut agir sur ce point ?
> > >> >
> > >> > Merci de votre aide.
> > >> > L'historique de mes mails échangés se trouve ci-dessous.
> > >> >
> > >> > @+
> > >> > chrislio
> > >> >
> > >> > Bonjour
> > >> > Place les mêmes lignes dans l'évènement BeforeSave
> > >> > Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
> > >> > Boolean)
> > >> > Application.Dialogs(xlDialogSaveAs).Show _
> > >> > CStr(ThisWorkbook.ActiveSheet.Range("qualite").Value)
> > >> > End Sub
> > >> >
> > >> > Cordialement
> > >> > Pascal
> > >> >
> > >> > "chrislio" <chrislio@discussions.microsoft.com> a écrit dans le message
> > >> > de
> > >> > news: 09935FA0-5D9F-4FBA-B4BA-08166F163C70@microsoft.com...
> > >> >> Bonjour !
> > >> >> Merci mais est-ce une information à rentrer dans la macro ??
> > >> >> Je ne suis vraiment as une "douée" dans le langage VBA et sous Excel
> > >> >> ?
> > >> >>
> > >> >> Merci de ton retour.
> > >> >> Bon Dimanche !
> > >> >> Chrislio
> > >> >>
> > >> >>
> > >> >> "motard" a écrit :
> > >> >>
> > >> >>> bonjour chrislio
> > >> >>> il faut simplement choisir Fichier/Enregistrer (ctrl s)
> > >> >>>
> > >> >>> chrislio avait prétendu :
> > >> >>> > Bonjour,
> > >> >>> > Une macro a été développée afin que je puisse enregistrer mon
> > >> >>> > classeur
> > >> >>> > suivant une donnée d'une cellule du classeur même.
> > >> >>> > La macro suivante le fait, seulement lorsque je ferme "violemment"
> > >> >>> > le
> > >> >>> > document en cliquant sur "x". Si je passe par Fichier/Enregistrer
> > >> >>> > sous,
> > >> >>> > ça
> > >> >>> > ne marche pas il m'indique tjrs "classeur1".
> > >> >>> > La macro est la suivante :
> > >> >>> >
> > >> >>> > Private Sub Workbook_BeforeClose(Cancel As Boolean)
> > >> >>> >
> > >> >>> > Application.Dialogs(xlDialogSaveAs).Show
> > >> >>> > CStr(ThisWorkbook.ActiveSheet.Range("qualite").Value)
> > >> >>> >
> > >> >>> > End Sub
> > >> >>> >
> > >> >>> >
> > >> >>> > Merci de votre aide. Peut-être faut-il ajouter quelque chose à la
> > >> >>> > macro ou
> > >> >>> > bien peut-êre existe-t-il une autre maniÃsre d'y arriver ?!!?
> > >> >>> >
> > >> >>> > Merci de votre aide.
> > >> >>> > @+
> > >> >>> > Chrislio

2 réponses

Avatar
papou
Re
Je crois qu'il va falloir modifier quelque peu ta procédure.
Voici une proposition :
1 - Dans un module standard
Public NomdeFichier
Sub EnregistreAvecNom()
NomdeFichier = Application.GetSaveAsFilename([qualite], , , "Nom de
Fichier")
If NomdeFichier = False Then Exit Sub
Application.EnableEvents = False
ThisWorkbook.SaveAs NomdeFichier
Application.EnableEvents = True
End Sub
2 - Dans Thisworkbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ThisWorkbook.Saved = False Then _
EnregistreAvecNom
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
If Not ThisWorkbook.Name Like [qualite] Then
EnregistreAvecNom
Else: Exit Sub
End If
End Sub

Cordialement
Pascal

"chrislio" a écrit dans le message de
news:
"chrislio" wrote:

Le problème c'est qu'il me demande 2 ou 3x l'enregistrement du fichier.
Peut-être que je me suis mal débrouillée...
Faut-il placer un 2ème "Private Sub" ?
Ou bien puis-je tout rentrer sous le même ?
Merci
chrislio

"papou" wrote:

Oui, il me semble que tu utilisais déjà l'évènement BeforeClose.
Non ?
Dans ce cas, il faut utiliser les mêmes lignes pour cet évènement aussi.
Cordialement
Pascal

"chrislio" a écrit dans le message
de
news:
Papou !!!
Si je ferme excel sans cliquer sur 'Fichier/enregistrer sous" et sans
cliquer sur "x" du fichier même mais sur "x" du logiciel, il ne
reprend
pas
la référence de la cellule.
Peut-on aller aussi loin dans la macro ?

Merci de ton aide.
chrislio

"papou" wrote:

Bonjour
Tant qu'à faire, je te suggère de modifier plutôt comme ça :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
nomdefichier = Application.GetSaveAsFilename([qualite], , , "Nom de
Fichier")
If nomdefichier = False Then
Cancel = True
Else
Application.EnableEvents = False
ThisWorkbook.SaveAs nomdefichier: End If
Application.EnableEvents = True
End Sub
Cordialement
Pascal

"chrislio" a écrit dans le
message
de
news:
Bonjour !
Merci de votre aide pour la macro...lorsqu'elle se déclenche, le
nom
d'enregistrement est bien celui qu'une des cellules du fichier
contient.
Par contre mais si je fais "Annuler" et bien se réouvre une même
fenêtre
d'enregistrement et on me repropose par défault le nom du
classeur.

Est-ce que l'on peut agir sur ce point ?

Merci de votre aide.
L'historique de mes mails échangés se trouve ci-dessous.

@+
chrislio

Bonjour
Place les mêmes lignes dans l'évènement BeforeSave
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel
As
Boolean)
Application.Dialogs(xlDialogSaveAs).Show _
CStr(ThisWorkbook.ActiveSheet.Range("qualite").Value)
End Sub

Cordialement
Pascal

"chrislio" a écrit dans le
message
de
news:
Bonjour !
Merci mais est-ce une information à rentrer dans la macro ??
Je ne suis vraiment as une "douée" dans le langage VBA et sous
Excel
?

Merci de ton retour.
Bon Dimanche !
Chrislio



bonjour chrislio
il faut simplement choisir Fichier/Enregistrer (ctrl s)

chrislio avait prétendu :
Bonjour,
Une macro a été développée afin que je puisse enregistrer
mon
classeur
suivant une donnée d'une cellule du classeur même.
La macro suivante le fait, seulement lorsque je ferme
"violemment"
le
document en cliquant sur "x". Si je passe par
Fichier/Enregistrer
sous,
ça
ne marche pas il m'indique tjrs "classeur1".
La macro est la suivante :

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.Dialogs(xlDialogSaveAs).Show
CStr(ThisWorkbook.ActiveSheet.Range("qualite").Value)

End Sub


Merci de votre aide. Peut-être faut-il ajouter quelque chose
à la
macro ou
bien peut-êre existe-t-il une autre maniÃsre d'y arriver ?!!?

Merci de votre aide.
@+
Chrislio



















Avatar
papou
En complément un exemple ici :
http://cjoint.com/data/cvpnVa8UAa.htm
Cordialement
Pascal

"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:

Re
Je crois qu'il va falloir modifier quelque peu ta procédure.
Voici une proposition :
1 - Dans un module standard
Public NomdeFichier
Sub EnregistreAvecNom()
NomdeFichier = Application.GetSaveAsFilename([qualite], , , "Nom de
Fichier")
If NomdeFichier = False Then Exit Sub
Application.EnableEvents = False
ThisWorkbook.SaveAs NomdeFichier
Application.EnableEvents = True
End Sub
2 - Dans Thisworkbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ThisWorkbook.Saved = False Then _
EnregistreAvecNom
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
If Not ThisWorkbook.Name Like [qualite] Then
EnregistreAvecNom
Else: Exit Sub
End If
End Sub

Cordialement
Pascal

"chrislio" a écrit dans le message de
news:
"chrislio" wrote:

Le problème c'est qu'il me demande 2 ou 3x l'enregistrement du fichier.
Peut-être que je me suis mal débrouillée...
Faut-il placer un 2ème "Private Sub" ?
Ou bien puis-je tout rentrer sous le même ?
Merci
chrislio

"papou" wrote:

Oui, il me semble que tu utilisais déjà l'évènement BeforeClose.
Non ?
Dans ce cas, il faut utiliser les mêmes lignes pour cet évènement aussi.
Cordialement
Pascal

"chrislio" a écrit dans le
message de
news:
Papou !!!
Si je ferme excel sans cliquer sur 'Fichier/enregistrer sous" et
sans
cliquer sur "x" du fichier même mais sur "x" du logiciel, il ne
reprend
pas
la référence de la cellule.
Peut-on aller aussi loin dans la macro ?

Merci de ton aide.
chrislio

"papou" wrote:

Bonjour
Tant qu'à faire, je te suggère de modifier plutôt comme ça :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel
As
Boolean)
nomdefichier = Application.GetSaveAsFilename([qualite], , , "Nom de
Fichier")
If nomdefichier = False Then
Cancel = True
Else
Application.EnableEvents = False
ThisWorkbook.SaveAs nomdefichier: End If
Application.EnableEvents = True
End Sub
Cordialement
Pascal

"chrislio" a écrit dans le
message
de
news:
Bonjour !
Merci de votre aide pour la macro...lorsqu'elle se déclenche, le
nom
d'enregistrement est bien celui qu'une des cellules du fichier
contient.
Par contre mais si je fais "Annuler" et bien se réouvre une même
fenêtre
d'enregistrement et on me repropose par défault le nom du
classeur.

Est-ce que l'on peut agir sur ce point ?

Merci de votre aide.
L'historique de mes mails échangés se trouve ci-dessous.

@+
chrislio

Bonjour
Place les mêmes lignes dans l'évènement BeforeSave
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel
As
Boolean)
Application.Dialogs(xlDialogSaveAs).Show _
CStr(ThisWorkbook.ActiveSheet.Range("qualite").Value)
End Sub

Cordialement
Pascal

"chrislio" a écrit dans le
message
de
news:
Bonjour !
Merci mais est-ce une information à rentrer dans la macro ??
Je ne suis vraiment as une "douée" dans le langage VBA et sous
Excel
?

Merci de ton retour.
Bon Dimanche !
Chrislio



bonjour chrislio
il faut simplement choisir Fichier/Enregistrer (ctrl s)

chrislio avait prétendu :
Bonjour,
Une macro a été développée afin que je puisse enregistrer
mon
classeur
suivant une donnée d'une cellule du classeur même.
La macro suivante le fait, seulement lorsque je ferme
"violemment"
le
document en cliquant sur "x". Si je passe par
Fichier/Enregistrer
sous,
ça
ne marche pas il m'indique tjrs "classeur1".
La macro est la suivante :

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.Dialogs(xlDialogSaveAs).Show
CStr(ThisWorkbook.ActiveSheet.Range("qualite").Value)

End Sub


Merci de votre aide. Peut-être faut-il ajouter quelque chose
à la
macro ou
bien peut-êre existe-t-il une autre maniÃsre d'y arriver
?!!?

Merci de votre aide.
@+
Chrislio