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 :

Module avec plusieurs conditions


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Par défaut Module avec plusieurs conditions
    Bonjour,

    J'aimerais si possible, éditer une macro afin d'envoyer un e-mail de relance à plusieurs clients.

    Cependant, étant donné que certaines lignes concernent un seul client, j'aimerai qu'un seul e-mail lui soit envoyé.


    Voici mon mail type :

    "Référence :

    - Equipement n°(Cellule A2) situé à (Cellule A3) pour (Cellule A4)"


    Donc, si un client a 3 lignes, je souhaites que la macro lui envoie un seul mail mais avec 3 références...
    Et si, un client a 1 ligne, ça lui envoie qu'une référence...

    Et si par la suite, j'aimerais savoir si il est possible d'ajouter automatiquement des pièces jointes en fonction du numéro d'équipement "A2" ?

    Je suis désolé si je me suis mal exprimé...

    Cordialement,

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Il faudrait savoir comment sont organisés tes valeurs (à priori, en colonnes et pas en lignes) mais je pense que le mieux est d'utiliser un dictionnaire en concaténant les références et où la clé serait le nom du client.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Par défaut
    Bonjour,

    Ma première ligne contient mes valeurs comme :
    A1 : Nom du client
    A2 : Numéro d'équipement
    A3 : Adresse
    A4 : Montant

    Ensuite, mes lignes sont spécifiques à un numéro d'équipement.
    Cependant, parfois, deux lignes (donc deux numéros d'équipements) appartiennent à un seul client.

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Tes enregistrements sont comme ceci ?
    Nom : Clients sur une seule colonne.png
Affichages : 149
Taille : 9,0 Ko

    ou comme cela ?

    Nom : Clients sur plusieurs colonnes.png
Affichages : 151
Taille : 8,2 Ko

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Par défaut
    Comme ceci... Désolé pour mon explications bidon !
    Nom : Sans titre.png
Affichages : 145
Taille : 4,7 Ko

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Donc, voici une piste pour la récup des valeurs :
    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
     
    Sub Test()
     
        Dim Dico As Object
        Dim Cle As Variant
        Dim Plage As Range
        Dim Cel As Range
        Dim T As Variant
        Dim Chaine1 As String
        Dim Chaine2 As String
        Dim I As Integer
     
        Set Dico = CreateObject("Scripting.Dictionary")
     
        'défini la plage sur la colonne A de la feuille active à partir de A1 (colonne des noms)
        With ActiveSheet: Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp)): End With
     
        'cocatène le Numéro d'équipement avec le montant séparés par un tiret bas et ensuite, sépare
        'les enregistrements par une virgule
        For Each Cel In Plage
     
            Dico(Cel.Value) = Dico(Cel.Value) & Cel.Offset(, 1).Value & "_" & Cel.Offset(, 3).Value & ","
     
        Next Cel
     
        For Each Cle In Dico.Keys
     
            'splite dans un tableau
            T = Split(Dico(Cle), ",")
     
            'construction des deux chaînes
            Chaine1 = Cle & "," & vbCrLf & vbCrLf
            Chaine2 = "Sauf erreur de notre part, vous nous êtes redevable " & IIf(UBound(T) > 1, "des sommes", "de la somme") & " ci-dessous :" & vbCrLf & vbCrLf
     
            'extrait le numéro d'équipement et le montant et inscrit les enregistrement les uns sous les autres
            For I = 0 To UBound(T) - 1
                Chaine2 = Chaine2 & "pour le numéro d'équipement " & Split(T(I), "_")(0) & " d'un montant de " & Split(T(I), "_")(1) & vbCrLf
            Next I
     
            'finalise
            Chaine1 = Chaine1 & Chaine2 & vbCrLf & "En l'attente de votre règlement, veuillez agréer, " & Cle & ", mes sincères salutations."
            Chaine1 = Chaine1 & vbCrLf & vbCrLf & "ElMizuno41"
     
            'ici, il faut envoyer les mails
            MsgBox Chaine1
     
            'vide pour le suivant
            Chaine1 = "": Chaine2 = ""
     
        Next Cle
     
    End Sub
    Je n'ai rien fais pour l'envoi par mail car je ne sais pas où sont les adresses !
    Le classeur est monté de cette façon :

    Nom : ElMizuno41.png
Affichages : 144
Taille : 21,6 Ko

    et tu auras des boites de messages successives pour le test !

Discussions similaires

  1. Somme si avec plusieurs conditions et plage de données variables.
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/10/2007, 14h19
  2. Réponses: 1
    Dernier message: 27/06/2007, 16h01
  3. Having avec plusieurs conditions ?
    Par jchatard dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/04/2007, 15h58
  4. Si je fais un if() avec plusieurs conditions ..
    Par Pauli dans le forum Langage
    Réponses: 2
    Dernier message: 25/01/2007, 16h47
  5. like avec plusieur condition
    Par wayak3 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/01/2007, 11h43

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