VBA rennomer, enregistrer une copie et envoyer par mail
Résolu
saxo9
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
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
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
A voir également:
- Lancez l'application. envoyez ce mail à manon (manon@pixmail.org) en mettant en copie nina (nina@pixmail.org) : objet : colis bonjour, votre colis est arrivé. que répond manon ?
- Suivi colis : comment suivre des livraisons à la trace - Guide
- Votre colis ne peut être livré ce jour. il sera mis en livraison au plus tôt. - Forum Vos droits sur internet
- Copie cache mail - Guide
- Cdg colis shein - Forum Consommation & Internet
- Colis en cours d'acheminement - Forum Consommation & Internet
11 réponses
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
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
Bonjour,
Voir ce tuto regarde aussi les postes suivant, je pense que l'un des exemple te conviendra.
A+
Voir ce tuto regarde aussi les postes suivant, je pense que l'un des exemple te conviendra.
A+
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 ?
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 ?
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 ?
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 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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 .
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 .
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
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
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..
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 .
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 .
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
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
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,
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 .
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 .