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 :

Eclatement d'un fichier sur 3 autres


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 441
    Points : 163
    Points
    163
    Par défaut Eclatement d'un fichier sur 3 autres
    Bonjour à tous

    j'ai un fichier dans lequel sont saisies plusieurs données (demandeur, surfaces, adresses, couts, ...).
    Ces données doivent être éclatées dans 3 fichiers à structure identique pour y subir presque le même traitement.
    En fait c'est l'inverse d'un tableau récapitulatif de 3 tableaux.

    Mon problème est comment naviguer entre ces différents fichiers à savoir :
    copier une partie dans le 1er, une autre dans le second puis le reste dans le troisième, ...

    le souci c'est les activeworkbook, activesheet, .... pour basculer de l'un aux autres sans avoir à les fermer.
    ils sont tous dans le même répertoire.

    Pour le code de traitement des données pas de problèmes, c'est comment basculer entre eux.
    si vous avez un conseil
    cordialement

  2. #2
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Points : 658
    Points
    658
    Billets dans le blog
    17
    Par défaut
    Bonjour je vais me faire un plaisir de te repondre et de t'expliquer , de la meme facon qu'un ancien du forum l'a fait il y a un mois.

    Alors deja on evite tous les activebook les select etc, car on s'embrouille.

    1) raison , c'est la galere pour le debuggage , avec l'obkligation des fois de devoir verifier le nom etc.. et puis pour debugguer , si tu es bloqué sur une partie du code des fois c'est la merde si tu es pas sur la bonne feuille sur excel enfin pour resumer c'est le bordel . Don tu vas utiliser des with et definir tes feuilles, a chaque feuille que tu va declarer , corespondra une seule et meme feuille.
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim xlsheet as worksheet
    dim xlsheet2 as worksheet
    set xlsheet  = thisworkbook.worksheets("")
    set xlsheet = thisworkbook.worksheets('')
    avec ca c'est tres claire ensuite tu vas jongler avec ces feuilles avec des with
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    with xlsheet
    .............
    end with
    with xlsheet2
    .......end with
    voila j'espere t'avoir aidé, si tu as besoin d'un conseil précis je reste sur le forum
    Allez le RC LEns

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 441
    Points : 163
    Points
    163
    Par défaut
    Merci Tamtam

    je vais progresser par étapes

    1 * copier les données utiles dans chaque fichiers
    2 * traiter les données fichier par fichier

    je reviendrai en cas de besoin

  4. #4
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Points : 658
    Points
    658
    Billets dans le blog
    17
    Par défaut
    c'est exactement ca tu selectionne tes ranges avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.union(range1,range2.....)
    ou tu les fait passer dans un tableau ou sinon tu les copy cole ou bien eventuellement si c'est fixe,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlsheet.range1 = xlsheet2.range2 etc
    Bonne chance en tt cas mais je pense que tu as toutes les cartes en main et n'oublie pas de poster ta propre reponse c'est tjs bon pour les autres et puis pour toi
    Allez le RC LEns

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 441
    Points : 163
    Points
    163
    Par défaut
    merci TamTam

    je reviens au cas où
    et posterait mon code si abouti

  6. #6
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    la partie essentielle est de savoir :
    - quel est le dénominateur qui permet de séparer tes données pour avoir les trois parties voulues : tu le sais
    - comment sont rangés tes fichiers : tu le sais

    ça te donne donc la méthode à reproduire
    il ne reste plus qu'à utiliser l'enregistreur de macro, ouvrir le premier fichier, récupérer le premier paquet, le coller dans le fichier, l'enregistrer et le fermer

    et ensuite, une simple boucle pour réaliser le traitement aux trois fichiers

    prépare ton code et reviens si tu n'arrives pas à retoucher le code pour supprimer les Select et Active

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 441
    Points : 163
    Points
    163
    Par défaut
    Bonjour TamTam et le vrai Joe

    j'ai bien pigé le truc, je n'ai plus de select

    les manips, calculs, échanges entre le fichier principal et les 3 autres sont les mêmes, seules les données concernées changent.
    je pourrais très bien en place des boucles pour les échanges, .. j'avance bien
    merci à vous

    je viens de me rendre compte d'un pb : pour supprimer les doublons, j'utilise des macros qui fonctionnent bien avec le dictionnary. Le problème est quand la liste ne contient qu'un valeur (ce que je ne sais pas au départ).
    Donc je dois d'abord faire un test sur le nombre d'éléments à "dédoublonner "
    à suivre si pb

  8. #8
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    dans un premier temps, tu n'expliques pas quelle est la donnée ou le dénominateur qui te permet de récupérer tes trois paquets

    dans un second temps, tu n'as pas parlé de nettoyer des doublons, jusqu'à ton dernier message.

    dans un troisième temps, pas de retour de ta part sur l'utilisation de l'enregistreur de macro (as-tu essayé) et de l'éventuel code associé

    Aussi, il est difficile de savoir ce que tu souhaites réellement, nous n'avons pas tes fichiers sous les yeux

    une bonne explication est une explication qui est surtout complète, tu rajoutes des briques au fur et à mesure là

  9. #9
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Points : 658
    Points
    658
    Billets dans le blog
    17
    Par défaut
    J'en suis content , montre nous l'avancé, par contre comme Joe , je ne comprend pas l'histoire des doublons , tu n'en n'avais pas parlé jusque la , je pense que ton projet est plus complexe que tu n'ous l'avais dis, gerer les doublons , il me semble que la question avait été posée par quelqu'un sur le site et que j'avais proposé un dictionnaire , mais d'autres idées plus simple et plus logique avait été proposé sur excel , tu peux y jeter un coup d'oeuil , a moins que ce soit toi qui ai posé la question lol.

    Et suis les conseils de joe, donne plus d'infos et utilise l'enregistreur de macro
    Allez le RC LEns

  10. #10
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    pourquoi utiliser un dictionnaire pour supprimer des doublons, quand Excel dispose d'un outil de suppression ?

    voir ici (message #15), pleins d'outils qui vont répondre à ta demande : http://www.developpez.net/forums/d15...ge-mise-forme/

    notamment

    - Filtre avancé pour exporter les données avec une grande liberté
    - RemoveDuplicates pour supprimer les doublons


    le contexte était un peu différent : créer 5 synthèses liées à 5 feuilles indépendantes

    mais la logique est la même :

    - prendre un paquet de données : le critère est une date
    - les coller ailleurs
    - travailler les données : ajouter une colonne qui indique le nombre de doublons sur chaque ligne + supprimer les doublons

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    J'ai vu une suggestion qui consiste à utiliser un dictionnaire.

    Je suis d'accord avec cette vision. Mais avant je te suggèrerais d'envisager un traitement qui balayait ton tableau et qui place ça dans un même fichier.

    Tu me diras c'est bête, mais en y réfléchissant pas t'en que ça, car ensuite nous utiliserons un dictionnaire et nous placeront la code dans un module de classe qui lui ne traitera qu'un fichier.

    Dans ton dictionnaire il y aura 3 items et chaque item traitera un fichier.

    Je te guiderai pour le passage en dictionnaire et module de classe!

    Cette méthode peut paraître compliqué,mais en réalité elle simplifie le traitement car il s'intéresse à un fichier et le dictionnaire Aiguille sur tel ou tel fichier en fonction des critères!

Discussions similaires

  1. Uploader un fichier sur un autre serveur
    Par sktru dans le forum ASP
    Réponses: 8
    Dernier message: 26/02/2008, 11h34
  2. existence d'un fichier sur d'autres postes
    Par zdravo dans le forum VBScript
    Réponses: 5
    Dernier message: 07/12/2007, 15h08
  3. [FTP] Lister les fichiers sur un autre serveur
    Par lenoil dans le forum Langage
    Réponses: 3
    Dernier message: 04/04/2007, 11h07
  4. Récuperer les fichiers sur un autre Ordinateur
    Par guandal dans le forum Administration
    Réponses: 5
    Dernier message: 16/06/2006, 11h13
  5. Réponses: 11
    Dernier message: 13/10/2005, 17h16

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