Effacer feuilles non desirables

alan

XLDnaute Occasionnel
Bonjour,

J'ai une macro qui me permets de copier/coller valeurs toutes mes feuilles d'un meme classeur 1 afin d'eliminer ses equations. J'aimerai adapter cette macro pour qu'elle me supprime dans la foulee (apres l'action de cette macro) toutes les feuilles qui ont un nom de plus de 2 chiffres ou qui contiennent une lettre.
Je ne garderai en fait que les onglets appeles 12, 13 ou 49 et supprimmerai ceux appelles BT21, topur ou encore 123 par exemple.
De plus, est il possible que j'applique cette action a distance cad a partir d'un autre classeur 2 sans ouvrir le classeur 1?

Sub copy()
Application.ScreenUpdating = False
Nb = ActiveWorkbook.Sheets.Count
For Sh = 1 To Nb
Sheets(Sh).Activate
On Error Resume Next
ActiveSheet.UsedRange.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Next Sh
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

Merci d'avance
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Effacer feuilles non desirables

Bonjour Alan, bonjour le forum,

Ta macro modifiée à tester sur un copie du fichier original :

Code:
Sub copy()
Dim sh As Worksheet 'déclare la variable sh
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'masque les messages Excel
'Nb = ActiveWorkbook.Sheets.Count
 
For Each sh In Sheets 'boucle sur tous les onglets du classeur
    sh.Activate 'sélectionne l'onglet
 
    If Len(sh.Name) > 2 Then 'condition : si le nombre de caractères du nom de l'onglet est supérieur à 2
        sh.Delete 'supprime l'onglet
        GoTo suite 'passe à l'onglet suivant via l'étiquette "suite"
    End If 'fin de la condition
 
    On Error Resume Next
    ActiveSheet.UsedRange.Select
    Selection.copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
suite: 'étiquette
Next sh 'prochaine onglet du classeur
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.DisplayAlerts = True 'affiche les messages Excel
End Sub
 

alan

XLDnaute Occasionnel
Re : Effacer feuilles non desirables

Bonjour Robert,

Merci pour ta macro. J'ai cependant plusieurs problemes:
1) certaines feuilles sont des graphs et je pense que la macro bloque a celles ci
2) mes feuilles a deux lettres ne sont pas effacees...je ne voudrai garder que les feuilles a 2 chiffres
3) est il possible de forcer la macro a copier/coller toutes les feuilles d'abord puis de les effacer? mes feuilles a 2 chiffres sont en fait des formules qui font appel aux donnees de mes feuilles a lettres et/ou autres...du coup quand j'applique la macro, toutes mes feuilles restantes me donnent #ref.
Surement une histoire d'ordre des taches...
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia