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 :

Extraire une partie du nom du fichier actif pour l'utiliser comme un paramètre du code


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Polygos
    Homme Profil pro
    Ma petite entreprise
    Inscrit en
    Avril 2016
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ma petite entreprise
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2016
    Messages : 190
    Par défaut Extraire une partie du nom du fichier actif pour l'utiliser comme un paramètre du code
    Bonjour

    mon activeworkbook étant actif, puis je et comment en extraire une opartie du nom pour m'en reservir plu sloin pour renommer sa sauvegarde ?

    Je m'explique

    Fichier BdD_1005ED2306.xlsm est son nom

    en cours de programme, je vais faire une sauvegarde de lui à un état différent et je voudrais la nommer BdD_1005ED2306_mofifié_JJHH.xlsm
    ou JJHH sont écrits ainsi
    
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs "\\Station-serveur\Sauvegarde\ BdD_1005ED2306 modifié le" & Format(Now(), "mmdd-hhmm") & ".xlsm"
    avec la dedans la partie BdD_1005ED2306 venant d"'une variable.
    Ex
    var = qqchose comme "partie gauche de x caractères du nom du fichier", ce qui suppose de savoir extraire le nom du fichier qui contient le code sous forme de variable "var" et donc pouvoir écrire
    
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs "\\Station-serveur\Sauvegarde\ "&var"& "modifié le" & Format(Now(), "mmdd-hhmm") & ".xlsm"
    Vous voyez mon besoin ?
    comment extraire le nom (variable manuellement) du classeur actif ?
    Merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      Dim Name As String
     
      Name = ActiveWorkbook.FullName
      Name = Replace(Name, ".xlsm", "")
      Name = Name & " modifié le " & Format(Now(), "mmdd-hhmm") & ".xlsm"
      ActiveWorkbook.SaveAs Name
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Pour éviter de modifier le nom du classeur actif, et pouvoir re-sauvegarder plus tard, il est préférable d'utiliser SaveCopyAs plutôt que SaveAs.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Je plussoie Patrice (Hello), surtout au vu de cette discussion qui est probablement en lien avec ta demande actuelle.

    Si demain tu utilises le classeur "modifié le" et que tu lui appliques ta macro, ça va devenir rigolo...

    Tu aurais intérêt à travailler avec un classeur actif qui est toujours nommé de la même façon, et tu en archives de copies avant et après modifs.

    • Classeur_Actif
    • Sauvegarde AVANT modifs avec SaveCopyAs Classeur_Avant_Modif_hhmm.xlsm
    • Modifs
    • Sauvegarde APRES modifs avec SaveCopyAs Classeur_Modifié_hhmm.xlsm
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre confirmé Avatar de Polygos
    Homme Profil pro
    Ma petite entreprise
    Inscrit en
    Avril 2016
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ma petite entreprise
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2016
    Messages : 190
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Je plussoie Patrice (Hello), surtout au vu de cette discussion qui est probablement en lien avec ta demande actuelle.

    Si demain tu utilises le classeur "modifié le" et que tu lui appliques ta macro, ça va devenir rigolo...

    Tu aurais intérêt à travailler avec un classeur actif qui est toujours nommé de la même façon, et tu en archives de copies avant et après modifs.

    • Classeur_Actif
    • Sauvegarde AVANT modifs avec SaveCopyAs Classeur_Avant_Modif_hhmm.xlsm
    • Modifs
    • Sauvegarde APRES modifs avec SaveCopyAs Classeur_Modifié_hhmm.xlsm
    Merci les gars, c'est ce que j'ai fait; ca fonctionne. Merci à vous !

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

Discussions similaires

  1. [Batch] Récuperer en variable une partie du nom de fichier avec un Batch sous Windows 7 ?
    Par jc-macintosh dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 22/05/2016, 14h03
  2. Comment extraire une partie du nom d'un fichier
    Par samy37 dans le forum Shell et commandes POSIX
    Réponses: 3
    Dernier message: 26/09/2012, 17h40
  3. Réponses: 10
    Dernier message: 17/11/2011, 16h37
  4. Renommage d'une partie de nom de fichiers en masse et aussi à l'intérieur
    Par sclinard dans le forum Shell et commandes POSIX
    Réponses: 2
    Dernier message: 17/09/2010, 15h02

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