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 :

Sélection des feuilles visibles seulement [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 14
    Par défaut Sélection des feuilles visibles seulement
    Bonjour à tous,

    L'objectif de ma macro est de pouvoir copier chaque feuille visible de mon tableur vers des feuilles individuelles, pour les sauvegarder ensuite.
    J'ai trouvé un code (qui n'est donc pas de moi) qui fonctionne très bien pour copier toutes les feuilles si elles sont toutes visibles.
    Cependant, il y aura toujours des feuilles masquées dans le tableur. Dès lors, le code ne fonctionnera pas.

    Savez-vous s'il existe un code pour ne sélectionner et ne copier que les feuilles visibles? J'ai essayé plusieurs choses mais pour l'instant rien n'a fonctionné...

    Je vous joins le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Option Explicit
     
    Sub Decoupage()
     
    Dim Wbk As Object
    Dim Fso As Object
    Dim sDossierClasseur As String, sNomDossier As String, sNomFichier As String
    Dim Ws As Worksheet
     
        Application.ScreenUpdating = False
        sDossierClasseur = ThisWorkbook.Path
        sNomDossier = Format(Date, "yyyymmdd")
     
        Set Fso = CreateObject("Scripting.FileSystemObject")
        If Fso.FolderExists(sDossierClasseur & "\" & sNomDossier) Then
            Fso.DeleteFolder sDossierClasseur & "\" & sNomDossier, True
        End If
        Fso.CreateFolder sDossierClasseur & "\" & sNomDossier
        Set Fso = Nothing
     
     
         For Each Ws In ThisWorkbook.Worksheets
        ThisWorkbook.Worksheets(Ws.Name).Copy
     
            sNomFichier = "F_" & Ws.Name & "_" & Format(Date, "yyyymmdd") & ".xlsx"
     
            Set Wbk = ActiveWorkbook
            Application.DisplayAlerts = False
     
            Wbk.SaveAs sDossierClasseur & "\" & sNomDossier & "\" & sNomFichier, xlOpenXMLWorkbook
            Application.DisplayAlerts = True
     
     
            Wbk.Close
            Set Wbk = Nothing
        Next Ws
        Application.ScreenUpdating = True
    End Sub
    Merci par avance

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour savoir si une feuille est visible, il faut vérifier sa propriété Visible
    Exemple de l'affichage de la liste des feuilles visibles du classeur actif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      Dim txt As String, sht As Worksheet
      For Each sht In Worksheets
        If sht.Visible = xlSheetVisible Then txt = txt & vbCrLf & sht.Name
      Next
      MsgBox txt, Title:="Liste des feuilles visible du classeur " & ActiveWorkbook.Name
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 14
    Par défaut
    Bonjour Philippe,

    Merci beaucoup, après quelques tests j'ai trouvé la solution, c'était assez simple finalement.

    Pour ceux que ça intéresse, j'ai changé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
         For Each Ws In ThisWorkbook.Worksheets
        ThisWorkbook.Worksheets(Ws.Name).Copy
    Par celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        For Each Ws In Worksheets
        If Ws.Visible = xlSheetVisible Then
     
        Ws.Copy
    Merci encore!

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

Discussions similaires

  1. [XL-2003] Sélection des feuilles "onglets" voulue
    Par Mynathir dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/03/2012, 14h01
  2. Détecter la sélection des feuilles Jtree
    Par le_sayan dans le forum Débuter
    Réponses: 3
    Dernier message: 19/08/2010, 09h44
  3. [XL-2002] Sélection des cellules visibles d'une colonne dans un filtre
    Par pitoumad dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/06/2010, 11h33
  4. Sélection des lignes de feuille Excel avec une listbox
    Par wlofab dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/07/2008, 15h35
  5. Sélection des feuilles d'un classeur
    Par ocxus dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/09/2006, 16h28

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