Macro unique pour envoyer par mail une feuille et l'enregistrer sur HDD

Bonjour à tous,

je coince un peu sur mon fichier (ci-joint) et étant novice, je tourne en rond :(

je souhaiterais que la feuille "Constatation", une fois remplie, soit envoyée par mail (plusieurs destinataires) et qu'elle s'enregistre aussi sur le HDD, le tout en cliquant sur l'enveloppe en haut à droite.

Auriez-vous aussi une petite astuce pour réaliser une autre macro que je tente d'enregistrer ? Je passe par le module d'enregistrement.

Je souhaite ouvrir l'explorateur de fichier en cliquant sur le pictogramme "image" (sous l'enveloppe) pour insérer des photos sur la feuille.

Quand je lance l'enregistrement, je chemine dans la procédure et c'est là qu'arrive mon soucis.... lorsque je veux terminer l'enregistrement de ma macro, il m'est impossible d'ouvrir l'onglet "AFFICHAGE --> MACRO" puisque l'explorateur est ouvert et m'empêche toute autre action. Donc du coup si je referme l'explorateur et la macro enregistre la fermeture et donc cela ne me sert plus à rien une fois l'enregistrement terminé

ps : je travaille à la maison sur excel 2013 mais le fichier devra fonctionner sur 365 au boulot.

12constatation.xlsx (155.23 Ko)

Merci d'avance

David

ou après réflexion, il serait peut-être plus simple que le fichier s'enregistre sur le HDD et que l'on envoi un mail juste pour signaler la présence d'un nouveau fichier sur le HDD (je précise que c'est le HDD d'un serveur)

Bonjour David1976 et

Merci pour votre présentation

Si vous ne l'avez pas encore fait, je vous invite à lire ces quelques lignes qui vous aideront dans vos demandes
et réponses ainsi que sur les fonctionnalités (Nouveau Forum au bas de page notamment) de ce forum décrites par Sébastien
- La charte du forum
- Les fonctionnalites du forum

Concernant votre demande, un tas de sujets traitent de ça, merci d'effectuer une recherche avec la zone en haut de la page prévue à cet effet
ou avec notre ami Google

Merci pour votre participation sur le site Excel Pratique

Cordialement

Bonjour BrunoM45,

Sorry pour la présentation, mais il y a quelque chose que je ne capte pas....

Je me suis inscrit sur ce forum en 2016 et effectivement maintenant que tu me le fais remarquer, je constate que je n'ai que 2 messages (3 avec celui-ci) .

Il y a t-il quelque chose qui puisse justifier cela ?

Re,

Désolé, mais je ne suis pas allé voir votre profil avant
mais votre inscription date du 01/11/2021 (sous ce pseudo)

image

J'ai vu "Nouveau venu", j'ai donc mis les indications pour les nouveaux venus

Si ce n'est pas le cas et si la présentation à déjà été faite auparavant, ne tenez pas compte de mon précédent post

a+

J'ai pu avancer sur l'enregistrement du fichier sur le HDD en format *.pdf ---> OK ça fonctionne

J'ai réussi à moitié la macro pour insérer une image sur la feuille. Le problème est qu'il m'ouvre un chemin par défaut : C:\Utilisateurs\Admin\Documents

alors que dans ma macro j'ai indiqué le chemin souhaité. De plus quand l'explorateur de fichier s'ouvre et que je fais "annuler" ou que je ferme la fenêtre avec la croix, je reçois un débogage pour une erreur d'exécution 1004.... je sèche....

