OVH Cloud OVH Cloud

Nom d'enregistrement tapant dans cellule

1 réponse
Avatar
chrislio
Bonjour !
Merci Pascal de ton secours ! (je préfère dire ça !)
La macro fonctionne.
Par contre, si je fais "Fichier/Enregistre sous" et que j'annule et bien il
m'ouvre de nouveau une même fenêtre en ne me proposant plus le contenant de
ma cellule.
Que pouvons-nous y faire ?

Sinon, tout le reste fonctionne très bien, le nom d'enregistrement prend
bien la cellule.
Merci de ton aide ! :/
@+
Chrislio

"papou" wrote:

> Re
> Effectivement le fichier joint n'a pas fonctionné (M'enfin ??)
> Pour insérer un module standard, dans l'éditeur VBA :
> Insertion Module
> Cordialement
> Pascal
>
>
> "chrislio" <chrislio@discussions.microsoft.com> a écrit dans le message de
> news: 2F416552-8867-43DC-AC8A-ACF96C9E467E@microsoft.com...
> > Merci Pascal.
> > Très sympa de revenir vers moi.
> >
> > L'exemple que tu me donnes ne marche pas...il s'ouvre en fichier texte...
> > De plus, je dois faire des bêtises en enregistrant ta marco car ça ne
> > marche
> > pas.
> >
> > Quand tu parles de module standard, il faut que j'insère un nouveau projet
> > alors en parallèle de Thisworkbook ?
> > Je ne sais pas ce qu'est un modle standard (=module de classe ??)
> >
> > Tu sais je débute en Excel et parfois les mots n'ont pas le même sens avec
> > le langage excel ! désolée de t'ennuyer.
> >
> > Merci de ton retour.
> > Chrislio
> >
> > "papou" wrote:
> >
> >> 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:
> >> eyG6m3BGFHA.1296@TK2MSFTNGP10.phx.gbl...
> >> > 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" <chrislio@discussions.microsoft.com> a écrit dans le message
> >> > de
> >> > news: 3005BFC6-1993-4930-80CE-D55B5B9AA5B7@microsoft.com...
> >> >> "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

1 réponse

Avatar
papou
Bonjour
Modifie la partir BeforeSave comme ceci :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
If Not ThisWorkbook.Name Like [qualite] Then
EnregistreAvecNom
ElseIf Not ThisWorkbook.Saved Then
EnregistreAvecNom
Else: Exit Sub
End If
End Sub

Cordialement
Pascal

"chrislio" a écrit dans le message de
news:
Bonjour !
Merci Pascal de ton secours ! (je préfère dire ça !)
La macro fonctionne.
Par contre, si je fais "Fichier/Enregistre sous" et que j'annule et bien
il
m'ouvre de nouveau une même fenêtre en ne me proposant plus le contenant
de
ma cellule.
Que pouvons-nous y faire ?

Sinon, tout le reste fonctionne très bien, le nom d'enregistrement prend
bien la cellule.
Merci de ton aide ! :/
@+
Chrislio

"papou" wrote:

Re
Effectivement le fichier joint n'a pas fonctionné (M'enfin ??)
Pour insérer un module standard, dans l'éditeur VBA :
Insertion Module
Cordialement
Pascal


"chrislio" a écrit dans le message
de
news:
Merci Pascal.
Très sympa de revenir vers moi.

L'exemple que tu me donnes ne marche pas...il s'ouvre en fichier
texte...
De plus, je dois faire des bêtises en enregistrant ta marco car ça ne
marche
pas.

Quand tu parles de module standard, il faut que j'insère un nouveau
projet
alors en parallèle de Thisworkbook ?
Je ne sais pas ce qu'est un modle standard (=module de classe ??)

Tu sais je débute en Excel et parfois les mots n'ont pas le même sens
avec
le langage excel ! désolée de t'ennuyer.

Merci de ton retour.
Chrislio

"papou" wrote:

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