Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/11/2011, 17h08   #1
Nouveau Membre du Club
 
Inscription : octobre 2011
Messages : 106
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 106
Points : 38
Points : 38
Par défaut bug pour supprimer des feuilles

bonjour à tous,

j'ai un petit souci pour supprimer plusieurs feuilles en même temps

j'ai ce code, il fait ce que je demande mais il me fait "une erreur d'exécution 9"
indice n'appartenant pas à la sélection.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub Nouveau_Devis()
 
Dim Tb() As String
Dim Sh As Worksheet
Dim j As Byte
 
Do
ReDim Tb(0)
Tb(0) = "Devis"
For Each Sh In ThisWorkbook.Worksheets
    If InStr(Sh.Name, "Détail") > 0 Then
        j = j + 1
 
        ReDim Preserve Tb(0 To j)
        Tb(j) = Sh.Name
    End If
Next Sh
Application.DisplayAlerts = False
'suppression des feuilles trouvées
ThisWorkbook.Worksheets(Tb(j)).Delete
Loop Until Tb(j) = Tb(0)
 
 
 End Sub
En plus en mode débogage il ne surligne rien en jaune... C'est surement le Loop mais je ne comprends pas pourkoi?

merci d'avance pour vos conseils si vous avez.
tompom3108 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 17h17   #2
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 873
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 873
Points : 1 846
Points : 1 846
Ton code ne supprime pas plusieurs feuilles en même temps. Il ajoute à ta liste toutes les feuilles dont le nom contient "détail" puis supprime la dernière feuille ajoutée à la liste.
De plus ta condition de fin de boucle ne pourra jamais être réalisée.

Tu veux faire quoi exactement ?
ZebreLoup est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/11/2011, 17h28   #3
Nouveau Membre du Club
 
Inscription : octobre 2011
Messages : 106
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 106
Points : 38
Points : 38
j'aimerai supprimer toutes les feuilles appelées "détail 1" à "détail n" si elles existent ce qui n'est pas toujours le cas...
tompom3108 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 17h36   #4
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 873
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 873
Points : 1 846
Points : 1 846
Tout simplement :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Nouveau_Devis()
    Dim Sh As Worksheet
 
    Application.DisplayAlerts = False
 
    For Each Sh In ThisWorkbook.Worksheets
        If InStr(Sh.Name, "Détail") > 0 Then
            Sh.Delete
        End If
    Next Sh
 
    Application.DisplayAlerts = True
End Sub
Ca te va ?
ZebreLoup est actuellement connecté   Envoyer un message privé Réponse avec citation 20
Vieux 21/11/2011, 17h58   #5
Nouveau Membre du Club
 
Inscription : octobre 2011
Messages : 106
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 106
Points : 38
Points : 38
ok merci je n'arrive jamais à faire simple...
tompom3108 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h59.


 
 
 
 
Partenaires

Hébergement Web