Utilisation de Delete dans une instruction VB
Fermé
Aulane
Messages postés
84
Date d'inscription
mardi 27 janvier 2009
Statut
Membre
Dernière intervention
29 juillet 2017
-
27 janv. 2009 à 17:38
Utilisateur anonyme - 28 janv. 2009 à 13:34
Utilisateur anonyme - 28 janv. 2009 à 13:34
A voir également:
- Utilisation de Delete dans une instruction VB
- Notice d'utilisation - Guide
- Utilisation chromecast - Guide
- Vb - Télécharger - Langages
- Just delete me - Guide
- Vb cable - Télécharger - Audio & Musique
2 réponses
Utilisateur anonyme
27 janv. 2009 à 19:03
27 janv. 2009 à 19:03
Bonjour,
Exemple type :
Lupin
Exemple type :
Sub EffaceFeuille() Dim Boucle As Long, Limite As Long Application.DisplayAlerts = False With ActiveWorkbook Limite = .Worksheets.Count For Boucle = Limite To 3 Step -1 .Worksheets(Boucle).Delete Next End With Application.DisplayAlerts = True End Sub '
Lupin
Utilisateur anonyme
28 janv. 2009 à 13:34
28 janv. 2009 à 13:34
re :
c'est pourquoi, il vous faut capturer la valeur de [ .Worksheets.Count ] dans une variable
Lupin
' Ici vous ne pouvez pas utiliser le propriété [ .Worksheets.Count ] ' puisque celle-ci est décrémenté à chaque instruction [ .Worksheets(i).delete ] ' For i = 3 To .Worksheets.Count ' Ajout de la propriété DisplayAlerts avec la valeur False pour stopper l'invite de confirmation Application.DisplayAlerts = False .Worksheets(i).delete Next i
c'est pourquoi, il vous faut capturer la valeur de [ .Worksheets.Count ] dans une variable
Sub EffaceFeuille() Dim Boucle As Long ' Ici la variable pour boucler -> équivalent à [ i ] Dim Limite As Long ' Ici la variable qui capture le nombre de feuille ' avant la première suppression Application.DisplayAlerts = False With ActiveWorkbook ' Capture du nombre de feuille Limite = .Worksheets.Count ' Boucle pour supprimer les feuilles en commençant par la dernière For Boucle = Limite To 3 Step -1 ' Ici la propriété [ .Worksheets.Count ] est décrémenté automatiquement .Worksheets(Boucle).Delete Next End With Application.DisplayAlerts = True End Sub '
Lupin
28 janv. 2009 à 09:25
Merci pour la réponse et sa rapidité, mais à force de chercher, j'avais trouvé une solution, confortée par votre réponse.
Je vous mets ci dessous la façon dont j'avais rectifié le "tir", et ça marche, est-ce mieux ou moins bien que ce que vous me proposez?
For i = 3 To .Worksheets.Count
' Ajout de la propriété DisplayAlerts avec la valeur False pour stopper l'invite de confirmation
Application.DisplayAlerts = False
.Worksheets(i).delete
Next i
' Restauration de la valeur True à la propriété DisplayAlerts car VBA ne le fait pas automatiquement
Application.DisplayAlerts = True
Encore merci et peut être à bientôt
Aulane