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 :

Supprimer les feuilles automatiquement


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Supprimer les feuilles automatiquement
    j`ai un document excel qui contient pleusieur feuilles je veut suprimer les feuilles vide et les lignes et les colonnes vide automatiquement pour cela j ai fait un macro voila 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
    Sub supsupFlu()
    Dim Sht As Worksheet
    Set aSh = ActiveSheet
     
    Application.ScreenUpdating = False
    For Each Sht In ActiveWorkbook.Worksheets
        Sht.Activate
        ActiveSheet.UsedRange
        Selection.SpecialCells(xlLastCell).Select
        Application.DisplayAlerts = False
        If ActiveCell.Address = "$A$1" And IsEmpty(ActiveCell) Then
            Sht.Delete
          Else
            ActiveCell.Offset(1, 1).Select
            Range(Selection, Selection.End(xlDown)).EntireRow.Hidden = True
            Range(Selection, Selection.End(xlToRight)).EntireColumn.Hidden = True
        End If
    Next Sht
    End Sub
    mais il y a une erreur : Run-time erreur `1004`

    j`attend vous aide merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Ce message peut... peut-être... survenir si toutes tes feuilles sont vides... Excel exige d'avoir au moins une feuille dans un fichier.
    Mais tu utilises Activecell. Tu peux déjà corriger ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Application.DisplayAlerts = False
    For Each Sht In ActiveWorkbook.Worksheets
        if Sht.UsedRange.SpecialCells(xlLastCell).address = "$A$1" and _
           Sht.Range("$A$1") = "" then
            Sht.Delete
        End If
    Next Sht
    End
    Ton Else, si j'ai bien compris ce que tu cherches à faire, ne sert à rien. UsedRange donne la plage de cellules renseignées, toute ta plage. Ton else cherche donc à effacer des cellules vides.
    Une autre chose : N'utilise pas ici IsEmpty. Si ta cellule a contenu quelque chose effacé par la suite, elle n'est pas vide, elle contient ""
    (en fait elle contient des caractères de contrôles invisibles)

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    A priori ce code fonctionne très bien, mais êtes-vous certain qu'au moins une des feuilles n'est pas de la cas défini pour la suppression ?

    Car il est impossible de supprimer la dernière feuille restante.

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    merci pour votre reponse et svp de m`expliquer plus le probleme
    j ecrit un autre macro:
    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
     Sub DelFeeuilleVide()
    Dim x As Worksheet
    Set LaCell = ActiveCell
    Set MaFeuille = ActiveWorkbook.ActiveSheet
    On Error Resume Next
    For Each x In ActiveWorkbook.Worksheets
    x.Activate
    Selection.SpecialCells(xlLastCell).Select
    LeTestFeuil = True
    Exit For
    Next
    If ActiveCell.Address = "$A$1" And IsEmpty(ActiveCell) And LeTestFeuil = False Then
    Application.DisplayAlerts = False
    x.Delete
    Application.DisplayAlerts = True
    End If
    Next x
    MaFeuille.Activate
    LaCell.Select
    End Sub
    il me dit qu`il y a erreur dans Next x

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Ben oui, il y a deux next pour un for

    Supprime le premier

Discussions similaires

  1. Supprimer les retours automatiques à la ligne
    Par secotine dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/01/2012, 23h20
  2. Supprimer les "newlines" automatiques
    Par a-dawg dans le forum Langage
    Réponses: 10
    Dernier message: 01/02/2011, 17h37
  3. supprimer les feuilles sauf "TUN DP"
    Par abouhossam dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/05/2008, 14h33
  4. supprimer les colonnes masquées d'une feuille
    Par k-eisti dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/07/2007, 17h05
  5. [VBA-E] Supprimer le cont de cellules dans toutes les feuill
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/03/2006, 10h44

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