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 :

Macro pour automatiser le nettoyage d'un fichier [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 5
    Par défaut Macro pour automatiser le nettoyage d'un fichier
    Bonjour tout le monde,
    Je sollicite votre aide pour établir une macro qui va changer ma vie !

    Voici en détail mon besoin :

    Pour chaque colonne du tableau :
    - Vérifier que chaque cellule de la colonne ne contient pas de texte. S'il y a du texte (peu importe le texte) remplacer la valeur par la moyenne de la colonne en question :Nom : Annotation 2019-10-02 162930.jpg
Affichages : 357
Taille : 6,3 Ko


    Une fois la première colonne vérifiée, passer à la colonne suivante et répéter l'opération pour vérifier toutes les colonnes une par une.

    Spécificités :
    1) J'ai toujours une colonne avec des dates (généralement c'est la première), cette colonne ne doit pas être traitée ou ne doit pas changer.
    2) Il m'arrive d'avoir plusieurs niveaux (ligne) de titre, il faudrait peut-être pouvoir indiquer à la macro à quel N° de ligne commencer ? :

    Nom : Annotation 2019-10-02 162947.jpg
Affichages : 366
Taille : 43,7 Ko


    J'espère avoir été assez explicite sur la problématique, merci encore pour votre aide !

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par kevint13 Voir le message
    - Vérifier que chaque cellule de la colonne
    Boucle For To sur l'ensemble des lignes de la liste.
    https://docs.microsoft.com/fr-fr/off...next-statement

    ne contient pas de texte.
    Branchement If vérifiant que le contenu n'est pas numérique à l'aide d'une fonction IsNumeric.
    https://docs.microsoft.com/fr-fr/off...else-statement
    https://docs.microsoft.com/fr-fr/off...meric-function

    S'il y a du texte (peu importe le texte) remplacer la valeur par la moyenne de la colonne en question.
    Avant la boucle, commence par calculer la moyenne de la colonne en utilisant une fonction Average avec WorksheetFunction et met le résultat dans une variable de type Double.
    https://docs.microsoft.com/fr-fr/off...ksheetfunction
    Ensuite, il te suffira d'assigner cette valeur à la cellule avec la propriété Value.

    Une fois la première colonne vérifiée, passer à la colonne suivante et répéter l'opération pour vérifier toutes les colonnes une par une.
    Mets tout ce qui précède dans une autre boucle For To qui scrute l'ensemble de tes colonnes.

    1) J'ai toujours une colonne avec des dates (généralement c'est la première), cette colonne ne doit pas être traitée ou ne doit pas changer.
    Commence la boucle For To "colonnes" à la valeur 2.

    2) Il m'arrive d'avoir plusieurs niveaux (ligne) de titre, il faudrait peut-être pouvoir indiquer à la macro à quel N° de ligne commencer ? :
    Commence la boucle For To "ligne" à ta première ligne de données.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 5
    Par défaut Merci Menhir
    Merci beaucoup Menhir pour ces informations,
    N'étant pas très familier avec le VBA, as tu un exemple de code en VBA ?

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par kevint13 Voir le message
    N'étant pas très familier avec le VBA, as tu un exemple de code en VBA ?
    D'expérience, quant on voit ce type de formulation sur le forum sans que le demandeur ait fait le moindre essai par lui-même, c'est qu'il ne va pas se contenter d'un "exemple" (des exemple, il y en a déjà dans les liens fournis) mais qu'il s'attend à ce qu'on lui livre un code complet, testé, débugué.

    Comme le but de ce forum n'est pas de fournir une main d'oeuvre gratuite mais d'aider à progresser en développement, je vais attendre que tu présentes ce que tu as commencé à réaliser pour t'indiquer les éventuelles erreurs que tu aurais pu faire.

    Si tu ne connais rien au VBA, je te conseille cette lecture : http://bidou.developpez.com/article/VBA/

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 5
    Par défaut
    Ne connaissant rien au VBA je demande l'aide de ceux qui savent ce qui me semble approprié sur ce type de forum.
    je ne connais ni les principes de bases ni les structures en VBA j'ai juste un problème à résoudre et je recherche quelqu'un qui peut m'aider avec une idée de code que je pourrais tester, adapter et débuger.
    Je ne cherche pas un code parfait mais une piste à explorer,
    merci pour ton aide

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2019
    Messages : 101
    Par défaut
    Citation Envoyé par kevint13 Voir le message
    Ne connaissant rien au VBA […]
    je ne connais ni les principes de bases ni les structures en VBA.

    je recherche quelqu'un qui peut m'aider avec une idée de code que je pourrais tester, adapter et débuger.
    Je ne cherche pas un code parfait mais une piste à explorer,
    Bonjour,
    Ton discours semble légèrement contradictoire. Menhir t'as très justement orienté vers ce que tu appelles des "pistes à explorer" à travers des liens. Si tu ne prends pas la peine de créer un semblant de code (même défectueux) basé sur ces documentations, il y a fort à parier que tu ne prendras pas la peine de l'adapter à ton problème par toi-même, d'autant plus que tu avoues n'avoir que peu de compétence.

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par kevint13 Voir le message
    Ne connaissant rien au VBA je demande l'aide de ceux qui savent ce qui me semble approprié sur ce type de forum.
    Comme je le disais, ce forum a le but pédagogique d'aider ceux qui souhaitent apprendre à développer.
    Il n'a pas pour but de faire le travail à la place de ceux qui n'en ont pas la compétence ni de se substituer aux développeurs professionnel.

    Lorsque je n'ai pas la compétence pour faire ce que je souhaite, soit je cherche des informations pour le faire par moi-même (de telles informations t'ont déjà été données), soit je rémunère quelqu'un pour le faire à ma place.

    Je pourrais tester, adapter et débuger.
    Si tu ne connais rien au VBA, comment comptes-tu débuguer un code ?

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 5
    Par défaut
    Pour information, voici la réponse :

    Sub test_II()
    Dim LG&, CL&, i&, PlG As Range
    LG = Cells(Rows.Count, 1).End(3).Row
    CL = Cells(5, 2).End(xlToRight).Column
    On Error Resume Next
    For i = 2 To CL
    Set PlG = Cells(5, i).Resize(LG - 4)
    PlG.SpecialCells(2, 2).Value = Application.Average(PlG)
    Set PlG = Nothing
    Next
    End Sub

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

Discussions similaires

  1. [XL-2007] fichier suivi activité : macro pour automatiser/ màj fichier/ mise en forme etc..
    Par Romsteack89 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/05/2014, 22h38
  2. Macro pour automatiser liens excel access
    Par dim02 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/11/2009, 15h43
  3. Macro pour sauvegardes multiples d'un même fichier
    Par gigotdagneau dans le forum Conception
    Réponses: 11
    Dernier message: 26/10/2009, 12h26
  4. [XL-2003] macro pour copier une en-tête de fichier dans +sieurs fichiers
    Par Frayer dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 12/08/2009, 21h40
  5. macro pour automatiser tableau excel
    Par kameylia dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/05/2008, 00h03

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