Code VBA pour fonction "sauvegarder sous"

Signaler
Messages postés
17
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
20 avril 2009
-
Messages postés
17
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
20 avril 2009
-
Bonjour a tous,

je suis un débutant dans le VBA et j'ai un fichier dans le quel je souhaiterai introduire un code VBA permettant la fonction "sauvegarder sous" sans passé par la boite de dialogue. pour ce faire le fichier doit reprendre dans son mon la case 'D7' de la feuille excel.
Si vous avez besoin de plus de detail n'hesitez pas... la version de mon VB est le 6.3

Merci par avance pour vos réponses

19 réponses

Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

nouveau = Application.GetSaveAsFilename(chemin complet\ + Cells(7, 4))

MerZi ... Zi ... Zi ... PtitCat   
                                 P.S:DSL pour l'orthographe
Messages postés
17
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
20 avril 2009

Merci pour la rapidité de votre réponse, mais puis-je abuser de votre gentillèsse, en vous demandans si ma formule vous semble correcte, car elle doit d'intégrer avec uyne autre formule...

Private Sub CommandButton1_Click()
 ActiveWorkbook.SendMail Recipients:=Array("destinataire"), Subject:="Création/Modification Fiche de Bien"
ActiveWorkbook.Close
Application.GetSaveAsFilename("P:\Engineering\Support\Opérations\Inventaire-Suivi_equipement\Fiches de bien "+ Cells(7, 4))
End Sub



Private Sub Worksheet_SelectionChange(ByVal Target As Range)



End Sub



Merci encore pour votre aide...
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

bien "+ Cells(7, 4))
c'est pas+ mais & qu'il faut mettre désolé.

Part contre, je ne comprend pas bien t'as demande
"si ma formule vous semble correcte, car elle doit s'intégrer avec une autre formule..."
Peut tu réitérer s'il te plait ?

MerZi ... Zi ... Zi ... PtitCat   
                                 P.S:DSL pour l'orthographe
Messages postés
17
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
20 avril 2009

en faite je vais reprendre ma demande je pense que se sera plus simple...

donc en faite j'ai créer un fichier excel qui a pour fonction de détailler les bien immobilisable rentrant dans ma société. lorsque une fiche est crée, l'interlocuteur click sur un bouton sur la feuille excel qui envoie via mail la fiche excel à la comptabilité (fonction :Sendmail qui fonctionne déjà). mais je voudrais également associé une fonction qui enregistre cette feuille excel sur notre réseau mais avec pour nom de fichier 'FDB+case excel D7'.
j'ai réussi a me démerder pour la fonction d'envoie mail, mais pour 'l'enregistrer sous' j'avoue que je lute un peu... et je ne sais pas trop ou la placer pour qu'elle fonctionne correctement

j'espères que cette explication à pu vous êtes...

<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

Si tu ferme ton fichier avant tu va avoir des souci pour l'enregistrer en effet ^^
Test ça :

Private Sub CommandButton1_Click()
Dim cop as String
Dim chem as String
'Nom du fichier
cop = "Fiches de bien "+ Cells(7, 4)"
'Chemin
chem = "P:\Engineering\Support\Opérations\Inventaire-Suivi_equipement"

 ActiveWorkbook.SendMail Recipients:=Array("destinataire"), Subject:="Création/Modification Fiche de Bien"

cop = Application.GetSaveAsFilename(chem & cop)

If chem <> False Then
      ActiveWorkbook.SaveCopyAs chem   '  sauvegarde nouveau
end if      

ActiveWorkbook.Close
End Sub

MerZi ... Zi ... Zi ... PtitCat   
                                 P.S:DSL pour l'orthographe
Messages postés
17
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
20 avril 2009

vous me permettez de vous tutoyer ??? tu va me trouver naze, mais on es d'accord que les mention en vert ne sont pas a mettre dans le codage...
Messages postés
17
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
20 avril 2009

