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 :

Modification du nom d'un fichier excel sans enregistrer-sous [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Septembre 2009
    Messages : 31
    Points : 31
    Points
    31
    Par défaut Modification du nom d'un fichier excel sans enregistrer-sous
    Bonjour,

    Ce programme crée un fichier Excel de synthèse qui est automatiquement envoyé par mail à l'intéressé.

    Mais pour un souci de classement ce fichier Excel doit avoir un nom.

    J'ai trouvé sur différents sites un moyen de le renommer simplement en l'enregistrant, mais justement j'aimerais éviter d'avoir à l'enregistrer.

    Voila mon programme:

    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
    Sub Creation_fiche_xl()
     
    'Masque les messages d'alerte
    Application.DisplayAlerts = False
     
    'Récupération du nom du premier fichier excel
    nom_fichier1 = Windows(1).Caption
     
        'Masque les messages d'alerte
        Application.DisplayAlerts = False
     
    'Création de la fiche boutique dans un nouveau fichier excel
        Workbooks.Add
        Application.WindowState = xlNormal
     
    'Récupération du nom du deuxiéme fichier excel
        nom_fichier2 = Windows(1).Caption
     
    'Copie de la feuille resultat
        Windows(nom_fichier1).Activate
        Sheets("Resultat").Select
        Cells.Select
        Selection.Copy
     
        Windows(nom_fichier2).Activate
        Sheets("Feuil1").Select
        Cells.Select
        ActiveSheet.Paste
     
    'supression des feuilles dans ce ficchier excel
        Sheets("Feuil2").Select
        ActiveWindow.SelectedSheets.Delete
        Sheets("Feuil3").Select
        ActiveWindow.SelectedSheets.Delete
     
    'Envoi du mail à la boutique
        ActiveWorkbook.SendMail Recipients:=Range("A1").Value, _
        Subject:="Test envoi classeur", _
        ReturnReceipt:=True
     
    End Sub
    Merci par avance de votre aide!

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    Bonjour,

    Qu'est ce qui t'empeche de l'enregistrer, l'envoyer puis le supprimer ?

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par jfontaine Voir le message
    Bonjour,

    Qu'est ce qui t'empeche de l'enregistrer, l'envoyer puis le supprimer ?
    Je dirais même plus, mais puisque tu l'envoies, c'est qu'il est fermé, et s'il est fermé, tu peux le renommer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Name ancienNom as NouveauNom
    regarde à Name, instruction dans l'aide en ligne

  4. #4
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 239
    Points : 307
    Points
    307
    Par défaut Recopie worksheet
    Essayes ce code , ça parait plus light.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    sub création_fichier
      workSheets ("résultat").Copy
     ActiveWindow.Caption = "fichier_renommé.xls"
    end sub

  5. #5
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Bonjour à tous,

    Merci ouskel'n'or, je ne connaissais pas de l'utilisation de Name, c'est bien pratique. (par contre pas facile de touver l'aide dans l'editeur).

    J'ai mis en pratique avec un classeur essai.xls :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Renomme_Essai()
     
    Name "C:\essai.xls" As "C:\essai2.xls"
     
    End Sub
    Ps : a adapter notamment avec la gestion d'erreur

  6. #6
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 239
    Points : 307
    Points
    307
    Par défaut Renommage fichier
    Tout bien réfléchi , il vaut mieux utiliser :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
     workSheets ("résultat").Copy
     '   ActiveWindow.Caption = "fichier_renommé.xls"  ' pas d'avantage à l'utiliser
       ActiveWorkbook.SaveAs "fichier_renommé.xls"
    La syntaxe ActiveWindow.Caption ne peut que compliquer car le fichier n'est pas renommé , il reste de la forme ClasseurXX.xls . Pour l'envoi , c'est pas terrible

  7. #7
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Septembre 2009
    Messages : 31
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par CodeFacile Voir le message
    Bonjour,

    Qu'est ce qui t'empeche de l'enregistrer, l'envoyer puis le supprimer ?
    Bonjour,

    Si je ne veux pas l'enregistrer c'est parce que ce n'est pas moi qui ferait tourner le programme. Et il va être utilisé par différentes personne sur différents postes info.
    Je ne voyais donc pas où l'enregistrer et je ne pensais pas que l'on pouvait enregistrer sans spécifier de chemin d'accès.

    Citation Envoyé par CodeFacile Voir le message
    Tout bien réfléchi , il vaut mieux utiliser :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
     workSheets ("résultat").Copy
     '   ActiveWindow.Caption = "fichier_renommé.xls"  ' pas d'avantage à l'utiliser
       ActiveWorkbook.SaveAs "fichier_renommé.xls"
    La syntaxe ActiveWindow.Caption ne peut que compliquer car le fichier n'est pas renommé , il reste de la forme ClasseurXX.xls . Pour l'envoi , c'est pas terrible
    J'utilise ce code et ca fonctionne.

    Mais le problème c'est que je ne vois pas comment supprimer le fichier après coups.
    En effet le chemin d'accès pour cette dernière peut différer d'un poste à l'autre.

    Pour ce qui est du Name c'est très pratique je ne connaissais pas mais je ne connais pas l'emplacement du fichier donc dans cette situation il ne me sert pas à grand chose
    A moins qu'il existe un moyen de le retrouver!

    Merci encor pour vos réponses

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    ActiveWorkbook.SaveAs "fichier_renommé.xls"
    enregistre le fichier dans le répertoire courant soit ActiveWorkbook.path, répertoire dont tu peux ainsi récupérer le nom une fois le fichier enregistré.

  9. #9
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Septembre 2009
    Messages : 31
    Points : 31
    Points
    31
    Par défaut
    Merci Beaucoup ca marche!

    Merci pour vos reponses!

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

Discussions similaires

  1. afficher un fichier excel sans le Excel Viewer de MS
    Par nutix2003 dans le forum Documents
    Réponses: 5
    Dernier message: 26/07/2007, 10h22
  2. Lire un fichier Excel (sans avoir Excel installé)
    Par Adaemon dans le forum ASP.NET
    Réponses: 2
    Dernier message: 15/05/2007, 21h31
  3. [Excel] Lecture fichiers Excel sans Excel
    Par neometaller dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/04/2007, 10h32
  4. Réponses: 3
    Dernier message: 14/02/2007, 11h37
  5. Ouvrir un fichier excel sans pouvoir le modifier
    Par snakejl dans le forum Langage
    Réponses: 6
    Dernier message: 09/06/2006, 12h46

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