Suppresion feuille excel d'un autre classeur

  • Initiateur de la discussion Initiateur de la discussion YaGo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

YaGo

XLDnaute Junior
Bonsoir à tous,

Je compte réalisé une suppression de feuille dans un tableau esclave via mon tableau maitre mais malgré plusieurs essaie lorsque j'arrive à la 4ème feuille quelque soit sont nom ou ce qu'elle contient, j'obtiens le message d'erreur "L'indice n'appartient pas à la sélection" (idem pour un fichier avec moins de 4 feuille, la dernière bloque)

L'erreur apparait sur cette ligne: If Worksheets(i).Name <> "Table" Then

Sub UpdateDocument(Text As String)
Application.ScreenUpdating = False
Dim WorkbookMaster As Workbook, WorkbookSlave As String
Dim Document, DocumentTable
Dim i As Integer

Set WorkbookMaster = ActiveWorkbook
WorkbookSlave = Dir(ActiveWorkbook.Path & "\ " & Text)
Set Document = Workbooks.Open(ActiveWorkbook.Path & "\" & WorkbookSlave)
Set DocumentTable = Document.Sheets("Table")

Application.DisplayAlerts = False
For i = 1 To Worksheets.Count
If Worksheets(i).Name <> "Table" Then
Worksheets(i).Delete
End If
Next
Application.DisplayAlerts = True

Workbooks(WorkbookSlave).Close
Application.DisplayAlerts = False
Application.ScreenUpdating = True
End Sub

Bonne soirée,

YaGo
 
Re : Suppresion feuille excel d'un autre classeur

Bonjour, YaGo.

Je n'y connais pas grand'chose en VBA, mais votre code ne chercherait-il pas la feuille Table dans le WorkbookMaster ?

A moins qu'il ne vous faille utiliser
VB:
 For I = Sheets.Count To 1 Step -1

PS : je n'ai pas cherché à tester sur les extraits de fichiers que vous avez omis de joindre.
 
Dernière édition:
Re : Suppresion feuille excel d'un autre classeur

Bonjour Yago , Victor

Bon , y'a des fois ou l'on se complique , a se demander si payé à la pige ...

Voici pour le demandé en enlevant toutes les fleuritures :

Code:
Sub UpdateDocument(Text As String)

Dim WorkbookSlave As String
Dim Onglet As Worksheet

Application.ScreenUpdating = False
 WorkbookSlave = Dir(ThisWorkbook.Path & "\ " & Text)
 Workbooks.Open (ActiveWorkbook.Path & "\" & WorkbookSlave)
  Application.DisplayAlerts = False
  For Each Onglet In Workbooks(WorkbookSlave).Worksheets
   If Onglet.Name <> "Table" Then Onglet.Delete
  Next
  Application.DisplayAlerts = True
 Workbooks(WorkbookSlave).Close
Application.ScreenUpdating = True
End Sub
 
Re : Suppresion feuille excel d'un autre classeur

Bonjour à tous,

Quitte à simplifier :

Code:
Sub UpdateDocument(Text As String)
Dim w As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With Workbooks.Open(ActiveWorkbook.Path & "\" & Text)
  For Each w In .Worksheets
    If w.Name <> "Table" Then w.Delete
  Next
  .Close True 'fermeture avec enregistrement
End With
End Sub
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
214
Réponses
5
Affichages
245
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
484
Réponses
4
Affichages
463
Retour