MERCI VB_Ptitcat sa fonctionne impécable !!!!!  maintenant j'ai une derniere petite question, lors de l'execition du codage j'ai une fenettre avec ce message qui apparait :

"un programme tente d'envoyer automatiquement du courrier éléctronique en votre nom.




L'autorisez-vous à poursuivre ? si cette action est inattendue, il se peut qu'il s'agisse d'un virus: dans ce cas, choisissez non."



 


et j'ai peur que cela face peur à mes utilisateur... aurai tu une solution pour suprimer ce message ??
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
S'agissant d'une alerte de sécurité, je ne crois pas qu'on puisse l'enlever. Amicalement.
Messages postés
17
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
20 avril 2009

Dommage, en tout cas merci pour votre aides a tous les deux... et peut être a bientôt
Messages postés
17
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
20 avril 2009

me revoila avec mon probleme, la semaine derniere le code fonctionnais très bien mais maintenant j'ai un nouveau probleme :


lors de la sauvegard j'ai ce méssage qui apparais sur l'écran de l'interlocuteur : Erreur d'execution '13' incompatibilité de type


et quand je vais dans la boite de dialogue en cliquand sur débogage j'ai ce qui suit:




Private Sub CommandButton1_Click()
 Dim cop As String
Dim chem As String


cop = "FDB " & Range("D7")


chem = "P:\Engineering\Support\Opérations\Inventaire-Suivi_equipement\Fiches de bien"


 ActiveWorkbook.SendMail Recipients:=Array("[mailto:fabrice.gouhier@arqiva.com fabrice.gouhier@arqiva.com]"), Subject:="Création/Modification Fiche de Bien " & Range("D7")


cop = Application.GetSaveAsFilename(chem & cop)



If chem <> False Then
(surligner en jaune avec une fleche devant)

      ActiveWorkbook.SaveCopyAs chem = "P:\Engineering\Support\Opérations\Inventaire-Suivi_equipement\Fiches de bien"
End If


ActiveWorkbook.Close
End Sub

que dois-je faire pour annuler mon probleme ???
Messages postés
17
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
20 avril 2009

en faite il semble que mon probleme réside dans la ligne if mais je ne sais pas comment modifier cette ligne
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Salut
Je suis désolé pour la réponse tardive, j'étais en déplacement.
GetSaveAsFilename renvoie False ou un nom du fichier ; la variable qui reçoit l'info doit donc être de type Variant, pour accepter ces deux types.
Remplace :
cop = Application.GetSaveAsFilename(chem & cop)
If chem <> False Then
par
Dim res As Variant
res = Application.GetSaveAsFilename(chem & cop)
If res <> False Then
Amicalement
Messages postés
17
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
20 avril 2009

Pas de probleme... en tout cas sa fonctionne bien maintenant... une autre question, sais tu comment je pourrais faire pour inclure un texte dans le corps du mail, mais ce serait un texte basic style "veuillez trouver joint la feuille excel ..."
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Apparemment la méthode SendMail ne le permet pas, malheureusement.
@+
Messages postés
17
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
20 avril 2009

dommage, existe t'il une autre fonction qui me permettrais de faire la même chose que SendMail ??
Messages postés
17
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
20 avril 2009

désolé je n'est pas vinis ma réponse, et qui e permette d'ajouter un message dans le corps du mail ?
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Oui, bien sûr, si tu as Outlook, tu peux l'appeler depuis ton application en utilisant Automation. C'est quand même un peu plus compliqué que SendMail, mais tu peux faire ce que tu veux, notamment rédiger le corps du mail.
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Oui, bien sûr, si tu as Outlook, tu peux l'appeler depuis ton application en utilisant Automation. C'est quand même un peu plus compliqué que SendMail, mais tu peux faire ce que tu veux, notamment rédiger le corps du mail.
Messages postés
17
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
20 avril 2009

Merci pour ton aide je vais essaier cette solution aujourd'hui ou demain...

merci encore pour ton aide.