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 des fichiers dans une boucle


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 55
    Points : 35
    Points
    35
    Par défaut Enregistrer des fichiers dans une boucle
    Bonjour à toutes et tous,
    j'ai réalisé une macro sous visual basic excel pour traiter une centaine de fichiers de data ascii. Le principe c'est que pour chaque fichier brut est créé un nouveau fichier excel pour représenter le fichier brut en question.
    Mon problème survient lorsque je souhaite enregistrer chaque fichier excel dans ma boucle.

    Mes fichiers de data brut sont de la forme
    AAA.001
    AAA.002
    AAA.003
    ...
    AAA.099
    AAA.100

    et j'importe donc chacun de ces fichiers bruts dans un nouveau fichier excel.
    Ma question est en fait, comment puis je enregistrer mes fichiers excel dans ma boucle (du type "For x=1 To 100) en leur attribuant le même nom que le fichier brut (de type AAA.00x).
    Par avance merci pour vos suggestions, bon week end,

    Sébastien.

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 467
    Points : 493
    Points
    493
    Par défaut
    Bonsoir
    il te faut un code de ce genre, non tester bien sûr.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each w In Workbooks
         Nom_fichier = "AAA." & Format(CDbl(Right(w.Name, 3)), "000")
        w.SaveAs Filename = Nom_fichier
    Next w
    Bonne soirée

    Abed_H

  3. #3
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour tlm,

    Si j'ai bien compris, tous tes nouveaux classeurs excel créés à partir de tes fichiers data sont ouvert. Si oui et en considérant que tu n'as pas d'autres fichiers excel ouverts, une solution éventuelle ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub classeurs_save()
    Dim i As Integer, chemin As String
    
    chemin = "D:\Temp\" '<-- à adapter oeuf corse
    
    For i = Workbooks.Count To 1 Step -1
        Workbooks(i).SaveAs Filename:=chemin & "AAA." & Format(i, "000") & ".xls"
        Workbooks(i).Close
    Next i
    End Sub
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 55
    Points : 35
    Points
    35
    Par défaut
    Bonjour,
    merci pour vos suggestions mais pour l'instant ça ne fonctionne pas. Je continue à tenter quand même. Pour la 2e réponse ça marcherait bien mais le problème c'est qu'il y a obligatoirement une autre feuille excel ouverte car ma macro se lance d'une feuille excel...

  5. #5
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par sebastien06 Voir le message
    Bonjour,
    merci pour vos suggestions mais pour l'instant ça ne fonctionne pas. Je continue à tenter quand même. Pour la 2e réponse ça marcherait bien mais le problème c'est qu'il y a obligatoirement une autre feuille excel ouverte car ma macro se lance d'une feuille excel...
    Ce n'est pas un problème, vu que le fichier d'où tu lances la macro est le 1er à être ouvert, il suffit de changer la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = Workbooks.Count To 2 Step -1
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 55
    Points : 35
    Points
    35
    Par défaut
    Effectivement ça marche bien comme çà merci!
    Je vais quand même essayer de trouver une solution où d'autres fichiers excel peuvent être ouverts car en fait, pour expliquer rapidement, j'ai développé cette feuille excel contenant un bouton pour lancer la macro pour que d'autres personnes de mon entreprise puisse l'utiliser. Et je ne pourrai pas demander de ne pas avoir d'autres feuilles excel ouvertes dans windows lors de l'exécution de la macro.
    Je vais continuer à chercher merci pour ton aide en tout cas.
    Sébastien

  7. #7
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Cela n'est toujours pas un problème, au lancement de la macro il suffirait de charger une variable (Public), par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WBouverts = Workbooks.Count + 1
    et dans la boucle de sauvegarde, récupérer cette variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i = Workbooks.Count To WBouverts Step -1
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 55
    Points : 35
    Points
    35
    Par défaut
    Effectivement ça marche.. par contre maintenant il me met le nom du dossier avant le nom du fichier du style "NomDossierAAA.001.. Je pense que cela vient de file name je vais essayer de le supprimer.
    Merci!

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 55
    Points : 35
    Points
    35
    Par défaut
    C'est bon tout est bon merci encore de tes conseils, j'ai simplement supprimé 'chemin' avant.
    Bonne journée et merci,
    Sébastien

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/07/2014, 13h09
  2. Enregistrer des fichier dans une Bd mysql
    Par touzack dans le forum C#
    Réponses: 7
    Dernier message: 28/09/2009, 19h31
  3. Renommer un fichier dans une boucle
    Par Thomas Carrere dans le forum C
    Réponses: 5
    Dernier message: 05/05/2006, 18h20
  4. Ecrire les noms des fichiers dans une colonne
    Par REGIMBAL dans le forum Access
    Réponses: 1
    Dernier message: 20/04/2006, 11h29
  5. Interet de mettre des fichiers dans une base de donnée
    Par Oberown dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 04/07/2005, 11h35

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