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 :

Importer la valeur d'une cellule sur VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Importer la valeur d'une cellule sur VBA
    Bonjour à tous,
    Je rencontre un petit soucis dans un code.
    Cela concerne une macro qui permet à partir d'un bouton d'envoyer un onglet par mail.
    La copie envoyée par mail est aussi enregistrée dans mon PC, elle est aussi nomée automatiquement.
    Avant j'utilisait la date aujourd'hui pour renomé les fichiers, maintenant je souhaite remplacer cette date par le contenu d'une cellule dans le nom du fichier de sortie, mais je n'arrive pas à le faire...
    Je vous remercie d'avance et vous souhaite de bonne fêtes !

    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
    Option Explicit
     
    Dim MonItem As Outlook.MailItem
     
    'Requiert une référence à la bibliothèque d'objets Word
    Dim wdDoc As Word.Document
     
    Dim lapj As String
     
    Public Sub essai_mail()
     
    'Je souhaite modifier le "Fomat(date......"  par le contenu de la cellule H8 fdans la feuille "SP"
     
    lapj = "D:\Documents\XLS\Programme SPDC " & Format(Date, "dd_mm_yyyy") & ".xlsx"
     
    Application.DisplayAlerts = False
     
    ThisWorkbook.Worksheets(Array("SP")).Copy
     
     
    With ActiveWorkbook
            .SaveAs _
                    Filename:=lapj, _
                    FileFormat:=xlOpenXMLWorkbook
            .Close
    End With
     
    Call Envoi_Documents_Mail
     
    Application.DisplayAlerts = False
     
    End Sub

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 174
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Comme expliqué dans une discussion récente titrée Problème code VBA sur Excel, il est fortement déconseillé de "HardCoder" dans les procédures.
    Le recours à des cellules contenues dans une feuille "Paramètre" permet de modifier aisément les chemins, nom de fichier, etc. concernés par l'application. C'est s'assurer la pérennité de son application, de ne plus intervenir dans son code lorsqu'il y a changement de ses valeurs.

    Ainsi la ligne ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lapj = "D:\Documents\XLS\Programme SPDC " & Format(Date, "dd_mm_yyyy") & ".xlsx"
    pourrait être remplacé par exemple par la concaténation des cellules nommées pSubFolder (B2) & pFileName (B3) d'une feuille nommée Parameter. Voir illustration ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      PathName = ThisWorkbook.Path & "\" & Range("pSubFolder") & "\"
      lapj = PathName & Range("pFileName").Value
    La valeur de Lapj devient \\VBOXSVR\Partage\Forums\Offre\1912-MagicOffice.xlsx

    Nom : 191211 dvp Non au HardCoding.png
Affichages : 567
Taille : 15,0 Ko

    La cellule nommée pFileName contient la formule suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =TEXTE(AUJOURDHUI();"aamm") & "-" & CustomerName & ".xlsx"
    CustomerName référencé dans la formule est une cellule nommée contenant comme son nom l'indique le nom du client
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    Comme expliqué dans une discussion récente titrée Problème code VBA sur Excel, il est fortement déconseillé de "HardCoder" dans les procédures.

    Exellent !!!
    ça marche !
    Effectivement c'est plus confortable de ne pas HARDCODER !!!!

    Comment faire pour enregistrer le fichier dans un dossier différent de la source du fichier ?

    Cordialement

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Salut Philippe.

    Comment faire pour enregistrer le fichier dans un dossier différent de la source du fichier ?
    Voir la méthode SaveAs

    Pour reprendre la remarque de l'ami Philippe, le paramètre Filename de cette méthode peut très bien contenir une concaténation incluant la valeur d'une cellule.

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/08/2011, 11h36
  2. Recuperer valeur d'une cellule sur double clic sur la ligne
    Par boboss123 dans le forum Composants
    Réponses: 2
    Dernier message: 18/01/2010, 08h54
  3. Afficher la valeur d'une cellule sur une image
    Par alex830001 dans le forum Excel
    Réponses: 2
    Dernier message: 02/07/2008, 11h07
  4. récupération de la valeur d'une cellule en VBA
    Par jffaber dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/05/2008, 09h19
  5. Reference a une cellule sur VBA
    Par nicoroth dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/07/2007, 12h39

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