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 :

Incrémentation du nom de fichier par macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 4
    Par défaut Incrémentation du nom de fichier par macro
    Bonjour à toutes et à tous,

    J'ai des fichiers excel à modifier (1 fichier = 1 onglet) et il y en a pas mal (presque 800).
    J'ai une macro qui ouvre un par un tous les fichiers (et qui les referme au fur et à mesure), qui cherche dans la zone (A1:Z50) s'il y a une cellule avec la référence à modifier et qui remplace par la nouvelle référence. J'utilise la fonction find et cela marche très bien.

    J'utilise une boucle pour vérifier s'il peut y avoir plusieurs cellule avec la référence à modifier => OK

    Je profite de cette boucle pour créer un nouveau fichier et incrémenter son indice :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ' récupération du nom du fichier
        nom_fichier = ActiveWorkbook.Name
    ' on retire .xls à la fin
        nom_fichier_avant = Left(nom_fichier, Len(nom_fichier) - 4)
    'récupération de l'indice
        indice = InStr(8, nom_fichier_avant, "-")
        gauche = Left(nom_fichier_avant, indice)
        droite = Right(nom_fichier_avant, Len(nom_fichier_avant) - indice) + 1
        nom_fichier_apres = gauche & droite
    Les noms des fichiers sont toujours composés de la même manière : abcdef-1-10 => chaine de caractère, puis premier "-", puis chiffre (1,2 ou 3), puis deuxième "-" et le dernier nombre à incrémenter avec 1 ou 2 chiffre.

    Mon problème réside dans la chaine de caractère, des fois c'est 4 caractères, des fois c'est 10. Je veux juste incrémenter le nombre après le 2ieme tiret.
    Je me demande si je suis pas parti un peu dans une usine à gaz.

    J'ai cherché une manière pour trouver l'emplacement directement du deuxième tiret indépendamment du noombre de caractère mais je sèche.

    Dans mon exemple j'ai mis 8 pour la fonction instr parce que c'est ce qui fonctionne avec le test que j'ai fais mais je sais ce que cela ne fonctionnera pas si j'ai "abc-1-3"

    Merci d'avance pour votre aide

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Regarde l'aide vba sur InstrRev
    C'est quasi identique à Instr sauf qu'il donne le première caractère trouvé en partant cette fois de la fin du mot

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Adapte ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim NomFichier As String, Txt As String, Tabl
    NomFichier = "toto-aaa-10.xls"
    Txt = Left(NomFichier, Len(NomFichier) - 4)
    Tabl = Split(Txt, "-")
    Tabl(UBound(Split(Txt, "-"))) = CInt(Tabl(UBound(Tabl))) + 1
    NomFichier = Join(Tabl, "-") & ".xls"

Discussions similaires

  1. "Nom du fichier" par défaut pour OpenFileDialog
    Par Axiome dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/11/2008, 14h10
  2. un nom de Fichier par défaut dans TsaveDialog
    Par toutou2000 dans le forum Débuter
    Réponses: 4
    Dernier message: 10/11/2008, 16h36
  3. Modification nom de fichier dans macro
    Par gueyou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/07/2008, 15h48
  4. Fermer sans sauvegarde un fichier par macro
    Par blobnet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/05/2008, 16h59
  5. [JFileChooser] Nom de fichier par défaut
    Par alex'l dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 29/08/2005, 13h57

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