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 :

Amélioration/Correction syntaxe macro


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2013
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Août 2013
    Messages : 30
    Par défaut Amélioration/Correction syntaxe macro
    Bonjour,

    Deuxième post sur le forum, débutant en VBA, l'indulgence est de mise

    J'ai codé la macro suivante, et j’aimerai améliorer la syntaxe du code.

    Si les HardCoderz du forum peuvent y apporter des corrections/améliorations, tout en m'expliquant pourquoi, je suis preneur !

    Comment ce code doit marcher ?
    1) j'ouvre le fichier excel avec le modul VBA comportant le code ci-dessous
    2) j’ouvre test.xls (cf fichier ci-joint)
    3) je lance le code

    Merci et j'attends vos feedback

    Cheers !

    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
    Sub test_v3()
     
    On Error GoTo Mysolution:
     
    Dim libdufd As String, datedujour As Date, msgdumail As String, isin As String, Message As String, ListeMail As String
    libdufd = Range("D3")
    datedujour = FormatDateTime(Date, vbShortDate)
    msgdumail = "Fichier de collecte " & libdufd & " au " & datedujour
    isin = Range("B3")
    Message = "Souhaitez-vous envoyer le fichier ? "
    correspondance = "Le CHEMIN DU FICHIER .XLS DANS LEQUEL rech_isin cherche isin"
     
     
    If Left(isin, 2) = "FR" Then
            type_val = 0
    Else
            type_val = 1
    End If
     
    If type_val = 0 Then
    Exit Sub
    Else
    Range("B3").Select
    Workbooks.Open (correspondance)
    ActiveWorkbook.RunAutoMacros xlAutoOpen
    Worksheets("ETR centralisés").Activate 'ETR centralisés  est le nom du sheet du fichier correspondance.xls
    End If
     
    Range("A1").Activate
    Range("A1:A1000").Select
     
    rech_isin = Cells.Find(isin, LookIn:=xlValues).Activate 'Le On Error GoTo Mysolution: est important ici car si le code
                                                            'en "B3" n'est pas trouvé dans onglet "ETR centralisés" j'ai une
                                                            'error 91
     
    ActiveCell.Select
    ActiveCell.Offset(0, 16).Select     'Les adresses email se trouvent dans la colonne Q du sheet ETR centralisés du workbook correspondance
    ListeMail = ActiveCell.Value
     
    If ListeMail = "" Then
    Rep = MsgBox("Aucun contact n'est paramètré", vbOK)
    ActiveWorkbook.Close
    Exit Sub
    Else
    Rep = MsgBox(Message, vbYesNo)
    End If
    If Rep = vbNo Then
    ActiveWorkbook.Close
    Exit Sub
    End If
     
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
     
    On Error Resume Next
    With OutMail
        .To = ListeMail
    ActiveWorkbook.Close 'je ferme le fichier correspondance.xls pour attacher au mail le fichier test.xls
        .CC = "XXXX@YY.com"
        .Subject = "collecte de " & libdufd
        .Body = msgdumail
        .Attachments.Add ActiveWorkbook.FullName
        .display '.Send
    End With
    On Error GoTo 0
     
    Set OutMail = Nothing
    Set OutApp = Nothing
     
    ActiveWorkbook.Close
     
    Exit Sub
     
    Mysolution:
    If Err.Number = 91 Then
    Rep = MsgBox("Le code " & isin & " n'est pas renseigné", vbOK)
    ActiveWorkbook.Close
    ActiveWorkbook.Close
    Exit Sub
    End If
     
    End Sub
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Amélioration / Correction macro
    Par daddygraffiti dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/09/2013, 19h26
  2. [XL-2010] Amélioration de mes macros
    Par chouchouboy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/10/2010, 10h34
  3. Syntaxe macro : le &
    Par geofnich dans le forum SAS Base
    Réponses: 7
    Dernier message: 03/05/2010, 16h45
  4. Demande l'aide d'experts pour amélioration de mes macro.
    Par silennnce dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 26/08/2008, 07h43
  5. Problème syntaxe macro
    Par goulhasch dans le forum Macro
    Réponses: 15
    Dernier message: 14/09/2007, 10h09

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