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

Access Discussion :

Incrémentation de numéro lors d'une sauvegarde de fichier


Sujet :

Access

  1. #1
    Membre du Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2019
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2019
    Messages : 194
    Points : 40
    Points
    40
    Par défaut Incrémentation de numéro lors d'une sauvegarde de fichier
    Bonjour,

    Je souhaite incrémenter des numéros lors de l'exportation de mes fichiers Excel vers le dossier cible.
    Exemple : Monclasseur, monclasseur1, monclasseur2

    Après plusieurs bidouillage dans mon code j'ai réussi à faire fonctionner la bête mais je reste pas tranquille d'esprit ca je me dis qu'il y à forcement un truc que j'ai mal fait.

    je me suis aussi évidement inspiré des différents sujet sur ce forum, mais je voulais l'avis de quelqu'un de plus compétant,

    A partir de certaines variables déjà prédéfinie (nom, prénom, & date par exemple) je voulais ajouter une numérotation pour qu'il n'y ai pas d'écrasement ou d'erreur à l'exécution du code.

    Voici mon code (partie servant à l'incrémentions uniquement) avant modification (codé par un ancien bénévole) :

    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
    sPrenomEmploye = rs!prenomEmploye
     
                k = 97
     
                sCheminfichier = sDossier & "\" & sPrenomEmploye & "_" & Format(Date, "ddmmyyyy")
     
                Do While IsFile(sCheminfichier & Chr(k) & ".csv")
                    k = k + 1
                Loop
     
                sCheminfichier = sCheminfichier & Chr(k) & ".csv"
     
                wb2.SaveAs Filename:=sCheminfichier, FileFormat:=6
     
                wb2.Close SaveChanges:=True
     
                i2 = 2: cpt = 0
    A l'heure actuelle, ce code génère une lettre de l'alphabet pour différencier deux même fichier,
    Exemple : monclasseurA, monclasseurB

    Cela étant dit j'ai certaine incompréhension dans ce code, notamment la variable "K" qui = 97
    Que veut dire le 97 ? Ainsi que le Chr(k)

    Je souhaite supprimer les lettres de l'alphabet car je me rend compte que je suis limité à 26 fichiers généré en même temps, et y mettre à la place des numéros : Monclasseur1, monclasseur2...

    Voici maintenant ma modification :

    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
                sPrenomEmploye = rs!prenomEmploye
     
                 K = 1
     
                sCheminfichier = sDossier & "\" & sPrenomEmploye & "_" & Format(Date, "dd.mm.yyyy") & "_"
     
                Do While IsFile(sCheminfichier & K & ".csv")
                    K = K + 1
     
                Loop
     
                sCheminfichier = sCheminfichier & K & ".csv"
     
                wb2.SaveAs Filename:=sCheminfichier, FileFormat:=6
     
                wb2.Close SaveChanges:=True
     
                i2 = 2: cpt = 0

    Dans les autres sujets je vois des choses plus complexe, donc ca m'etonne que ma méthode fonctionne aussi simplement, d'où ma paranoïa
    https://www.developpez.net/forums/d1...er-sauvegarde/

    Pour vous ma modification est bonne ou cela n'est pas pro du tout ? Quel autre méthode serait mieux adapté ?

    Cordialement

  2. #2
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 869
    Points : 3 448
    Points
    3 448
    Par défaut
    Bonjour Marionette,

    Explications:
    La fonction Chr() ici
    Votre code (annotation) :
    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
    sPrenomEmploye = rs!prenomEmploye  'récupère le prénom de l'employé
     
                k = 97  '= à la lettre a
     
                sCheminfichier = sDossier & "\" & sPrenomEmploye & "_" & Format(Date, "ddmmyyyy")  'Emplacement du répertoire des fichiers csv et nom complet du fichier sans la dernière partie qui est la lettre a + extension du fichier
     
                Do While IsFile(sCheminfichier & Chr(k) & ".csv")  'Routine pour vérifier l'existence du fichier, on débute avec la lettre a (Chr(97) ou Chr(k)) et on ajoute l'extension du fichier (.csv)
                    k = k + 1 '  On incrémente de 1
                Loop  ' On revient vérifier si b existe (Chr(98))
     
                sCheminfichier = sCheminfichier & Chr(k) & ".csv"  ' On inscrit la lettre suivant la dernière lettre trouvée
     
                wb2.SaveAs Filename:=sCheminfichier, FileFormat:=6  ' On sauvegarde le document
     
                wb2.Close SaveChanges:=True  ' Idem
     
                i2 = 2: cpt = 0
    Pour la partie du code qu'on voit, je ne vois pas de problème. Il y a probablement une fonction "IsFile" ailleurs dans votre code pour tester l'existence d'un fichier.

    Votre deuxième code remplace les lettres par des nombres en commençant la numérotation à 1. Lui aussi est correct.

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  3. #3
    Membre du Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2019
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2019
    Messages : 194
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par Robert1957 Voir le message
    Bonjour Marionette,

    Explications:
    La fonction Chr() ici
    Votre code (annotation) :
    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
    sPrenomEmploye = rs!prenomEmploye  'récupère le prénom de l'employé
     
                k = 97  '= à la lettre a
     
                sCheminfichier = sDossier & "\" & sPrenomEmploye & "_" & Format(Date, "ddmmyyyy")  'Emplacement du répertoire des fichiers csv et nom complet du fichier sans la dernière partie qui est la lettre a + extension du fichier
     
                Do While IsFile(sCheminfichier & Chr(k) & ".csv")  'Routine pour vérifier l'existence du fichier, on débute avec la lettre a (Chr(97) ou Chr(k)) et on ajoute l'extension du fichier (.csv)
                    k = k + 1 '  On incrémente de 1
                Loop  ' On revient vérifier si b existe (Chr(98))
     
                sCheminfichier = sCheminfichier & Chr(k) & ".csv"  ' On inscrit la lettre suivant la dernière lettre trouvée
     
                wb2.SaveAs Filename:=sCheminfichier, FileFormat:=6  ' On sauvegarde le document
     
                wb2.Close SaveChanges:=True  ' Idem
     
                i2 = 2: cpt = 0
    Pour la partie du code qu'on voit, je ne vois pas de problème. Il y a probablement une fonction "IsFile" ailleurs dans votre code pour tester l'existence d'un fichier.

    Votre deuxième code remplace les lettres par des nombres en commençant la numérotation à 1. Lui aussi est correct.

    Bonne journée
    Salut Robert,

    Merci pour t'es commentaires, en effet j'avais assez mal compris certaines chose, donc par déduction j'aurais pu conserver le meme code mais en remplaçant le 97 par 49 trouvé sur le lien que tu as noté pour voir remplacer la lettre "a" au profit du "1"

  4. #4
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    Si c'est pour stocker dans l'ordre de l'espace temps et pour éviter d'écraser par erreur un fichier existant autant faire simple en L5
    Sauf pour le brainstorming.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sCheminfichier = sDossier & "\" & sPrenomEmploye & "_" & Format(Date, "yyyymmdd") & "_" & Format(Date, "hhnnss")
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  5. #5
    Membre du Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2019
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2019
    Messages : 194
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par hyperion13 Voir le message
    Salut
    Si c'est pour stocker dans l'ordre de l'espace temps et pour éviter d'écraser par erreur un fichier existant autant faire simple en L5
    Sauf pour le brainstorming.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sCheminfichier = sDossier & "\" & sPrenomEmploye & "_" & Format(Date, "yyyymmdd") & "_" & Format(Date, "hhnnss")
    Salut Hyperion,

    En effet j'avais essayé cette méthode en ajoutant les minutes pour différencier au max les fichiers, mais ca coincé aussi en qu'a de grosse exportation car j'avais encore ma lettre "97"je n'était pas allez jusqu'au secondes qui la effectivement aurais débloqué la situation.

  6. #6
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 869
    Points : 3 448
    Points
    3 448
    Par défaut
    Bonjour Marionette, hyperion13,

    j'aurais pu conserver le meme code mais en remplaçant le 97 par 49 trouvé sur le lien que tu as noté pour voir remplacer la lettre "a" au profit du "1"
    Non pas possible l'incrémentation de la variable en partant de 49 donc Chr(k) = Chr(49) aurait inscrit des chiffres jusqu'au code Chr(58) qui aurait retourné ":" l'idée si vous désirez numéroter le fichier est bien ce que vous avez fait dans votre deuxième code. Cependant la solution d'hyperion13 est tout à fait correcte, ne nécessite pas de boucle et va vous permettre de différencier vos fichiers. Question de goût à l'affichage dans votre explorateur de fichier...

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

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

Discussions similaires

  1. Espace requis lors d'une sauvegarde complète MOSS
    Par gracouille dans le forum SharePoint
    Réponses: 2
    Dernier message: 04/07/2008, 10h20
  2. Fermeture du Userform lors d'une sauvegarde
    Par wabo67 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/12/2007, 18h12
  3. Réponses: 6
    Dernier message: 07/08/2006, 16h16
  4. Petit probleme avec les Border lors d'une sauvegarde
    Par Mike888 dans le forum Interfaces Graphiques en Java
    Réponses: 7
    Dernier message: 06/06/2006, 09h33
  5. Réponses: 7
    Dernier message: 27/01/2006, 15h42

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