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 :

[VBA-E] modifier contenu d'un fichier.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 289
    Par défaut [VBA-E] modifier contenu d'un fichier.
    Bonjour à tous,

    cela faisait un petit moment que je n'étais pas venu. ( je ne faisais plus de programation.)

    Bon voilà j'explique mon problème.

    J'ai une 100ène de fichier excel sous le répertoire C:\référentiel avec des noms tous différents.
    Tous ces fichiers excel ont la même structure : 1 seul onglet appelé masque.

    Maintenant que notre système qualité évolue, j'ai créé un nouveau fichier Excel intitulé Exemplaire avec 2 onglets (1 "historique" , 1 "fiche").

    Je souhaiterai : ouvrir 1 à 1 mes fichiers excel du répertoire C:\référentiel et copier le contenu de l'onglet masque dans l'onglet "fiche" de mon fichier Exemplaire puis l'enregistrer sous le même nom que le fichier initial dans le répertoire C:\nouveau.

    Je ne sais pas comment m'y prendre, pouvez vous m'aider ???
    - soit par des exemples
    - soit par des infos sur comment procéder

    Merci encore de votre aide !!! (j'ai confiance en vous)

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    salut
    on peut faire quelque chose, mais ça dépend du point ou tu en es.
    1 tes onglets fiche et historique sont vides?
    dans ce cas, je te conseille plutot d'ouvrir tes fichiers, ajouter une feuille
    puis baptiser histo et rebaptiser la feuille masque en fiche. il te suffit ensuite d'enregistrer le fichier a l'identique. éventuellement ensuite si le veux, tu déplace tes fichiers vers le nouveau répertoire, pas besoin de faire un code pour une opération que tu ne feras qu'une fois
    2 la feuille fiche, est la même que la feuille masque mais histo a un format particulier. ( a mon sens, cas le plus probable)
    tu rebaptise masque en fiche, tu copie la feuille histo a partir du fichier source, là aussi tu peux enregistrer normalement les fichiers
    3 plus délicat, il y a un traitement des données de masque pour les adapter a fiche, éventuellement vers histo également, mais ça m'étonnerai)
    là tu a tout interet a enregistrer sous, parce il y a risque de perte en cas de fausse manip.
    c'est quoi ton cas?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 289
    Par défaut
    Désolé mais mon cas correspond plus au n°3.
    J'explique :
    Je dispose de plusieurs fichiers excel avec 1 seul onglet ("masque")mise en page particulière.
    Cependant, mon entreprise vient d'etre certifié ISO9000 (Qualité) et donc mes fiches doivent avoir un masque particulier.
    J'ai donc créé un fichier intitullé nlle fiche.xls composé de 2 onglets (1 Historique et autre Fiche).
    Le mode opératoire que je souhaite utilisé est le suivant :
    1) j'ouvre ma feuille nlle fiche.xls
    2)j'active les macros
    3) je lance mon programme
    3-1) il ouvre ma première fiche excel appelé 1.xls situé sous c:\référentiel
    3-2) il copie l'ensemble des données de l'onglet "masque" de 1.xls dans la l'onglet "Fiche" de nlle fiche.xls
    3-3) il enregistre et renomme nlle fiche.xls dans c:\Nlle fiche\ 1.xls
    3-4) il passe ensuite au fichier excel suivant du répertoire référentiel intitulé "contrôle A-B.xls"
    3-5) il refait les étapes 3-1 -> 3-4 pour tous les fichiers excel de c:\référentiel

    Au secours, je n'y arrive pas !!!!

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par mulanzia2003
    Au secours, je n'y arrive pas !!!!
    Et qu'as-tu déjà fait?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    bon, cela n'a pas l'air trop dificile mais cette partie là
    3-2) il copie l'ensemble des données de l'onglet "masque" de 1.xls dans la l'onglet "Fiche" de nlle fiche.xls
    est très personalisée. pas moyen de faire quelque chose sans voir les deux fichiers, mais cela ne devrais pas poser de problemes particuliers.
    donc il faudrait que tu mette un exemplaire des fichiers.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 289
    Par défaut
    bonjour, voici un petit bout du code comment je souhaiterai fonctionner.
    Ce code est lancé à partir d'un bouton dans un fichier intitulé :
    liste des masque.xls.
    Il comprend 5 onglets :
    Onglet n°1 récapitulatif (uniquement des calculs) -> c'est ici que j'ai mis mon bouton
    Onglet n°2 : liste des fiche de unité FUS100
    Onglet n°3 : liste des fiche de unité FUS200
    Onglet n°4 : liste des fiche de unité FUS300
    Onglet n°5 : liste des fiche de unité FUS400

    Les données dans les onglets 2 -> 4 sont identiques dans la forme. La colonne Y regroupe l'ensemble des noms de fichiers dans lesquels je souhaite modifier le masque.

    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
     
    For i = 3 To 302
        NomFichier = Worksheets("FUS100").Cells(i, 25).Value
        ChDir "O:\PLANS_MAINTENANCE\Plan de maintenance"
        Workbooks.Open Filename:= _
            "O:\PLANS_MAINTENANCE\Plan de maintenance\masque fiche de maintenance.xls"
        ChDir "J:\Fus_gene\Préventif\Référentiel\U100\"
        Workbooks.Open Filename:= _
            "J:\Fus_gene\Préventif\Référentiel\U100\" & NomFichier & ".xls"
        Sheets(1).Activate
        Columns("A:H").Select      '"ici cela Bloque je sais pas pourquoi ?"'
        Selection.Copy
        Windows("masque fiche de maintenance.xls").Activate
        Range("A1").Select
        ActiveSheet.Paste
    J'ai besoin d'aide !!!!

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Déjà, simplifie ton code, on y verra plus clair
    Workbooks.Open Filename:= _
    "J:\Fus_gene\Préventif\Référentiel\U100\" & NomFichier & ".xls"
    Sheets(1).Activate
    Worksheets(1).Columns("A:H").Select
    Selection.Copy
    Windows("masque fiche de maintenance.xls").Activate
    Worksheets(2).Range("A1").Select
    ActiveSheet.Paste
    peut s'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Workbooks.Open Filename:= _
            "J:\Fus_gene\Préventif\Référentiel\U100\" & NomFichier & ".xls"
        DoEvents 'pour laisser le tps à ton fichier de s'ouvrir
        Worksheets(1).Columns("A:H").Copy _
        destination:=Worksheets("masque fiche de maintenance.xls").Range("A1")
        DoEvents ' laisse le temps à la copie de se faire
    Tu dis si t'es content, sinon... tu dis aussi

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 289
    Par défaut
    ok je te remercie, je teste et je te dis
    merci quand même.

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

Discussions similaires

  1. Modifier Contenu d'un fichier XML Javascript
    Par missd12 dans le forum XML/XSL et SOAP
    Réponses: 9
    Dernier message: 15/07/2009, 13h31
  2. Formule VBA pour modifier contenu celules
    Par Phoceens dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/03/2009, 18h37
  3. VBA Récupérer le contenu d'un fichier texte dans un champs
    Par sperchey dans le forum VBA Access
    Réponses: 7
    Dernier message: 17/06/2008, 14h05
  4. [VBA-E] Modifier le contenu du résumé d'un fichier
    Par le_sonic dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/05/2006, 17h50
  5. [VBA-E] Modifier le contenu d'un range sans boucle
    Par MatMeuh dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/04/2006, 11h19

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