Pour la macro "envoi d'un mail d'information" vers plusieurs adresses, je ne trouve toujours pas ce que je cherche :(


12constatation.xlsm (164.18 Ko)


Bonjour David1976,

Pour commencer, pensez à définir vos variables

Pour l'insertion de votre image, vous utilisez ce code

Sub Insérerimage()
ChDir "D:\Test\images"
Fname = Application.GetOpenFilename(FileFilter:="Picture Files (*.gif;*.jpg;*.jpeg;*.bmp),*.gif;*.jpg;*.jpeg;*.bmp", Title:="Select Picture")
If Fname <> "" Then
  Set im = ActiveSheet.Pictures.Insert(Fname)
End If

End Sub

ChDir est la commande pour changer de repertoire courrant, mais ne force pas l'instruction GetOpenFileName à aller dedans, puisque cette instruction ne propose pas le chemin par défaut

Utilisez plutôt cette fonction

Function ChoixFichier(DefaultPath As String, sTitre As String, Optional sFilter As String)
  ' Le filtre doit être du type : "Fichier Excel (*.xlsx), *.xlsx"
  Dim fd As FileDialog, TabFilter() As String
  ' Initialiser les variables
  If Right(DefaultPath, 1) <> "\" Then DefaultPath = DefaultPath & "\"
  ' Initialiser l'intance du dialogue
  Set fd = Application.FileDialog(msoFileDialogFilePicker)
  With fd
    .Filters.Clear
    ' Si un filtre a été donné
    If sFilter <> "" Then
      TabFilter = Split(sFilter, ",")
      .Filters.Add TabFilter(0), Trim(TabFilter(1))
    End If
    .Title = sTitre
    .InitialFileName = DefaultPath
    If .Show = -1 Then
      ChoixFichier = fd.SelectedItems(1)
    End If
  End With
  Set fd = Nothing
End Function

A+

Merci BrunoM45.

J'ai placé votre macro mais cela ne fonctionne pas...

je suppose que je dois insérer le chemin du répertoire à un endroit bien précis de la macro ?

Par contre ce que je ne comprends pas c'est le commentaire de la ligne 2 qui dit ' Le filtre doit être du type : "Fichier Excel (*.xlsx), *.xlsx"

Pour l'envoi du mail, c'est ok j'ai trouvé ;)

11constatation-v-2.xlsm (167.66 Ko)

Bonjour,

Concernant l'envoi d'un mail voici ce que j'ai fait, si ça peut t'aider ?. Il s'envoi lorsque je clique sur le bouton "envoyer mail" bien sur il faut l'adapter.

Bonne journée à toi

Edit modo : merci de mettre le code entre balises

Bonjour Caillavet

Code supprimé : j'en ai marre "aujourd'hui" de devoir me répéter

Le code est à mettre entre balises grâce au bouton

image

Il est vraiment dommage de ne pas connaitre les principes du forum après 32 messages

Le fichier avance bien et se termine tout doucement.

il ne me reste plus que ce satané VBA pour ouvrir la fenêtre "insérer une image" sur lequel je coince :(

Voici en image ce que je souhaite pour ceux à qui je me serais mal exprimé...

sans titre

Bonsoir,

Le code du bouton, pas compliqué à trouvé normalement

Sub Insérer_Photo()
  Dim sPathFic As String
  Dim Img As Object
  ' Choix du fichier directement dans le dossier choisi
  sPathFic = ChoixFichier("D:\Test\Images", "CHOIX de l'IMAGE", "Image (*.jpg), *.jpg")
  ' Sélectionner la cellule ou placer la photo
  ActiveSheet.Range("AK4").Select
  Set Img = ActiveSheet.Pictures.Insert(sPathFic)
End Sub

Et la fonction

Function ChoixFichier(DefaultPath As String, sTitre As String, Optional sFilter As String)
  ' Le filtre doit être du type : "Intitulé (*.ext), *.ext"
  Dim fd As FileDialog, TabFilter() As String
  ' Initialiser les variables
  If Right(DefaultPath, 1) <> "\" Then DefaultPath = DefaultPath & "\"
  ' Initialiser l'intance du dialogue
  Set fd = Application.FileDialog(msoFileDialogFilePicker)
  With fd
    .Filters.Clear
    ' Si un filtre a été donné
    If sFilter <> "" Then
      TabFilter = Split(sFilter, ",")
      .Filters.Add TabFilter(0), Trim(TabFilter(1))
    End If
    .Title = sTitre
    .InitialFileName = DefaultPath
    If .Show = -1 Then
      ChoixFichier = fd.SelectedItems(1)
    End If
  End With
  Set fd = Nothing
End Function

Bonne soirée

Merci BrunoM45,

ayant bien compris que le premier code doit-être copié dans un module, le code de la fonction doit-être copié où ?

Sorry mais je suis vraiment novice et malgré cela j'ai quand pu trouver par moi-même tout ce qui fonctionne déjà dans le fichier

Re,

Même chose dans un module, que perso je nomme "Fonctions" et je les mets toutes dedans

A+

sans titre 2 sans titre 3

Re,

C'est typique d'une référence manquante

Va voir dans le menu -> Outils -> Références, s'il n'y en a pas une indiquée [MANQUANTE]

Ce fichier marche très bien chez moi

A+

Merci BrunoM45,

cela fonctionne mais je viens de le tester au travail... donc je pense que le problème vient certainement du fait que j'ai 365 au boulot et 2013 à la maison....

par contre quand j'ouvre la fenêtre "insérer une image" via la macro que tu m'as corrigé, je reçois un message d'erreur si je fais "annuler" ou si je veux fermer la fenêtre sans choisir un fichier :

untitled2

Bonjour,

je pense que le problème vient certainement du fait que j'ai 365 au boulot et 2013 à la maison

Pour moi rien à voir l'instruction Right() est reconnu par ces 2 versions

je reçois un message d'erreur si je fais "annuler" ou si je veux fermer la fenêtre sans choisir un fichier

Normal, je n'ai pas mis de test à vous de le faire, c'est simple.

Normal, je n'ai pas mis de test à vous de le faire, c'est simple.

Voici quelques jours que je cherche ce qu'est le "test" mais je ne trouve rien qui puisse m'aider... désolé :(

Rechercher des sujets similaires à "macro unique envoyer mail feuille enregistrer hdd"