OVH Cloud OVH Cloud

Pb dans l'écriture

5 réponses
Avatar
Vincent
Bonsoir,
j'essaie de copier une feuille qui se trouve dans un classeur et que
celui-ci se ferme automatiquement après l'envoi. Cela fonctionne très bien.
Mais voilà, je souhaite renommer cette feuille avant l'envoi afin que le nom
de celle-ci devienne le nom de la pièce jointe.
elle se nomme "toto", je souhaite qu'elle prenne le nom qui se trouve dans
la cellule A15.
Merci beaucoup
Vincent

Private Sub CommandButton1_Click()
UserForm1.Hide
ThisWorkbook.Sheets("toto").Copy
ActiveSheet.Name = Sheets("Feuil1").Range("A15").Value
Application.Dialogs(xlDialogSendMail).Show Adresse,
Sheets("Feuil1").Range("A15").Value
ActiveWorkbook.Close SaveChanges:=False
MsgBox "La feuille de calcul a été envoyé vers l'adresse spécifiée"
End Sub

5 réponses

Avatar
JpPradier
Bonsoir Vincent

Modifie ta macro comme suit :

Private Sub CommandButton1_Click()
UserForm1.Hide
NomFeuil=Sheets("Feuil1").Range("A15").Value
ThisWorkbook.Sheets("toto").Copy
ActiveSheet.Name = NomFeuil
Application.Dialogs(xlDialogSendMail).Show Adresse,
Sheets("Feuil1").Range("A15").Value
ActiveWorkbook.Close SaveChanges:úlse
MsgBox "La feuille de calcul a été envoyé vers l'adresse spécifiée"
End Sub

j-p
Avatar
Vincent
Bonsoir J-p
La macro plante au niveau de :
ActiveSheet.Name = NomFeuil
Car à ce moment là il y a le classeur "toto",
et il n'y plus de feuil1
Merci pour ton aide.
Vincent



"JpPradier" a écrit dans le message
de news:
Bonsoir Vincent

Modifie ta macro comme suit :

Private Sub CommandButton1_Click()
UserForm1.Hide
NomFeuil=Sheets("Feuil1").Range("A15").Value
ThisWorkbook.Sheets("toto").Copy
ActiveSheet.Name = NomFeuil
Application.Dialogs(xlDialogSendMail).Show Adresse,
Sheets("Feuil1").Range("A15").Value
ActiveWorkbook.Close SaveChanges:úlse
MsgBox "La feuille de calcul a été envoyé vers l'adresse spécifiée"
End Sub

j-p



Avatar
JpPradier
Ben justement, c'est pour ça qu'on passe par la variable NomFeuil dans laquelle on recupere le
contenu de A15 avant de changer de classeur. Ca devrait pas planter. Je n'avais pas vue la coupure
dans la ligne Application.Dialogs...Voici corrigé :


Private Sub CommandButton1_Click()
UserForm1.Hide
NomFeuil=Sheets("Feuil1").Range("A15").Value
ThisWorkbook.Sheets("toto").Copy
ActiveSheet.Name = NomFeuil
Application.Dialogs(xlDialogSendMail).Show Adresse,NomFeuil
ActiveWorkbook.Close SaveChanges:úlse
MsgBox "La feuille de calcul a été envoyé vers l'adresse spécifiée"
End Sub

j-p
Avatar
Vincent
Merci beaucoup Jp, c'est impeccable !
Une petite dernière.
Comment puis je avoir le nom de la PJ comme le nom du classeur ?
Merci encore
Vincent





"JpPradier" a écrit dans le message
de news:
Ben justement, c'est pour ça qu'on passe par la variable NomFeuil dans
laquelle on recupere le

contenu de A15 avant de changer de classeur. Ca devrait pas planter. Je
n'avais pas vue la coupure

dans la ligne Application.Dialogs...Voici corrigé :


Private Sub CommandButton1_Click()
UserForm1.Hide
NomFeuil=Sheets("Feuil1").Range("A15").Value
ThisWorkbook.Sheets("toto").Copy
ActiveSheet.Name = NomFeuil
Application.Dialogs(xlDialogSendMail).Show Adresse,NomFeuil
ActiveWorkbook.Close SaveChanges:úlse
MsgBox "La feuille de calcul a été envoyé vers l'adresse spécifiée"
End Sub

j-p



Avatar
michdenis
Bonjour Vincent,

Le nom officiel du classeur s'attribue au moment de l'enregistrement de ce dernier par

ThisWorkbook.saveas CheminNomDuClasseur & ".xls"

Mais temporairement on peut modifier l'affichage de la barre de titre de l'application comme ceci :


Application.Caption = "monclasseur"

ThisWorkbook.Application.ActiveWindow.Caption = "toto"


Salutations!







"Vincent" a écrit dans le message de news:uEqc$
Merci beaucoup Jp, c'est impeccable !
Une petite dernière.
Comment puis je avoir le nom de la PJ comme le nom du classeur ?
Merci encore
Vincent





"JpPradier" a écrit dans le message
de news:
Ben justement, c'est pour ça qu'on passe par la variable NomFeuil dans
laquelle on recupere le

contenu de A15 avant de changer de classeur. Ca devrait pas planter. Je
n'avais pas vue la coupure

dans la ligne Application.Dialogs...Voici corrigé :


Private Sub CommandButton1_Click()
UserForm1.Hide
NomFeuil=Sheets("Feuil1").Range("A15").Value
ThisWorkbook.Sheets("toto").Copy
ActiveSheet.Name = NomFeuil
Application.Dialogs(xlDialogSendMail).Show Adresse,NomFeuil
ActiveWorkbook.Close SaveChanges:úlse
MsgBox "La feuille de calcul a été envoyé vers l'adresse spécifiée"
End Sub

j-p