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 :

Enregistrer un même fichier avec l'année et un Nº d'indice : File-2017-N°1, File-2017-N°2 ,.., File-2018-N°1


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Par défaut Enregistrer un même fichier avec l'année et un Nº d'indice : File-2017-N°1, File-2017-N°2 ,.., File-2018-N°1
    Bonjour
    je génère régulièrement un fichier qui porte toujours le même nom (Préparation de travail N°:cc/2017/N°1.xls)
    Pour que ne pas écraser le fichier généré précédement, je dois indicer le nom du fichier crée.
    Le nom de ce fichier est donc complété avec un symbole N°x où x est un nombre qui s'incrémente de manière automatique avec aussi l'année 2017 , 2018. En un recherche sur internet j'ai trouvé cet article:
    http://ericrenaud.fr/droitefichiers.htm#Top
    mais Problème rencontréé est le suivant :
    format est n'est pas juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ActiveWorkbook.SaveAs Filename:= _Chemin  &  "\"  &  NameSansExtension  &  "-v"  &  NoIndice  &  ".xls" , _
    Ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    Public  NameSansExtension  As String 
     
    Public  ThisName  As String 
     
    Public  Chemin  As String 
     
    Public  NoIndice  As Integer
    Je comprends pas cette déclaration.

    Quelqu'un peut m'aider stp , merci

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, en t'inspirant de cette fonction et en l'adaptant à ton contexte
    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
    Private Function RenommerFichier(sDossier As String, sNomfichier As String) As String
    Dim sNouveauNom As String
    Dim sPre As String, sExt As String
    Dim i As Long
    Dim FSO As Object
     
       Set FSO = CreateObject("Scripting.FileSystemObject" )
        If FSO.FileExists(sDossier & "\" & sNomfichier) Then
            sNouveauNom = sNomfichier
            sPre = FSO.GetBaseName(sNomfichier)
            sExt = FSO.GetExtensionName(sNomfichier)
     
            i = 0
            While FSO.FileExists(sDossier & "\" & sNouveauNom)
                i = i + 1
                sNouveauNom = sPre & Chr(40) & Format(i, "000" ) & Chr(41) & Chr(46) & sExt
            Wend
            sNomfichier = sNouveauNom
        End If
        Set FSO = Nothing
     
       RenommerFichier = sDossier & "\" & sNomfichier
    End Function
    Un exemple, qui te permettra de voir l'usage de cette fonction.
    Images attachées Images attachées  

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Par défaut
    Vous l'enregistrer sous format PDF pour l'imprimer après ?? j'arrive pas a adapté votre code avec le miens

  4. #4
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Gente Dame, pdf ou n'importe quel autre format enfin bref, en reprenant le code fourni par ton lien pour du xls. A toi de l'adapter à ton contexte.
    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
    Option Explicit
     
    Sub Execution()
    Dim chemin As String
    Dim MyDate As String
    Dim sNomfichier As String
     
        MyDate = Format(Now(), "dd-mm-yy")
        chemin = ActiveWorkbook.Path
     
        Workbooks.Add
        sNomfichier = RenommerFichier(chemin, "Synthèse carnet" & "-" & MyDate & ".xls")
     
        Range("A1").Select
        ActiveCell.FormulaR1C1 = "Je saisis mes données."
        ActiveWorkbook.SaveAs Filename:=sNomfichier, FileFormat:=xlNormal
        ActiveWorkbook.Close savechanges:=False
    End Sub
    Images attachées Images attachées  

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Par défaut
    Ca fonctionne bien , merci. J'ai pensée a ajouter aussi un bouton pour mettre sous format pdf un peu comme vous avez fais dans votre article.

  6. #6
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 157
    Par défaut
    en fait lorsque j'ai regardé mon fichier enregistrer , il est vide , j'ai qu'une feuille, et j'essayer de l'enregistrer sous format xlsb pour récupérer les macros avec mais i s'ouvre pas après
    Nom : prepartion.JPG
Affichages : 574
Taille : 17,9 Ko
    Nom : erreu.JPG
Affichages : 635
Taille : 44,5 Ko

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 95
    Par défaut
    Citation Envoyé par kiki29 Voir le message
    Salut, en t'inspirant de cette fonction et en l'adaptant à ton contexte
    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
    Private Function RenommerFichier(sDossier As String, sNomfichier As String) As String
    Dim sNouveauNom As String
    Dim sPre As String, sExt As String
    Dim i As Long
    Dim FSO As Object
     
       Set FSO = CreateObject("Scripting.FileSystemObject" )
        If FSO.FileExists(sDossier & "\" & sNomfichier) Then
            sNouveauNom = sNomfichier
            sPre = FSO.GetBaseName(sNomfichier)
            sExt = FSO.GetExtensionName(sNomfichier)
     
            i = 0
            While FSO.FileExists(sDossier & "\" & sNouveauNom)
                i = i + 1
                sNouveauNom = sPre & Chr(40) & Format(i, "000" ) & Chr(41) & Chr(46) & sExt
            Wend
            sNomfichier = sNouveauNom
        End If
        Set FSO = Nothing
     
       RenommerFichier = sDossier & "\" & sNomfichier
    End Function
    Un exemple, qui te permettra de voir l'usage de cette fonction.
    Salut! Je viens de tester à mon problème. Le nome de dossier ne s'incrémente pas...

Discussions similaires

  1. [Débutant] Réception et enregistrement d'un fichier avec C# et .ASP
    Par Invité dans le forum ASP.NET
    Réponses: 4
    Dernier message: 22/06/2017, 12h32
  2. Enregistrement automatique de fichiers avec Macros
    Par ExcelLiod dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/12/2015, 19h45
  3. Réponses: 15
    Dernier message: 20/06/2008, 14h36
  4. Enregistrer sur un fichier avec Actionscript
    Par sparil dans le forum Dynamique
    Réponses: 3
    Dernier message: 22/06/2007, 10h00
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

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