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 convertir tableaux en plages sur toutes les feuilles


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : septembre 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Macro pour convertir tableaux en plages sur toutes les feuilles
    Bonjour à tous,

    Comme mentionné dans le titre, je cherche à convertir chaque tableau de chaque feuilles en plages.
    Chaque feuille ne contient qu'un tableau.
    C'est ma première macro et je ne maîtrise pas encore.

    J'ai pensé à une structure comme celle ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Essai()
    Dim i As Integer
    i = 1
        While i < 4
        Worksheets(i).Activate
        Worksheets(i).Select
        Range("A1").CurrentRegion.Select
        Worksheets(i).ListObjects(Range("A1").CurrentRegion).Unlist
        i = i + 1
        Wend
    End Sub
    Mais c'est un échec ahahaha
    Quelqu'un ici pourrait me déboguer ?

    Merci beaucoup!

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    février 2010
    Messages
    6 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : février 2010
    Messages : 6 266
    Points : 11 647
    Points
    11 647
    Par défaut
    Bonjour

    Je doute que ce soit une bonne idée : aujourd'hui (depuis plus de 15 ans déjà) le tableau est une des meilleures solutions Excel pour gérer des listes de données.

    Si tu y tiens

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Tab2Plage()
        For Each WS In ThisWorkbook.Worksheets
            If WS.ListObjects.Count > 0 Then WS.ListObjects(1).Unlist
        Next WS
    End Sub
    Chris

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : septembre 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre réponse. J'ai hâte d'être sur mon pc pour tester.
    (C'est fou comme votre code est épuré, je m'en faisais une montagne dans mon cerveau).
    Concernant la raison, c'est pour une application en entreprise. Les fichiers en mode "partage" ne peuvent pas contenir des tables. On est donc obligé de tout passer en plage avant de rendre le fichier utilisable par les collaborateurs.
    Si vous avez une suggestion, n'hésitez surtout pas. Je viens de commencer mon stage et ça pourrait être un projet sympa de faire évoluer l'organisation.

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    février 2010
    Messages
    6 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : février 2010
    Messages : 6 266
    Points : 11 647
    Points
    11 647
    Par défaut
    Bonjour

    Le partage est une mauvaise pratique. Microsoft ne fait rien évoluer de ce côté et plus cela va plus c'est incompatible avec les nouvelles fonctionnalités.
    Excel n'a pas été conçu pour être multi utilisateurs et ce mode provoque souvent des problèmes...

    Les solutions dépendent de ce qui est fait avec le classeur.

    Voir si on ne peut pas stocker les données dans plusieurs fichiers non partagés et avoir un classeur qui traite et synthétise...

    C'est le contexte opérationnel qui peut déterminer la meilleure solution
    Chris

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

Discussions similaires

  1. [XL-2010] Macro pour utiliser le solveur excel sur une autre feuille de calcul
    Par ulysse132 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 12/06/2017, 11h01
  2. [XL-2007] Supprimer la même plage de cellules, sur toutes les feuilles
    Par markvador49 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/03/2016, 13h55
  3. macro rechercher/remplacer sur toutes les feuilles
    Par gti64 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/03/2015, 11h25
  4. [XL-2003] macro impossible sur toutes les feuilles
    Par alucard_xs dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 04/06/2012, 22h23
  5. [XL-2007] Operations tableaux et boucle sur toutes les feuilles
    Par undercorejay dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2010, 23h16

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