IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Alerte mail sur valeur cellule excel


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Mai 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 4
    Par défaut Alerte mail sur valeur cellule excel
    Bonjour,
    Sur un fichier de gestion de stock (en pièce jointe), je souhaite envoyer un mail d'alerte dès que le mot "Commande" apparaît dans ma cellule.
    Quel code VBA utiliser et comment l'intégrer à mon classeur entier (sachant que je n'ai mis en exemple qu'une seule feuille).
    Merci beaucoup de vos retours.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Comme je n'ouvre pas de fichiers avec macros, ça va être difficile de t'aider...
    Peux-tu expliquer un peu plus clairement ton problème ?

    Il s'agit de boucler tes lignes, vérifier si le mot est là, envoyer le courriel, effacer le mot et peut-être inscrire la date d'envoi...
    Tout ça sur un click d'un bouton ou à l'ouverture du fichier, selon les préférences.

  3. #3
    Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Mai 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 4
    Par défaut Alerte mail sur valeur cellule excel
    Bonjour,
    je mets en pièce jointe le fichier excel sans macro.
    J'ai les colonnes suivantes :
    - produits
    - stock de départ
    - date de retrait du stock
    - quantité retirée
    - stock restant
    - stock d'alerte
    - alerte commande => sur cette colonne figure le mot "COMMANDE" quand le stock d'alerte est atteint.
    Je souhaite lorsque ce mot COMMANDE apparaît, générer une alerte par mail.
    Je n'y connais rien en code VBA...
    Merci bcp de ton aide.
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Il y a plusieurs mention "COMMANDE" sur des lignes d'entêtes et/ou de produits.
    Il faudrait éliminer les mots COMMANDE sur les lignes d'entêtes.

    Certains fournisseurs se répètent.
    Certains produits n'ont pas de notion fournisseur... donc à qui envoyer ?
    Il faudrait donc voir comment tu comptes gérer tes envois.

    Je pense que tu devrais ajouter un onglet avec le nom de chaque fournisseur (en A) et mettre leurs adresses courriel (en B), séparées par des points-virgules.
    Au bout de chaque ligne de chaque onglet, tu mets aussi ces noms.
    Comme ça, en bouclant les lignes, tu peux aller chercher la référence pour les adresses courriel.
    On pourrait aussi rechercher le nom du fournisseur dans la colonne A de chaque onglet, mais il faudrait que ce nom apparaisse sur chaque ligne.

    Comme tu ne veux certainement pas envoyer 25 mails au même fournisseur, il faudrait faire une boucle dans cette liste de fournisseurs et accumuler les produits à commander.
    Finalement, ça prendrait un peu plus d'infos...

  5. #5
    Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Mai 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 4
    Par défaut
    Merci de ton retour rapide !
    En fait, le mail n'est pas à envoyer aux fournisseurs mais uniquement au gérant de l'établissement, donc une seule adresse mail.
    Il veut être averti lorsque ses employés "puisent" dans les stocks et mettent à jour ce fichier, des produits ayant atteint leur seuil d'alerte pour qu'il puisse commander lesdits produits.
    Je pensais qu'il s'agissait d'un code VBA à intégrer en précisant dans le code la colonne commande, et ainsi renvoyer les lignes à commander.

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Voici une façon de faire.
    Je copie dans un onglet nommé Envoi toutes les mentions COMMANDE.
    Je copie cet onglet dans le C:
    J'envoie le courriel avec le fichier joint.
    Je supprime le fichier du C:

    Il faut donc que tu crées un onglet Envoi avant de tester.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    Sub Alerte()
        Dim I As Long, nbLignes As Long, LigneDest As Long
        Dim Sh As Worksheet
        Dim NomTableau As String
     
        Sheets("Envoi").Cells.Clear
     
        For Each Sh In Worksheets
            If Sh.Name <> "Envoi" Then
                Sh.Activate
                nbLignes = Sh.Cells(Rows.Count, "A").End(xlUp).Row
                NomTableau = GetNomTableau(Sh)
                LigneDest = Sheets("Envoi").Cells(Rows.Count, "A").End(xlUp).Row + 2
     
                Sh.ListObjects(NomTableau).Range.AutoFilter Field:=7, Criteria1:="<>"
                Range("A1:G" & nbLignes).SpecialCells(xlCellTypeVisible).Copy
                Sheets("Envoi").Range("A" & LigneDest).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
                Sheets("Envoi").Range("A" & LigneDest).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
            End If
        Next
        Sheets("Envoi").Columns.AutoFit
     
        Envoyer
    End Sub
     
    Function GetNomTableau(Sh As Worksheet) As String
        Dim Tablo As ListObject
     
        For Each Tablo In Sh.ListObjects
            GetNomTableau = Tablo
            Exit Function
        Next
    End Function
     
    Sub Envoyer()
        Dim OL As Object
        Dim MailItem As Object
     
        Sheets("Envoi").Copy
        ActiveWorkbook.SaveAs "C:\Commandes.xlsx"
        ActiveWorkbook.Close False
     
        Set OL = CreateObject("Outlook.Application")
        Set MailItem = OL.CreateItem(0)
     
        With MailItem
            .Display   'permet d'afficher la signature, le cas échéant
            .To = "Nom@FAI.com"  'Mettre l'adresse à qui envoyer
            .CC = ""    'au cas où
            .BCC = ""   'au cas où
            .Subject = "Commandes à effectuer"
            .htmlbody = "Ci-joint les commandes à effectuer" & .htmlbody
            .attachments.Add "C:\Commandes.xlsx"
    '        .Send      'pour envoyer directement sans manipulation
            .Display    'pour afficher le message avant de l'envoyer manuellement
        End With
     
        Kill "C:\Commandes.xlsx"    'Supprime le fichier créé
     
        Set OL = Nothing
        Set MailItem = Nothing
    End Sub

  7. #7
    Candidat au Club
    Femme Profil pro
    Ressources humaines
    Inscrit en
    Mai 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 4
    Par défaut
    Merci beaucoup !
    Je vais tester tout ça !

Discussions similaires

  1. [XL-2003] Macro VBA copie valeur cellule excel et colle dans doc word
    Par tony020422 dans le forum Macros et VBA Excel
    Réponses: 54
    Dernier message: 03/06/2009, 09h21
  2. Problème bizarre sur validation cellule Excel
    Par Contrec dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/01/2009, 14h32
  3. Evènement sur un KeyPress sur une cellule Excel
    Par krfa1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/01/2009, 13h56
  4. Récupérer valeur cellule Excel pour app vb2005
    Par j-lo28 dans le forum VB.NET
    Réponses: 0
    Dernier message: 24/12/2008, 18h14
  5. Réponses: 3
    Dernier message: 18/10/2007, 16h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo