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 :

Création MACRO : dispatcher données / plusieurs feuilles


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Par défaut Création MACRO : dispatcher données / plusieurs feuilles
    Bonjour à tous,

    Je suis en phase d'apprentissage et de découverte de VBA, et ce n'est pas une mince affaire.

    J'ai une idée précise de ce que je veux mais aucune idée de comment le réaliser.
    Je m'explique :

    toute les semaines je reçois des données brutes (plusieurs colonnes) que je classe selon 3 niveaux : urgent, peu urgent, anodin (dans une colonne).

    A côté je possède 3 feuilles qui possèdent un historique pour chacun de ces 3 niveaux (une feuille urgent, etc...)

    Est-il possible de créer une macro qui :
    - coupe et colle mes données brutes dans la bonne feuille (et la bonne colonne) en fonction du critère, et ce à la suite de ce qui existait déjà
    - m'efface mes données brutes initiales

    - vérifie dans les 3 feuilles qu'il n'y ait pas de doublons (en cas d'une donnée brute qui avait déjà été traitée mais remise par erreur)

    J'espère avoir été assez clair, si besoin, je pourrai faire un schéma pour clarifier davantage la chose.

    Je vous remercie par avance pour votre aide, qui me permettra de comprendre les fonctions VBA par la même !!

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut

    le chemin est long, mais le voyage en vaut la chandelle

    Le plus simple pour commencer est de faire les manipulations en utilisant l'enregistreur de macro (macro recorder). Il permet de générer à la volée le code VBA équivalent aux manipulations faites dans Excel.

    Tu appliques donc ta méthode de filtre dans une feuille, copie et collage dans une autre puis suppression (en utilisant evidemment des données tests ).
    Le code généré devrait te permettre de comprendre les principales fonctions utilisées en VBA pour faire ce que tu souhaites
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Par défaut
    Bonsoir,

    Effectivement j ai bien compri comment recuperer en version vba les manipulations faites sur excel..!

    Là où je bloque un peu, c est pour formaliser des opérations telles que
    "pour chaque ligne regarde s il y a une écriture
    Si oui, alors copie moi telle partie de la ligne dans telle feuille, là où rien n est deja ecrit..
    Si plus rien, c est fini.

    Voilà mon blocage

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Pour parcourir toutes les lignes d'une colonne, tu peux regarder la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A65536").End(XlUp).Row
    qui te retourne la premiere ligne en partant du bas non vide

    tu pourras donc utiliser cette valeur pour faire une boucle for par exemple
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Par défaut
    Bonjour et merci pour votre aide

    J'ai bien progressé dans la programmation de ce que je veux, en revanche j'ai un peu de mal à utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Range("A65536").End(XlUp).Row
    Voici un petit bout de mon prog pour illustration : (je suis dans une boucle do qui s'arrête une fois que je n'ai plus de données brutes à traiter (ligne vide)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ' copie des éléments selon test
        If Range("I" & i).Value = "Important" Then
            Range("A" & i & ":H" & i).Select
            Application.CutCopyMode = False
            Selection.Cut       ' dans l'idée je coupe mes informations"
            Sheets("Demandes importantes").Select   'je me place dans la feuille adéquate
            Range(Cells(65536, 1).End(xlUp).Row + 1).Paste  ' et là ça coince car j'aimerais coller ma sélection à la première ligne non vide, mais je ne dois pas bien l'écrire
     
            Sheets("Brut").Select
    Désolé d'avance pour les horreurs écrites

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Pour la fonction Paste, je passe souvent par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Paste destination:=taplagedecellule
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre éclairé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Par défaut
    Je ne donnerai pas de conseil sur ton probleme car je n'ai pas pris la peine de tout lire.
    Mais d’après ce que j'ai vu tu débute sur VB et étant moi débutant je te conseillerai de bien utiliser la commande d'enregistrement de macro pour faire tes actions et de bien les analyser ensuite.

    Ça te permettra de te faire du "vocabulaire" et de moins galérer par la suite. Perso c'est ce que j'ai fait et ça m'a permit de faire des choses pas mal

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Par défaut
    @ redstoff : merci pour tes conseils, effectivement j'utilise beaucoup cette méthode pour les opérations de base. En revanche comme je l'expliquais j'ai plus de mal à formaliser des choses moins concrètes du genre "la recherche de la première ligne vide, puis coller mes infos à cet endroit !

    @ jpcheck : merci pour tes deux fonctions
    Au risque de paraître un peu lourd, pourrais-tu m'expliquer comment les agencer pour avoir une macro qui ne plante pas ?

    (en gros, j'ai une sélection sur une feuille que j'ai coupé, et j'aimerai la coller sur une autre feuille à la première ligne non vide...)

    Un grand merci !

Discussions similaires

  1. une macro travaillant sur plusieurs feuilles, est ce possible?
    Par neoconcept2 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 18/02/2012, 22h39
  2. [XL-2000] MACRO : copie de plusieurs feuilles sous conditions
    Par Killie dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 09/02/2012, 22h52
  3. [XL-2007] creer une macro pour sommer plusieurs feuilles
    Par Joelol dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/11/2010, 10h34
  4. Macro pour regrouper plusieurs feuilles en une seule
    Par OLIV420 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/08/2010, 08h36
  5. [XL-2000] Macro "recherchev" sur plusieurs feuilles
    Par wyzer dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/06/2010, 14h07

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