VBA rennomer, enregistrer une copie et envoyer par mail

Résolu/Fermé
saxo9 Messages postés 20 Date d'inscription vendredi 24 mai 2013 Statut Membre Dernière intervention 1 mars 2021 - 24 mai 2013 à 17:37
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 1 juin 2013 à 16:50
Bonjour tous !

D'abord merci à tous car grace à vos posts vos réponses ... ben j'avance !!
Une chose qui m a beaucoup aider c'est de faire des petits enregistrement de macro pour avoir les code et ensuite compiler et ensuite adapter ... mais là je bug.

Le but :
1. J'ai une classeur de base en Xlm sécurisé
2. on travail dessus
3. on clic

Le bouton : Enregistrer / imprimer / envoyer ... ben là il marche pas


Sub Macro1 () ' Renommer & enregistrer
`Envoi via outlook
Dim Destinataires(3) As String
Dim Sujet As String
Dim nom As String
Destinataires(1) = "a@x.fr"
Destinataires(2) = "a@x.fr"
Destinataires(3) = "a@x.fr"
ChDir "C:\Users\Utilsateur\Desktop\Test"
Nom = Day (Date) & "-" & Month (Date) & "-" & Year(Date) & "_" & Range("D14") & ".xls"
Subject = "Commande repas"
Application.ScreenUpdating = False
Workbooks (nom).SendMail Destinataires, Subject, AccuseReception = False
Application.ScreenUpdating = True
ThisWorkbook.SaveCopyAs (nom)
Destinataires(1) = "a@x.fr"
Destinataires(2) = "a@x.fr"
Destinataires(3) = "a@x.fr"

MsgBox "A bientôt", , "FIN"
End Sub

En fait je ne sais pas comment lui dire, va me chercher la copie dans le dossier X & envoie là, surtout que le dit fichier change de nom par rapport à la date et le numero de commande ...

J'ai essayé plein de truc avec Openfile ... mais j'ai pas du comprendre.

Quelqu'un pour m'aider ?
En tout cas j'espère que mon mess est clair.

A bientôt
Saxo9

11 réponses

saxo9 Messages postés 20 Date d'inscription vendredi 24 mai 2013 Statut Membre Dernière intervention 1 mars 2021
26 mai 2013 à 08:24
Bon je me réponds ...

J'ai plusieurs module :
1 Nurémo de commande ok
2 enregistrement d'une copie sans xlm dans une dossier ok
3 Impression ok


4 envoi de la copie via outlook PAS OK car je n'arrive pas à trouver comment lui dire !
ouvre le dossier
chercher la commande (nom variable mais d'aujourd'hui)
envoie via outlook

Help SVP suis perdu et je viens de commander un livre que je recevrai pas avant 1 mois ... en espérant qu'il va m'aider

Merci a tous
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
26 mai 2013 à 10:10
Bonjour,
Voir ce tuto regarde aussi les postes suivant, je pense que l'un des exemple te conviendra.
A+
0
saxo9 Messages postés 20 Date d'inscription vendredi 24 mai 2013 Statut Membre Dernière intervention 1 mars 2021
27 mai 2013 à 11:56
Bonjour lermite222 et merci pour le lien

Il m'a beacoup aidé et là tout fonctionne.

Application.ScreenUpdating = False
Suject = "Commande repas"
ReturnReceipt = True
ThisWorkbook.SendMail Destinataires, Sujet, AccuseReception = False
Application.ScreenUpdating = True


Il me reste une petite chose ... est-il possible depuis là de convertir ThisWorkBooK en xls au lieu qu'il parte en xlm ?
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
27 mai 2013 à 13:44
Re,
Je ne connais pas les notes xlm, une piste peut-être, copier les données dans un autre classeur, le sauver sous.. *.xlsx, l'ouvrir et l'envoyer.
Toute fois, une chose m'échappe, tu peu avoir des macros dans un classeur xlm ?

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
saxo9 Messages postés 20 Date d'inscription vendredi 24 mai 2013 Statut Membre Dernière intervention 1 mars 2021
27 mai 2013 à 18:49
Autant pour moi j'ai zappé le s ... xlsm

je te mets le lien, mais je suis loin d'être pro ... alors on se moque pas ;op

https://www.cjoint.com/?3EBswmDmlEr

J'en suis à 50% de ce que je voudrais & j'espère que e lien va fonctionner.

Merci de ton aide
Isa
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 27/05/2013 à 20:14
Oui, le lien est bon..
Donc, si je comprend bien, tu à un classeur *.xlsm (avec macro) et tu voudrais l'envoyer en xlsx (sans macro) ?
C'est ça ?
EDIT :
Les deux feuilles doivent partir ?
EDIT 2:
C'est quoi qui ne va pas, il me semble que tu crée déjà des classeurs xlsx et ensuite tu les supprime ? Explique où ça cloche.
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
0
saxo9 Messages postés 20 Date d'inscription vendredi 24 mai 2013 Statut Membre Dernière intervention 1 mars 2021
28 mai 2013 à 14:26
je t'ai mis le lien pour que tu comprennes mieux.

En fait oui, grace à ton lien

- Module 2 : je crée une copie que je nomme JJ-MM-AAAA_x. xls dans un fichier de sauvegarde

En fait ce que je voulais, c'est aller rechercher ces copies pour les envoyer en fin de procédure du module 3.
Au lieu de cela je Save "temporairement" les feuilles en les renomant puis je les kill (mais cela ne fonctionne pas à chaque fois )

Mais en fait comme chaque fichier que je sauvegarde avec le module 2 à un nom variable, il faudrait que je lui dise :
- ouvre le fichier de saurvegarde
- envoie les fichier enregistré aujourd'hui seulement

Je sais pas ce que tu en pense, je ne sais quelle méthode est la bonne ...

Bon je continue,
Merci de ton aide, ça me motive
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 29/05/2013 à 09:28
J'ai déjà mis ce poste hier mais il a disparu ??
Bref, je le remet.
Pourquoi ne pas tout faire en une seule fois ?
Un exemple pour une feuille..

    Sujet = "Commande Epicerie"
    Application.ScreenUpdating = False
    Fich2 = ThisWorkbook.Path & "\" & Format(Date, "jj-mm-aaaa") & "_PANIMA Epicerie.xlsx"
    Sheets("Commande repas").Copy
    With ActiveWorkbook
        .SaveAs Fich2
        .SendMail Destinataires, Sujet, False
        .Close
    End With
    Kill Fich2

A+


Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
0
saxo9 Messages postés 20 Date d'inscription vendredi 24 mai 2013 Statut Membre Dernière intervention 1 mars 2021
31 mai 2013 à 05:45
Merci lermite de ton aide et désolée de la réponse tardive

Ca fonctionne !!!
0
saxo9 Messages postés 20 Date d'inscription vendredi 24 mai 2013 Statut Membre Dernière intervention 1 mars 2021
1 juin 2013 à 06:57
j'ai encore un petit souci ... si t'es toujours là.

C'est sur la suppression des fichiers mais sur un autre fichier.

J'explique : j'ai terminé le xlsm que j'ai joint, et merci encore tout fonctionne mais au final il est "relié" à d'autre xlsm

J'en ai un "regroupe" les données de toutes les demandes du jour en ramenant les onglets + aditionne + convertie en valeur et supprime les onglet importé.

Ensuite je vousdrais qu'il supprime les fichiers importés dans le dossier de sauvegarde ... et là je bloque grave et c'est le dernier module, d'ou mon désespoir !
Après c'est que de la mise en page + protection.

Bon je crois que t'as compris k je suis un blonde ;o)


Sub Kill()

Dim Fichier As String, Repertoire As String

Repertoire = "C:\Users\Utilisateur\Desktop\Sauvegarde\"
Fichier = Dir(Repertoire & "6221*.xls")
Kill

End Sub

En sachant que les fichier à killer : nombre 9 et noms différents chaque jour car les nom des fichiers son du type "aujourdhui()+n°UF" et qu'il faut surtout pas qu'il me supprime le Xlsm ....

J'espère que je suis clair ... sinon sorry

@+
isa
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 1/06/2013 à 16:51
Re,
NE JAMAIS METTRE UN NOM DE FONCTION POUR UNE PROCÉDURE
Sub Kill... PAS BON.
Est-ce qu'il y a des fichiers xls dans ce répertoire qui ne doivent pas être supprimer ?
Si non,
Sub SuppFichiersDuJour()
Dim Rep As String, Fichier As String
    Rep = "C:\Repertoire\"
    Fichier = Dir(Rep)
    Do While Fichier <> ""
        If Right(Fichier, 3) = "xls" Then
            Debug.Print Rep & Fichier
            'Kill Rep & Fichier
        End If
        Fichier = Dir
    Loop
End Sub

Pour tester regarde dans la fenêtre exécution si c'est bien ces fichiers là qui doivent êtres supprimés.
Si c'est bon, supprime la ligne Debug et valide la ligne Kill
Eventuellement donne des points de repères pour retrouver les fichiers à détruire.

Tu dis
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
0