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 :

Exclure une feuille d'un traitement par macro [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Cadre Achats & Logistique
    Inscrit en
    Mars 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Cadre Achats & Logistique

    Informations forums :
    Inscription : Mars 2016
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Exclure une feuille d'un traitement par macro
    bonjour les amis, j'ai besoin de votre aide encore une fois
    je suis entrain de créer un macro qui fait plusieurs choses (générer une feuille, chercher et copier des donnée des autres feuilles puis créer un tableau dans la feuille générer et coller les données copier) mon problème (peut être simple, je sais pas je reste encore débutant en vba) c'est que je sais pas comment exclure la feuille générer au début d’être traiter comme les autres.

    voilà mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub traitement()
    Dim feuille As Worksheet
    Call InsereFeuille
    For Each feuille In ActiveWorkbook.Sheets
    feuille.Activate
    Call TraitementTitre
    Next feuille
    End Sub
    je ne sais pas où et comment ajouter l'exclusion de la feuille supposant nommée "feuilExclu"

    Merci d'avance et désolé pour le dérangement

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,
    essayes, dans ta boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each feuille In ActiveWorkbook.Sheets
      If feuille.Name <> "feuilExclu" Then
        '........
      End If
    Next feuille
    mais je ne comprends pas pourquoi cette lignequi ne devrait servir à rien
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Cadre Achats & Logistique
    Inscrit en
    Mars 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Cadre Achats & Logistique

    Informations forums :
    Inscription : Mars 2016
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci énormément casefayere pour votre reponse.

    quand j'ai utilisé ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub traitement()
    Dim feuille As Worksheet
    Call InsereFeuille
    For Each feuille In ActiveWorkbook.Sheets
      If feuille.Name <> "feuilExclu" Then
      Call TraitementTitre
      End If
    Next feuille
    End Sub
    le traitement touche aussi la feuille "feuilExclu"

    par contre celui la on laissant à ça place, j'ai eu le résultat que je voulais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub traitement()
    Dim feuille As Worksheet
    Call InsereFeuille
    For Each feuille In ActiveWorkbook.Sheets
    feuille.Activate
      If feuille.Name <> "feuilExclu" Then
      Call TraitementTitre
      End If
    Next feuille
    End Sub

    Merciiiiiiii

  4. #4
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    par contre celui la on laissant
    tout dépend du traitement de ta macro suivante "TraitementTitre" que tu ne publies pas

    penses à cliquer sur
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut


    Bonjour !

    L'Activate de la ligne n°5 ne sert à rien pour le test de la ligne suivante ‼
    Il devrait se situer juste avant la ligne n°7 !
    Il a une incidence pour la procédure TraitementTitre mal conçue car fonctionnant sur la feuille active …


    ______________________________________________________________________________________________________
    Je suis Paris, Charlie, Bruxelles, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Cadre Achats & Logistique
    Inscrit en
    Mars 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Cadre Achats & Logistique

    Informations forums :
    Inscription : Mars 2016
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    j'ai appliqué ce que vous avez dit Marc-L, et j'ai eu le même résultat sauf qu'il a pris un peu plus de temps que par rapport a la première façon

    casefayere, la macro TraitementTitre ne fait que cherche la case titre puis copier le contenu de la cellule non vide qui est en face d'elle, et aussi quand elle colle le titre, elle recule d'une colonne pour coller le nom de la feuille contenant ce titre c tt

  7. #7
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Aucun rapport avec le temps d'exécution !
    Si la procédure avait été bien conçue, l'Activate serait inutile et donc la procédure aurait pu être encore plus rapide …

    Chaque Activate ou Select équivaut à écraser les freins au feu vert !
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  8. #8
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour

    Citation Envoyé par DebuVBA Voir le message
    j'ai appliqué ce que vous avez dit Marc-L, et j'ai eu le même résultat sauf qu'il a pris un peu plus de temps que par rapport a la première façon

    casefayere, la macro TraitementTitre ne fait que cherche la case titre puis copier le contenu de la cellule non vide qui est en face d'elle, et aussi quand elle colle le titre, elle recule d'une colonne pour coller le nom de la feuille contenant ce titre c tt
    Qu'attends-tu pour passer chaque feuille concernée en paramètre de ta sub TraitementTitre ?
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Cadre Achats & Logistique
    Inscrit en
    Mars 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Cadre Achats & Logistique

    Informations forums :
    Inscription : Mars 2016
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    ok Marc-L, je vais voir si je peux faire en sorte d’éliminé cette instruction (activate).

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Cadre Achats & Logistique
    Inscrit en
    Mars 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Cadre Achats & Logistique

    Informations forums :
    Inscription : Mars 2016
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par unparia Voir le message
    Bonjour



    Qu'attends-tu pour passer chaque feuille concernée en paramètre de ta sub TraitementTitre ?
    Le but c'est d'extraire des titres des tableaux (tableau/feuille) et les réunir dans un tableau dans la feuille générer "feuilExclu".

    et la reponse que M. casefayere m'a donné marche à merveille

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

Discussions similaires

  1. [XL-2007] Protection des feuilles graphiques avec modification par macro
    Par Cesaror dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/07/2012, 14h34
  2. [XL-2007] Coma copier des données d'une ou 2 feuilles vers 1 nouvel par macro
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/03/2012, 02h41
  3. Réponses: 6
    Dernier message: 24/09/2011, 00h40
  4. instructions pour accéder à une feuille d'un classeur par macro
    Par rogerone dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/02/2010, 12h30
  5. Protéger les feuilles de la modification par macro
    Par blobnet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/01/2009, 15h57

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